Руководство Разработчика Prism. Часть 1. Введение.

Если вы разрабатываете приложения для платформ на основе XAML, таких как WPF, Silverlight, Windows Phone или Windows Store, то Prism определенно поможет вам значительно упростить разработку.

Создав несколько проектов с использованием Prism, я убедился, что такой подход работает, и решил подготовить перевод официального руководства Prism. Итак, часть первая, что такое Prism.

Оглавление
  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация шаблона MVVM
  6. Расширенные сценарии MVVM
  7. Создание пользовательского интерфейса
    1. Рекомендации по проектированию пользовательского интерфейса
  8. Навигация
    1. Навигация на основе представлений
  9. Взаимодействие между слабосвязанными компонентами
Prism — это руководство, призванное помочь вам проектировать и создавать многофункциональные, гибкие и легко поддерживаемые приложения Windows Presentation Foundation (WPF), полнофункциональные интернет-приложения Silverlight (RIA), а также программы для Windows Phone 7–8 и приложения Магазина Windows. Использование шаблонов проектирования, которые воплощают важные принципы архитектурного проектирования, такие как разделение ответственности (SoC) И Слабая связь Prism помогает проектировать и писать приложения со слабосвязанными компонентами, которые могут развиваться независимо, а затем объединяться в единое целое с минимальными усилиями.

Этот тип приложений известен как составные приложения.

Заметка: Слово «Призма» было кодовым названием руководства, официально известного как Руководство по составному приложению для WPF и Silverlight. Для краткости и ясности, а также по требованию пользователей это руководство теперь называется просто «Призма».

Prism предназначена для разработчиков приложений WPF или Silverlight с несколькими экранами, широкими возможностями взаимодействия с пользователем, визуализацией данных и сложным взаимодействием между представлениями и бизнес-логикой.

Эти приложения обычно взаимодействуют с многочисленными серверная часть системы и сервисы и, используя многоуровневую архитектуру, могут быть физически развернуты на несколько уровней .

Ожидается, что приложение будет значительно развиваться в течение своего срока службы в ответ на новые бизнес-требования.

Короче говоря, это приложения, созданные для длительного использования и изменения.

Приложения, которым не требуются эти характеристики, могут не получить преимуществ от использования Prism. Prism включает ссылки на примеры реализаций, QuickStarts, повторно используемый код библиотеки (библиотека Prism) и обширную документацию.

Эта версия Prism предназначена для Microsoft. NET Framework 4.0 (в настоящее время 4.5) и Silverlight 4 и включает новое руководство по шаблону проектирования Model-View-ViewModel (MVVM), навигации и Managed Extensibility Framework (MEF).

Поскольку Prism построен на .

NET Framework 4.0 (включая WPF) и Silverlight 4, знание этих технологий поможет оценить и понять Prism. Следует отметить, что, хотя освоение Prism несложно, разработчики должны быть готовы принять новые для них модели и практики.

Если вы решите изучить эти модели и практики, обязательно оцените временные затраты на это в сроках ваших проектов.



Зачем использовать Призму

Проектирование и разработка многофункциональных приложений WPF или Silverlight, которые являются гибкими и удобными в сопровождении, может оказаться сложной задачей.

В этом разделе описаны некоторые распространенные проблемы, которые могут возникнуть при их создании, и то, как Prism помогает их решить.



Проблемы при разработке клиентских приложений
Как правило, разработчики клиентских приложений сталкиваются со многими проблемами.

Требования к заявке могут меняться со временем.

Могут возникнуть новые возможности и проблемы для бизнеса, могут стать доступными новые технологии, или даже отзывы клиентов в ходе цикла разработки могут существенно повлиять на требования к приложениям.

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

Добиться такого уровня гибкости может быть сложно.

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

Большинство корпоративных приложений сложны и требуют для разработки целой команды программистов и дизайнеров.

Как спроектировать приложения так, чтобы несколько разработчиков или команды могли эффективно работать над разными частями приложения независимо друг от друга и быть уверенными в том, что части приложения будут плавно соединяться при интеграции, может оказаться серьезной проблемой.

