В конце статьи вы найдете видео по данному уроку.

Первая задача это создать проект, который работает в качестве основной оболочки приложения.

Чтобы создать оболочку нужно:

  1. Создать новое C# Windows Forms приложение. Чтобы сделать это откройте меню File, кликните на пункт New, кликните на подпункт Project, и в списке шаблонов проектов Visual C# выберите Windows Forms Application.
  2. Назовите новое приложение ShellApplication. Убедитесь, что чекбокс Create dirrectory for solution отмечен.
  3. В Solution Explorer’e переименуйте Form1.cs в ShellForm.cs.
  4. В дизайнере нажмите правой кнопкой мыши на эту форму и выберите пункт Properties, затем измените свойство Text на Hello World Shell.
  5. Сохраните изменения и закройте дизайнер ShellForm.

По умолчанию, главным классом приложения можно указать класс WorkItem, если конечно не требуется дополнительной функциональности, отсутствующей в стандартном классе WorkItem (в нашем примере такого нет). Тем не менее, в этом примере вы создадите собственный WorkItem для оболочки. Для того чтобы это сделать, вам нужно добавить новый класс, который наследуется от класса WorkItem. Конечно, для начала нужно добавить рефренсы на основные классы, которые позволяют использовать Composite UI Application Block.

Чтобы добавить рефренсы на основные классы, нужно:

  1. В окне Solution Explorer найдите папку Refеrences в созданном проекте. Кликните по ней правой кнопкой мыши и, в появившемся меню, выберите AddRefrence.
  2. В Add Reference диалоге, откройте закладку Browse и, в папке, куда вы распаковали файлы Composite UI Application Block, найдите подпапку \Src\CS\Composite.UI.WinForms\bin\Debug.

    Примечание: Это по документации. В архиве, который я качал, они лежат тут:\Source\Blocks\CAB\CS\Source\CompositeUI.WinForms\bin\Debug\

    Чтобы не искать, где библиотеки лежат у вас, можете просто скачать этот архив.

  3. Выбрать следующие DLL библиотеки:
    • Microsoft.Practices.CompositeUI.dll
    • Microsoft.Practices.CompositeUI.WinForms.dll
    • Microsoft.Practices.ObjectBuilder.dll
  4. Далее нажмите правой кнопкой на проект и выберите «Add”->”New Item…” В открывшемся диалоге, выберите шаблон Class и назовите его ShellWorkItem.
  5. В созданном классе, добавьте следующее объявление пространства имен (namespace):
    using Microsoft.Practices.CompositeUI;
  6. Отредактируйте объявление класса ShellWorkItem, чтобы он был публичным и наследовал класс WirkItem, как показано ниже:
    public class ShellWorkItem : WorkItem
    {
    }
  7. Сохраните и закройте файл.

Ваша последняя задача на этом этапе — это изменить код входа в программу, чтобы загружать и запускать ваше приложение. Проект содержит файл Program.cs, инициализирующий и показывающий форму. Обязательно нужно менять код этого файла, для того, чтобы инициализировать CAB и загружать и запускать форму внутри корневого WorkItem.

Чтобы форма инициализировалась и отображалась внутри WorkItem, нужно сделать следующее:

  1. Переименуйте файл Program.cs в ShellApplication.cs.
  2. Измените существующее using объявление пространства WinForms на CompositUi.WinForms, как показано ниже:
    using Microsoft.Practices.CompositeUI.WinForms;
  3. Измените область видимости класса ShellApplication со static на public, и сделайте его наследником класса FormShellApplication, который говорит CAB загружать ShellForm в наш ShellWorkItem:
    public class ShellApplication : FormShellApplication<ShellWorkItem,
                                                             ShellForm>
    {
    }
  4. Добавьте атрибут [STAThread] static методу Main() этого класса. Этот метод выполняется, когда приложение запускается. Он должен создавать экземпляр вашего класса ShellApplication и вызывать для него метод Run()
    [STAThread]
    static void Main()
    {
      new ShellApplication().Run();
    }
  5. Сохраните и закройте файл.
  6. Нажмите F5, чтобы запустить приложение. Результат выполнение — это пустая форма с заголовком Hello World Shell. В этой оболочке вы создали слой для видимых элементов приложения. Модули смогут отображать свои SmartPartsы в любой из секций оболочки. Так же вы можете добавить другие элементы управления, если они понадобятся.

Изображение 1 показывает архитектуру созданного вами приложения. Когда приложение запускается, и вызывается метод Run() в Main() методе, CAB создает ShellForm и корневой ShellWorkItem. Оболочка вызывает некоторые виртуальные методы, которые вы можете переопределить, если это необходимо.

Эти методы включают: BeforeShellCreated, AfterShellCreated, AddServices и AddBuilderStrategies. Для примера, вы можете переопределить метод AddServices, если вы хотите добавить собственные сервисы в приложение, или метод AfterShellCreated, чтобы добавить элементы пользовательского интерфейса или выполнить запуск других необходимых вашему приложению процессов. Так же существуют методы, такие как OnUnhandledException, которые вы можете использовать для отлова исключений.

Предыдущая статья: «SCSF Инструкция: Моделирование и построение CAB приложений»
Следующая статья: «Этап второй: Создание и загрузка модуля»

Скачать: скачать документацию
Перевел: Рамиль Алиякберов a.k.a. R@Me0

[mediaplayer src=’/wp-content/uploads/2010/06/SCSF_Walkthrough_Stage1.mp4′ ]