Проектирование и разработка в монолитном стиле может привести к тому, что приложение станет очень сложным и неэффективным в обслуживании.

В данном случае слово «монолитный» указывает на приложение, в котором компоненты очень тесно связаны между собой и между ними нет четкого разделения.

Обычно приложения, спроектированные и созданные таким образом, страдают от проблем, которые делают жизнь разработчика трудной и полной страданий.

Трудно добавлять в систему новые функции или заменять существующие функции, а также трудно исправлять ошибки, не затрагивая другие части системы.

Такое приложение сложно протестировать и развернуть.

Кроме того, все это влияет на эффективность взаимодействия разработчиков и дизайнеров.



Композитный подход
Эффективным средством решения этих проблем является разделение приложения на ряд дискретных, слабосвязанных, полунезависимых частей, которые затем можно легко интегрировать в «оболочку» приложения для формирования связного решения.

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

Составные приложения имеют множество преимуществ, в том числе следующие:

  • Разрешить разработку, тестирование и развертывание модулей различным лицам или подгруппам.

    Эти модули также можно легко модифицировать или добавлять новые функциональные возможности, что делает приложение легко расширяемым и удобным в обслуживании.

    Обратите внимание, что при таком подходе даже проект одного человека может выиграть от создания хорошо протестированного и поддерживаемого приложения.

  • Они имеют общую оболочку, содержащую компоненты пользовательского интерфейса, которые предоставляются различными модулями, слабо связанными друг с другом.

    Это уменьшает трудности, возникающие, когда несколько разработчиков добавляют новые функции в пользовательский интерфейс, и обеспечивает единообразный внешний вид.

  • Способствует повторному использованию кода и разделению ответственности между горизонтальными уровнями приложения, такими как авторизация и аутентификация, и вертикальными уровнями, такими как бизнес-функции, специфичные для вашего приложения.

    Это также упрощает управление зависимостями и взаимодействием между компонентами приложения.

  • Помогите сохранить разделение ролей, позволяя различным людям или командам сосредоточиться на конкретной задаче или части функциональности в соответствии с их специализацией или опытом.

    В частности, он обеспечивает более четкое разделение между пользовательским интерфейсом и бизнес-логикой приложения.

    Это означает, что дизайнер может сосредоточиться на создании лучшего пользовательского интерфейса, а программист — на создании более сложной бизнес-логики.

Составные приложения идеально подходят для ряда клиентских сценариев.

Например, составное приложение идеально подходит для создания полнофункционального клиентского приложения поверх разрозненных серверных систем.

На следующем рисунке показан пример приложения этого типа.



Руководство разработчика Prism. Часть 1. Введение.
</p><p>

В приложениях этого типа пользователю может быть предоставлен богатый и гибкий пользовательский интерфейс, ориентированный на функциональность.

Эти приложения могут состоять из нескольких серверных систем, сервисов и хранилищ данных, каждое из которых представлено одним или несколькими выделенными модулями.

Четкое разделение логики приложения и пользовательского интерфейса позволяет обеспечить согласованное и отдельное представление всех составляющих модулей.

Кроме того, составное приложение может быть полезно, когда существуют независимо разрабатываемые компоненты пользовательского интерфейса, которые плохо интегрируются друг с другом и обслуживаются отдельными командами.

На следующем рисунке показан пример экрана для этого типа приложения.

Каждая из выделенных областей представляет собой независимые компоненты, объединенные в пользовательском интерфейсе.



Руководство разработчика Prism. Часть 1. Введение.
</p><p>

В этом случае составное приложение позволяет динамически создавать пользовательский интерфейс во время выполнения.

Это предоставляет пользователю гибкие возможности.

Например, он позволяет динамически добавлять новые функции во время выполнения, обеспечивая широкие возможности настройки и легкую расширяемость.



Проблемы, которые не решаются при использовании Prism
Хотя Prism поможет вам решить многие проблемы, с которыми вы можете столкнуться при создании приложений WPF или Silverlight, существует множество других проблем, с которыми вы можете столкнуться в зависимости от ваших сценариев и требований.

Например, Prism не затрагивает напрямую следующие темы:

  • Прерывистое соединение и синхронизация данных.

  • Создание распределенных и облачных приложений.

  • Аутентификация и авторизация.

  • Производительность приложения.

  • Управление версиями приложений.

  • Обработка ошибок и отказоустойчивость.



Начало работы с Призмой

Prism предполагает, что у вас есть практический опыт работы с WPF или Silverlight. Есть несколько важных концепций, которые Prism часто использует, и с которыми вам следует ознакомиться.

Этот:

  • XAML (расширяемый язык разметки приложений) .

    Язык, который декларативно описывает пользовательский интерфейс в приложениях WPF, Silverlight, Windows Phone и Windows Store.

  • Привязка данных или привязка данных.

    Способ подключения элементов пользовательского интерфейса к компонентам и данным в WPF и Silverlight.

  • Ресурсы .

    Как стили, данные и шаблоны элементов управления создаются и используются в WPF и Silverlight.

  • Команды .

    Способ связи жестов и ввода пользователя с элементами управления.

  • Пользовательские элементы управления (пользовательские элементы управления).

    Компоненты, обеспечивающие индивидуальное поведение или внешний вид.

  • Свойства зависимостей (зависимые свойства).

    Расширения Common Language Runtime (CLR), которые позволяют устанавливать и контролировать значения свойств, поддерживающих привязку данных, маршрутизируемые команды и события.

  • Поведение (поведение).

    Объекты, инкапсулирующие интерактивные функции, которые можно легко применить к элементам управления в пользовательском интерфейсе.



Установка Призмы
В этом разделе описывается, как установить Prism. Он включает в себя следующие три этапа:
  • Установите необходимые системные приложения.

  • Извлеките исходный код Prism, исполняемые файлы и документацию.

  • Зарегистрируйте библиотеки Prism в системе.

Шаг 1. Установите необходимые приложения Перед использованием библиотеки Prism необходимо установить следующее:
  • Microsoft .

    NET Framework 4.0 или более поздней версии (устанавливается вместе с Visual Studio)

  • Microsoft Visual Studio 2010/2012 версии Professional, Premium или Ultimate.
Заметка Visual Studio Express Edition также можно использовать для создания приложений Prism.
Если вы разрабатываете приложения Silverlight, у вас должно быть установлено следующее:
Заметка Хотя инструменты Silverlight для Visual Studio не требуются, всем разработчикам WPF и Silverlight рекомендуется загрузить их и использовать последнюю версию.

WPF и Silverlight Designer для Visual Studio обновляются с помощью среды выполнения Silverlight и пакета разработки программного обеспечения (SDK), включенных в загружаемый пакет. Эти обновления добавляют новые функции и исправляют ошибки.

При желании вы также можете установить:
Заметка Дополнительную информацию об использовании Prism на Windows Phone 7 см.

Сайт сообщества «Руководство для разработчиков Windows Phone 7» на CodePlex ( http://wp7guide.codeplex.com/ .

)

Шаг 2. Извлеките исходные коды Prism, двоичные файлы и документацию.

Чтобы установить Prism, щелкните правой кнопкой мыши файл Prismv4.exe и выберите Запустить от имени администратора .

При этом исходный код, исполняемые файлы и документация будут извлечены в папку по вашему выбору.

Шаг 3: Зарегистрируйте библиотеки Регистрация библиотеки Prism не требуется, но это облегчит добавление ссылок на сборки Prism в ваши проекты.

Если вы решите зарегистрировать библиотеки, они будут видны в списке диалогового окна Visual Studio. Добавить ссылки .

Если вы их не зарегистрируете, вам придется вручную добавлять ссылки на файлы библиотеки Prism в ваш проект. Подписанные сборки Prism располагаются в следующих папках:

  • {prism}\Bin\Рабочий стол
  • {prism}\Bin\Silverlight
  • {prism}\Bin\Phone
Чтобы зарегистрировать файлы библиотеки Prism, запустите пакетный файл RegisterPrismBinaries.bat, расположенный в папке, в которую вы распаковали Prism. Он создаст временный файл .

reg с информацией, необходимой для регистрации папок «Рабочий стол», Silverlight и «Телефон», содержащих двоичные файлы, и будет использовать его для обновления системного реестра.

Поскольку обновление реестра является привилегированной операцией, вы можете получить сообщение контроля учетных записей (UAC), если у вас нет необходимых привилегий.

Дополнительную информацию о UAC см.

« Что такое контроль учетных записей пользователей .

"

Заметка С помощью скрипта можно зарегистрировать только одну копию бинарников; Если зарегистрировано несколько копий библиотеки Prism, в Visual Studio будут доступны только двоичные файлы последней зарегистрированной копии.

Заметка Самый простой способ установить Prism — использовать менеджер пакетов nuget , установленный по умолчанию в VS2012. Для установки вам нужно ввести команду в консоли nuget PM> Установочный пакет Prism или используйте визуальный интерфейс.



Обзор призмы



Что нового в этом выпуске?
Этот выпуск был обновлен с учетом возможностей WPF 4.0 и Silverlight 4. Он содержит несколько областей новых и существенно обновленных рекомендаций, включая следующие:
  • Платформа управляемой расширяемости (MEF) .

    Prism теперь включает руководство по использованию MEF для управления зависимостями и поддержания слабой связи между компонентами.

    Использование MEF описано в главе 3 «Управление зависимостями компонентов».

  • Шаблон модель-представление-представление (MVVM) (модель – вид – модель просмотра).

    Предыдущие версии Prism содержали подробные инструкции по использованию шаблонов разделения представлений.

    В этом руководстве основное внимание уделяется шаблону MVVM. Глава 5 содержит обзор шаблона MVVM и описывает его реализацию.

    В главе 6 рассматриваются более сложные сценарии MVVM.

  • Навигация .

    Prism теперь предоставляет рекомендации по реализации навигации в вашем приложении WPF или Silverlight. В этом руководстве рассматривается как навигация на основе состояния, которая используется при обновлении визуального состояния в одном окне, так и навигация на основе представлений, которая используется при переходе между представлениями.

    Оба подхода обсуждаются в главе 8 «Навигация».

Prism теперь также предоставляет подписанные версии сборок библиотеки Prism. Это сделано для удобства разработчиков, которые хотят использовать библиотеки Prism в своих приложениях без изменений.

Кроме того, все проекты Visual Studio (библиотека Prism, а также ссылки на реализации и QuickStarts) также переведены на VisualStudio 2010 и Silverlight 4.

Что приходит прямо из коробки
Призма содержит:
  • Исходные коды библиотеки Prism .

    Исходный код включает в себя основные функции Prism, а также расширения Unity и MEF, которые предоставляют дополнительные компоненты для использования Pirsm с Блок приложений Unity (Unity) И Платформа управляемой расширяемости (MEF) .

  • Сборка библиотеки Prism .

    Подписанные скомпилированные сборки библиотеки Prism. Они расположены в папке bin и представляют собой удобный способ использования библиотеки Prism. Сборки можно пересобрать и зарегистрировать в Visual Studio с помощью предоставленного файла сценария.

    Они также включают сборки Блок приложения Unity И Поиск сервисов .

  • Примеры реализации .

    Комплексные примеры приложений, иллюстрирующие, как Prism можно использовать для реализации сценариев реальных приложений.

    Примеры намеренно неполны, но они показывают, как много шаблонов Prism могут работать вместе в одном приложении.

    Prism предоставляет два примера: эталонную реализацию Stock Trader (Stock Trader RI) и эталонную реализацию MVVM (MVVM RI).

  • Краткое руководство .

    Prism включает исходный код для нескольких небольших, ориентированных на простоту примеров, которые иллюстрируют шаблон MVVM, навигацию, составной пользовательский интерфейс, модульность, команды, агрегацию событий и создание многоцелевых приложений.

  • Документация .

    Документация Prism 4 содержит обзор целей и концепций Prism и включает подробные инструкции по использованию каждого инструмента и шаблона проектирования, предоставляемого Prism. В следующем разделе представлен пошаговый обзор рассматриваемых тем.



Обзор документации
Документация Prism охватывает широкий спектр тем, включая обзор общих вопросов разработки и подхода к разработке составных приложений, обзор библиотеки Prism и реализуемых ею шаблонов проектирования, а также пошаговые инструкции по использованию библиотеки Prism. в процессе разработки.

Документация адресована широкой технической аудитории и призвана помочь читателю понять и использовать Prism в своих приложениях.

Документация включает следующее (далее ссылки на MSDN):

  • Часть 2, Инициализация приложений Prism .

    В этой главе обсуждается, что вам нужно сделать, чтобы запустить модульное приложение Prism.

  • Часть 3, Управление зависимостями между компонентами Приложения, основанные на библиотеке Prism, полагаются на контейнер внедрения зависимостей (DI).

    Хотя Prism может работать практически с любым контейнером, библиотека Prism предоставляет два варианта по умолчанию: Unity или MEF. В этой главе рассматриваются различные методы разработки и то, что вам нужно.

    на что следует обратить внимание при работе с DI-контейнерами.

  • Часть 4, Разработка модульных приложений .

    В этой главе рассматриваются основные концепции, ключевые решения и распространенные сценарии создания модульных клиентских приложений с помощью Prism.

  • Часть 5, Реализация шаблона MVVM .

    Используя шаблон MVVM, вы разделяете интерфейс вашего приложения и базовые уровни представления и бизнес-логики на три отдельных класса: представление, модель и модель представления.

    В этой главе рассматриваются основные концепции шаблона MVVM и описывается, как реализовать его в приложении с использованием Prism.

  • Часть 6, Расширенные сценарии MVVM .

    В этой главе представлены рекомендации по реализации более сложных сценариев с использованием шаблона MVVM, включая реализацию составных команд (команд, представляющих группу команд) и способы асинхронной обработки запросов веб-служб и взаимодействия с пользователем.

    В этой главе также представлены рекомендации по использованию контейнеров DI, таких как Unity или MEF, для создания и интеграции классов MVVM.

  • Часть 7, Создание пользовательского интерфейса .

    Регионы — это заполнители, которые позволяют разработчику указать, где представления будут появляться в пользовательском интерфейсе.

    Существует два подхода к отображению видов в регионе в Prism: исследование видов и встраивание видов.

    В этой главе описывается работа с регионами и пользовательским интерфейсом.

    Он также содержит информацию для дизайнеров пользовательских интерфейсов, которая поможет им понять составные приложения.

  • Часть 8, Навигация .

    Навигация — это процесс, при котором происходят согласованные изменения в пользовательском интерфейсе в результате взаимодействия пользователя с приложением или изменения его внутреннего состояния.

    В этой главе представлены рекомендации по реализации навигации на основе состояния, при которой состояние представления пользовательского интерфейса обновляется в соответствии с навигацией, и навигации на основе представлений, при которой новые представления создаются и отображаются в регионе.

  • Часть 9, Взаимодействие между слабосвязанными компонентами .

    В этой части рассказывается о различных способах обеспечения связи между компонентами в разных модулях с использованием команд, агрегации событий, контекста региона и общих сервисов.

  • Часть 10, Совместное использование кода между Silverlight и WPF .

    Мультиплатформенные приложения ориентированы на несколько платформ, используя общий код. В данном случае это WPF и Silverlight. Эта часть поможет вам понять, что представляют собой такие приложения, их преимущества и недостатки.

    Prism предоставляет инструмент Компоновщик проекта , который поможет вам автоматически создавать и поддерживать связи между корневым проектом и целевым проектом для совместного использования общего кода между Silverlight и WPF.

  • Часть 11, Развертывание приложений Prism .

    В этой части рассматривается развертывание приложений WPF и Silverlight.

  • Приложение Глоссарий «В этом приложении представлен краткий обзор терминов, концепций, шаблонов проектирования и возможностей, предоставляемых Prism.
  • Приложение Б Узоры в библиотеке призм .

    В этом приложении описаны шаблоны проектирования приложений, используемые в библиотеке Prism и приложении Stock Trader RI. Этот раздел предназначен в первую очередь для архитекторов и разработчиков, желающих ознакомиться с шаблонами, помогающими преодолеть трудности при проектировании составных приложений.

  • Приложение С Библиотека Призма .

    Это приложение предоставляет обзор библиотеки Prism.

Следующие темы включают исходный код и интерактивный контент:
  • Приложение Д Обновление с предыдущих версий .

    Обсуждает, что вам нужно знать для перехода с предыдущих версий Prism.

  • Приложение Д Расширение призмы .

    В этом приложении обсуждается, как можно расширить библиотеку Prism.

  • Приложение F Эталонные реализации .

    Здесь описаны примеры приложений, поставляемых с Prism. Дополнительные сведения см.

    в разделе «Изучение эталонных реализаций».

  • Приложение Ж Краткое руководство .

    Prism включает исходный код для нескольких приложений для быстрого запуска, демонстрирующих основные идеи.

    Дополнительную информацию см.

    в разделе «Изучение кратких руководств».

    раздел.

  • Приложение З Призма Практические занятия .

    В лабораторных работах шаг за шагом показан процесс создания простого составного приложения WPF и Silverlight. Это дополнение ориентировано в первую очередь на разработчиков, желающих понять основные принципы работы библиотеки Prism. Он также включает лабораторные работы по публикации и обновлению приложений Prism WFP с помощью ClickOnce.



Краткое руководство по обзору
QuickStarts — это небольшие приложения, иллюстрирующие конкретные аспекты Prism. Они являются идеальной отправной точкой, если вы хотите понять ключевые идеи и хорошо осваиваете новые технологии посредством чтения кода.

Prism включает в себя следующие руководства QuickStarts:

  • Краткое руководство по модульности для WPF И Краткое руководство по модульности для Silverlight .

    В этих кратких руководствах показано, как создавать приложения WPF и Silverlight, состоящие из модулей.

    Модули можно загружать статически, когда оболочка содержит ссылки на сборки модулей, или динамически, когда модули динамически обнаруживаются и загружаются во время выполнения.

    Краткое руководство демонстрирует использование контейнеров Unity и MEF.

  • Базовое краткое руководство по MVVM И Краткое руководство по MVVM .

    Краткое руководство по базовому MVVM демонстрирует, как создать очень простое приложение, реализующее шаблон MVVM. Краткое руководство MVVM демонстрирует, как создать приложение, реализующее шаблон MVVM, показывая некоторые наиболее распространенные проблемы, с которыми могут столкнуться разработчики, такие как проверка, взаимодействие с пользовательским интерфейсом и шаблоны данных.

  • Краткое руководство по созданию пользовательского интерфейса .

    В этом кратком руководстве показано, как создавать интерфейсы WPF и Silverlight, состоящие из различных представлений, которые динамически загружаются в регионы и взаимодействуют друг с другом различными способами.

    В нем показано, как использовать оба подхода к композиции пользовательского интерфейса: исследование представления и внедрение представления.

  • Краткое руководство по навигации на основе состояний .

    В этом кратком руководстве демонстрируется подход к созданию навигации в простом приложении.

    Подход, используемый в этом кратком руководстве, использует диспетчер визуальных состояний Silverlight (VSM) для определения различных состояний приложения и определяет анимацию для всех состояний и переходов между ними.

Теги: #C++ #.

NET #wpf #PRISM #silverlight #пользовательский интерфейс #шаблоны и практики #microsoft #.

NET #C++

Вместе с данным постом часто просматривают: