- PVSM.RU - https://www.pvsm.ru -
Если вы разрабатываете приложения для XAML-based платформ, таких как WPF, Silverlight, Windows Phone, или Windows Store, то Prism, определённо, сильно поможет вам упростить их разработку. После создания нескольких проектов с использованием Prism, я убедился в работоспособности такого подхода и решил подготовить перевод официального руководства Prism. Итак, часть первая, что же такое Prism.
Оглавление
- Введение [1]
- Инициализация приложений Prism [2]
- Управление зависимостями между компонентами [3]
- Разработка модульных приложений
- Реализация паттерна MVVM
- Продвинутые сценарии MVVM
- Создание пользовательского интерфейса
- Навигация
- Способы коммуникации между слабосвязанными компонентами
Prism является руководством, разработанным для того, чтобы помочь проектировать и создавать насыщенные, гибкие и легко поддерживаемые Windows Presentation Foundation (WPF) приложения, Silverlight Rich Internet Applications (RIAs), и программы под Windows Phone 7-8, а также Windows Store приложений. Используя паттерны проектирования, которые воплощают важные принципы архитектурного дизайна, такие как разделение ответственности (Separation of Concerns, SoC) [4] и слабая связанность (Loose coupling) [5], Prism помогает вам проектировать и писать приложения со слабо связанными компонентами, которые могут независимо развиваться и потом объединяться в одно целое с минимальными усилиями. Этот тип приложений известен как составные приложения.
Заметка:
Слово Prism было кодовым названием руководства, официально известного как Composite Application Guidance for WPF and Silverlight. Для краткости и осмысленности, и из-за требований пользователей, это руководство теперь называется просто Prism.
Prism предназначено для разработчиков WPF, или Silverlight приложений с многочисленными экранами, расширенным взаимодействием с пользователем, визуализацией данных, и со сложным взаимодействие представлений и бизнес логики. Эти приложения обычно взаимодействуют с многочисленными back-end [6] системами и службами и, используя многоуровневую архитектуру, могут быть физически развернуты на нескольких уровнях [7]. Ожидается, что приложение будет существенно развиваться за время его жизни, в ответ на новые требования бизнеса. Короче говоря, это приложения построенные надолго и для изменений. Приложения, которым не требуются эти характеристики, могут не извлечь выгоды от использования 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 помогает в их решении.
Как правило, разработчики клиентских приложений встречают немало проблем. Требования к приложению могут меняться с течением времени. Могут появиться новые бизнес-возможности и проблемы, могут стать доступными новые технологии, или даже отзывы клиентов во время цикла разработки могут существенно повлиять на требования к приложению. Поэтому важно писать приложения так, чтобы они были гибкими и могли быть легко изменены или расширены в будущем. Создание такого уровня гибкости может быть трудно достижимым. Это может потребовать архитектуру, которая позволит отдельным частям приложения разрабатываться и тестироваться независимо, и которые могут быть изменены или обновлены позже, в изоляции, без ущерба для остального приложения.
Большинство корпоративных приложений сложны и требуют для разработки целую команду программистов и дизайнеров. То, как разрабатывать приложения таким образом, чтобы несколько разработчиков или команд могли эффективно работать над различными частями приложения независимо и быть уверенным, что части приложения гладко соединятся при интеграции, может оказаться серьёзной проблемой.
Проектирование и разработка в монолитном стиле может привести к приложению, которое очень трудно и неэффективно поддерживать. В этом случае, слово «монолитное» указывает на приложение, в котором компоненты очень тесно связаны, и между ними нет четкого разделения. Как правило, приложения, спроектированные и построенные таким образом, страдают от проблем, делающих жизнь разработчика трудной и полной страданий. Трудно добавлять новые функции в систему, или заменять существующие функции, трудно исправлять ошибки, не затрагивая другие части системы. Такое приложение сложно для тестирования и развертывания. Кроме того, всё это влияет на эффективность взаимодействия разработчиков и дизайнеров.
Эффективным средством для решения этих проблем является разделение приложения на некоторое количество дискретных, слабо связанных, полунезависимых частей, которые затем могут быть легко интегрированы в приложение «оболочку» для формирования цельного решения. Приложения, спроектированные и построенные таким образом, часто называют составными приложениями.
Составные приложения имеют множество преимуществ, включая следующие:
Составные приложения идеально подходят для ряда клиентских сценариев. Например, составное приложение идеально подходит для создания насыщенного клиентского приложения поверх разнородных back-end систем. На следующем рисунке показан пример такого типа приложений.
В этом типе приложений, пользователю может быть представлен богатый и гибкий пользовательский интерфейс, сфокусированный на функциональности. Эти приложения могут состоять из нескольких серверных систем, сервисов и хранилищ данных, каждое из которых представлено одним или несколькими выделенными модулями. Чёткое разделение между логикой приложения и пользовательским интерфейсом позволяет предоставить последовательный и раздельный вид всех составных модулей.
Кроме того, составное приложения может быть полезно, когда есть самостоятельно развивающиеся компоненты пользовательского интерфейса, плохо интегрируемые друг с другом и поддерживаемые отдельными командами. На следующем рисунке показан пример экрана этого типа приложений. Каждая из выделенных областей представляет независимые компоненты, объединённые в пользовательском интерфейсе.
В этом случае, составное приложение позволяет пользовательскому интерфейсу быть составленным динамически, во время выполнения. Это предоставляет гибкие возможности для пользователя. Например, это позволяет новым функциям быть динамически добавленными во время выполнения, что предоставляет богатые возможности пользовательской настройки и лёгкую расширяемость.
Хотя Prism поможет вам решить многие из проблем, с которыми вы можете столкнуться при создании WPF или Silverlight приложений, есть много других проблем, которые могут вам встретиться в зависимости от сценариев и требований. Например, Prism непосредственно не касается следующих тем:
Prism предполагает, что вы имеете практический опыт работы с WPF или Silverlight. Есть несколько важных понятий, которые Prism использует особенно часто, и вы должны быть знакомы с ними. Это:
В этом разделе описывается, как установить Prism. Он включает следующие три этапа:
Перед тем, как использовать библиотеку Prism, должны быть установлены:
Заметка
Visual Studio Express Edition также может использоваться для создания Prism приложений.
Если вы разрабатываете Silverlight приложения, то должны быть установлены:
Заметка
Хотя Silverlight Tools for Visual Studio не являются необходимыми, рекомендуется для всех WPF и Silverlight разработчиков их загрузить и использовать последнюю версию.
WPF и Silverlight Designer для Visual Studio обновляется вместе со средой исполнения Silverlight и Software Development Kit (SDK), которые включены в скачку. Эти обновления добавляют новые функций и исправляют ошибки.
По желанию, вы можете также установить:
Заметка
Для получения более подробной информации об использовании Prism на Windows Phone 7, смотрите Windows Phone 7 Developer Guide community site [11] на CodePlex (http://wp7guide.codeplex.com/ [11].)
Чтобы установить Prism, щелкните правой кнопкой мыши на файле Prismv4.exe, а затем выберите Запуск от имени администратора. Это извлечёт исходный код, исполняемые файлы и документацию в папку по вашему выбору.
Регистрация библиотеки Prism не обязательна, но сделав это, вы упростите добавление ссылок на сборки Prism в свои проекты. Если вы выберите регистрацию библиотек, то они будут видны в списке диалогового окна Visual Studio Add References. Если вы не будете их регистрировать, то вам придётся вручную добавлять ссылки на файлы библиотек Prism в ваш проект. Подписанные сборки Prism располагаются в следующих папках:
Для регистрации файлов библиотеки Prism, запустите командный файл RegisterPrismBinaries.bat, расположенный в папке, куда вы распаковали Prism. Он создаст временный .reg файл с информацией, необходимой для регистрации Desktop, Silverlight, и Phone папок, содержащих бинарные файлы, и использует её для обновления системного регистра. Так как обновление регистра – привилегированная операция, то может появиться сообщение User Account Control (UAC), если у вас нет необходимых привилегий. Для получения дополнительной информации про UAC, смотрите "What is User Account Control [12]."
Заметка
Только одна копия бинарных файлов может быть зарегистрирована, используя сценарий; если несколько копий библиотеки Prism будут зарегистрированы, то только бинарные файлы для последней зарегистрированной копии будут доступны в Visual Studio.
Заметка
Наиболее простым способом установки Prism, является использование менеджера пакетов nuget [13], установленного по умолчанию в VS2012. Для установки необходимо набрать в консоли nuget команду PM> Install-Package Prism или воспользоваться визуальным интерфейсом.
Данный релиз был обновлён для использования возможностей WPF 4.0 и Silverlight 4. Он содержит несколько областей с новыми и существенно обновлёнными руководствами, включая следующие:
Теперь Prism также предоставляет подписанные версии сборок библиотеки Prism. Это сделано для удобства разработчиков, которые хотят использовать Prism библиотеки в их приложениях без изменений. Кроме того, все Visual Studio проекты (для Prism библиотеки, а также ссылки на реализации и QuickStarts) также были переведены на VisualStudio 2010 и Silverlight 4.
Prism содержит:
Документация Prism охватывает широкий круг тем, включая обзор общих проблем развития и подхода к разработке составных приложений, обзор библиотеки Prism и шаблонов проектирования, которые она реализует, а также пошаговые инструкции по использованию библиотеки Prism в процессе разработки. Документация обращена к широкой технической аудитории и предназначена для того, чтобы помочь читателю понять и использовать Prism в собственных приложениях. Документация включает в себя следующее (далее ссылки на MSDN):
Следующие темы включают в себя исходный код и интерактивное содержание:
QuickStarts – это небольшие приложения, иллюстрирующие отдельные аспекты Prism. Они являются идеальной отправной точкой, если вы хотите получить понимание ключевых идей и хорошо обучаетесь новым технологиям через чтение кода. Prism включает следующие QuickStarts:
Примеры реализаций Prism (reference implementation) – это образцовые приложения, основанные на реальных ситуациях, с которыми сталкиваются клиенты. Посмотрите на них в качестве основы для создания приложений с библиотекой Prism. Они включают в себя:
Если вы обновляетесь с предыдущих версий руководства, вы можете посмотреть "Upgrading from Previous Releases [31]" в приложении D, чтобы узнать о главных отличиях между этим и предыдущими релизами.
Prism было разработано, чтобы помочь вам проектировать и создавать богатые, гибкие и легкие в обслуживании WPF и Silverlight приложения. Библиотека Prism реализует шаблоны проектирования, которые воплощают важные принципы архитектурного дизайна, такие как разделение ответственности и слабую связанность. Использование шаблонов проектирования и возможностей, предоставляемых Prism, поможет вам проектировать и писать приложения со слабо связанными компонентами, которые могут развиваться самостоятельно и потом могут быть легко интегрированы в одно приложение.
Prism разработано вокруг основных принципов архитектурного дизайна, таких как разделение ответственности и слабая связанность. Это позволяет получить множество выгод, таких как:
Важно отметить, что Prism было разработано таким образом, что вы можете использовать любую из возможностей Prism и шаблонов проектирования по отдельности, или все вместе, в зависимости от ваших требований или сценариев приложения. Также Prism может быть внедрено постепенно, что позволяет использовать возможности и шаблоны проектирования, имеющие смысл именно в данный момент, не требуя серьезных структурных изменений в архитектуре приложения.
Наконец, поскольку тестирование программного обеспечения следует рассматривать как важнейшую часть разработки, Prism предоставляет расширенную поддержку для различных видов тестирования программного обеспечения, тем самым позволяя вам проектировать и создавать приложения, которые легко тестировать. Prism была разработана с прицелом на тестирование, с удовлетворением строгих стандартов качества и безопасности Microsoft, так что оно будет работать правильно под разными операционными системами, с разными версиями VisualStudio, а также с разными языками программирования. После каждого изменения были проведены модульные тесты. Кроме того, библиотека Prism была испытана в отношении нескольких дополнительных стандартов качества, как показано в следующей таблице.
Тест. | Описание. |
---|---|
Acceptance Testing. | Проверяет функциональность приложения, используя пользовательские сценарии. Тесты могут быть выполнены вручную или автоматизированы. |
Application Building Exercises. | Члены команды создают приложения, использующие поставляемое программное обеспечение. |
Black Box Testing. | Ручные приемочные испытания, выполняемые с пользовательской точки зрения. |
Cross Browser Testing. | Все автоматизированные тесты выполнены в разных браузерах. |
Cross Platform Testing. | Все автоматизированные тесты выполнены на разных платформах. |
Globalization Testing. | Все автоматизированные тесты выполнены на разных языках. |
Performance Testing. | Измерения того, как быстро различные части системы выполняются под нагрузкой. |
Security Review. | Внутренний аудит безопасности по стандартам Microsoft, которые покрывают модели потоков, выявляя факторы атаки и выполняя код в аналитических инструментах безопасности. |
Stress Testing. | Измерения стабильности системы при экстремальных нагрузках, а именно такие вопросы, как утечки памяти и проблемы с многопоточностью. |
White Box Testing. | Всесторонний анализ исходного кода, проверяющий стандарты кодирования, структуры и то, как это отражается на общей архитектуре. |
Исходный код библиотеки Prism включает модульные тесты и тесты автоматизации UI, как показано в следующей таблице. Вы можете использовать их в качестве образовательного ресурса или выполнять их непосредственно. Это позволяет вам настроить, перекомпилировать, протестировать и развернуть измененную версию библиотеки Prism с уверенностью в её работоспособности.
Тест. | Описание. |
---|---|
UI Automation Tests. | Ограниченный диапазон приемочного тестирования; управление приложением с пользовательской точки зрения. |
Unit Tests | Проверяет реализацию классов. |
Prism предоставляет возможности и шаблоны, которые могут быть для вас новыми, особенно если вы плохо знакомы с разработкой составных приложений и шаблонами проектирования. Этот раздел даёт краткий обзор основных понятий Prism и определяет часть терминологии, которую вы будете видеть в документации и в коде.
Prism разработано так, чтобы вы могли использовать любую из описанных возможностей и шаблонов индивидуально или все вместе, в зависимости от ваших требований и вашего сценария приложения. Вы можете использовать шаблон MVVM, модульность, регионы, команды, или события в любой комбинации без необходимости применять их все вместе. Конечно, если вы хотите в полной мере воспользоваться преимуществами разделения ответственности и слабой связи, вы будете использовать многие из возможностей Prism и шаблонов в сочетании друг с другом. Следующая иллюстрация показывает типичную архитектуру приложения Prism и показывает, как все различные возможности Prism могут взаимодействовать в пределах составного многомодульного приложения.
Большинство приложений Prism состоит из приложения-оболочки, в котором определены регионы для вывода на экран высокоуровневых представлении и общие службы, к которым могут получить доступ загруженные модули. Оболочка задаёт подходящий каталог модулей, чтобы определить, какие модули будут загружены во время запуска или по требованию, соответственно. Также инициализируется DI контейнер, который позволяет компонентным зависимостям быть разрешёнными во время выполнения. Общие службы и компоненты регистрируются в контейнере загрузчиком во время запуска приложения.
Отдельные модули инкапсулируют части функциональности и, используя такой паттерн, как MVVM, определяют представления, модели представления, модели, и компоненты служб. Когда модули загружены, представления, определенные в пределах модулей, выводятся на экран в пределах регионов, определенных оболочкой. После того, как инициализация завершается, пользователь может перемещаться в пределах приложения, используя state-based или view-switching навигацию.
Теперь, когда вы узнали про главные возможности и паттерны разработки, которые поддерживает Prism, пора узнать, как вы можете начать использовать Prism при разработке нового приложения. Этот раздел даёт краткий обзор нескольких первых шагов, требуемых для создания простого приложения Prism. Вы можете расширить это приложение, чтобы добавить дополнительные возможности и паттерны разработки, предоставляемые Prism, в соответствии с вашими целями.
Заметка
Хотя библиотекой Prism можно легко пользоваться, чтобы создавать новые составные WPF или Silverlight приложения (или приложения, которые предназначаются для обеих платформ), вы можете также использовать Prism с существующими приложениями, в которых вы хотите использовать одну или более возможностей Prism или паттернов разработки.
Приложение Prism обычно состоит из проекта оболочки и нескольких проектов модулей. Следующая иллюстрация показывает общие действия, необходимые при разработке составного приложения используя библиотеку Prism.
Типичное приложение Prism пользуется большинством или всеми возможностями Prism и паттернами проектирования, описанными ранее, чтобы получить все преимущества архитектурных принципов слабой связанности и разделения ответственности. Однако, для этого примера, описаны только те шаги, что требуются для создания базового приложения Prism, состоящего из единственного модуля, который определяет единственное представление.
Заметка
Большинство ваших проектов должны ссылаться на сборки библиотеки Prism. Prism предоставляет подписанные версии сборок библиотеки Prism и сценарий, который позволяет вам зарегистрировать их в Visual Studio так, чтобы вы могли использовать диалоговое окно Add References. Если вы решите не регистрировать сборки, то вы должны будете вручную добавить ссылки на них к вашим проектам. Вы можете также включать проекты библиотеки Prism в свое решение и затем использовать ссылки на них. Последний вариант имеет преимущество по использованию функции Go To Definition, чтобы перейти в типы Prism, и возможность создать и подписать свои сборки библиотеки Prism с вашим собственным строгим именем или сертификатом, как часть вашего процесса сборки.
Оболочка приложения задаёт базовое расположение элементов в пользовательском интерфейсе. Это расположение задаётся с использованием регионов, которые могут использованы модулями для размещения в них представлений. Представления, как и оболочка, могут использовать регионы, чтобы определить поддающиеся обнаружению области, куда может быть добавлено содержание, как показано на следующей иллюстрации. Оболочки обычно задают вид всего приложения и содержат стили, которые используются всюду в приложении.
Загрузчик является связующим звеном, соединяющим приложение со службами библиотеки Prism и Unity, или MEF. Каждое приложение создает специализированный загрузчик, который обычно наследовался или от UnityBootstrapper или от MefBootstrapper, как показано на следующей иллюстрации. Вы должны будете выбрать подход, который вы будете использовать при заполнении каталога модулей. Минимально, каждое приложение включает каталог модулей и оболочку.
По умолчанию, загрузчик журналирует события, используя класс .NET Framework Trace. Большинство приложений предоставляют свои собственные службы журналирования, такие как журналирование Enterprise Library. Приложения могут предоставлять свои службу журналирования в загрузчике.
По умолчанию, UnityBootstrapper и MefBootstrapper обеспечивают функционирование службам библиотеки Prism. Они могут быть отключены или заменены в вашем специализированном загрузчике.
Модуль содержит представления и службы, определенные для части функциональности приложения. Часто, они содержатся в отдельных сборках и разрабатываются отдельными командами. Сборка с модулем помечается классом, который реализует интерфейс IModule. Такие модули, во время инициализации, регистрируют свои представления и службы и могут добавить одно или более представлений к оболочке. В зависимости от вашего подхода обнаружения модуля вы, возможно, должны будете применить атрибуты к своим классам модуля или определить зависимости между вашими модулями.
Модули используют в своих интересах регионы оболочки для того, чтобы поместить в них контент. Во время инициализации модули используют RegionManager, чтобы определить местоположение регионов в оболочке и добавить одно или более представлений к этим регионам, или зарегистрировать один или более типов представления, которые будут создаваться в этих регионах. RegionManager ответственен за отслеживание регионов во всём приложении и является базовой службой, инициализирующейся в загрузчике.
Остающиеся главы в этом руководстве предоставляют детали о ключевых понятиях Prism.
Prism предполагает, что у вас есть практический опыт работы с WPF или Silverlight. Если вы нуждаетесь в общей информации о WPF и Silverlight, смотрите следующие ресурсы:
Если Вы нуждаетесь в общей информации о Silverlight, см. следующие ресурсы:
Сайт сообщества Prism http://www.codeplex.com/Prism [58]. На этом сайте можно задать вопросы, получить обратную связь, или связаться с другими пользователями для обмена идеями. Члены сообщества могут также помочь плану Microsoft и протестировать будущие предложения и загрузить дополнительный контент, такой как расширения и учебный материал.
Автор: Unrul
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/interfejsy/32621
Ссылки в тексте:
[1] Введение: http://habrahabr.ru/post/176851/
[2] Инициализация приложений Prism: http://habrahabr.ru/post/176853/
[3] Управление зависимостями между компонентами: http://habrahabr.ru/post/176861/
[4] разделение ответственности (Separation of Concerns, SoC): http://en.wikipedia.org/wiki/Separation_of_concerns
[5] слабая связанность (Loose coupling): http://en.wikipedia.org/wiki/Loose_coupling
[6] back-end: http://en.wikipedia.org/wiki/Front_and_back_ends
[7] нескольких уровнях: http://en.wikipedia.org/wiki/Multitier_architecture
[8] Microsoft Silverlight 4 Tools for Visual Studio 2010.: http://go.microsoft.com/fwlink/?LinkID=177428
[9] Microsoft Expression Blend 4: http://www.microsoft.com/expression/products/Blend_Overview.aspx
[10] Windows Phone Developer Tools SDK: http://go.microsoft.com/fwlink/?LinkId=185968
[11] Windows Phone 7 Developer Guide community site: http://wp7guide.codeplex.com/
[12] What is User Account Control: http://windows.microsoft.com/en-US/windows7/What-is-User-Account-Control
[13] менеджера пакетов nuget: http://nuget.org/
[14] Unity Application Block (Unity): http://msdn.microsoft.com/en-us/library/dd203101.aspx
[15] Managed Extensibility Framework (MEF): http://msdn.microsoft.com/en-us/library/dd460648.aspx
[16] Service Locator: http://commonservicelocator.codeplex.com/
[17] Initializing Prism Applications: http://msdn.microsoft.com/en-us/library/gg430868(v=PandP.40).aspx
[18] Managing Dependencies Between Components: http://msdn.microsoft.com/en-us/library/ff921140(v=PandP.40).aspx
[19] Modular Application Development: http://msdn.microsoft.com/en-us/library/gg405479(v=PandP.40).aspx
[20] Implementing the MVVM Pattern: http://msdn.microsoft.com/en-us/library/gg405484(v=PandP.40).aspx
[21] Advanced MVVM Scenarios: http://msdn.microsoft.com/en-us/library/gg405494(v=PandP.40).aspx
[22] Composing the User Interface: http://msdn.microsoft.com/en-us/library/ff921098(v=PandP.40).aspx
[23] Navigation: http://msdn.microsoft.com/en-us/library/gg430861(v=PandP.40).aspx
[24] Communicating Between Loosely Coupled Components: http://msdn.microsoft.com/en-us/library/ff921122(v=PandP.40).aspx
[25] Sharing Code Between Silverlight and WPF: http://msdn.microsoft.com/en-us/library/ff921109(v=PandP.40).aspx
[26] Project Linker: http://visualstudiogallery.msdn.microsoft.com/en-us/5e730577-d11c-4f2e-8e2b-cbb87f76c044
[27] Deploying Prism Applications: http://msdn.microsoft.com/en-us/library/gg430856(v=PandP.40).aspx
[28] Glossary: http://msdn.microsoft.com/en-us/library/ff921135(v=PandP.40).aspx
[29] Patterns in the Prism Library: http://msdn.microsoft.com/en-us/library/ff921146(v=PandP.40).aspx
[30] Prism Library: http://msdn.microsoft.com/en-us/library/gg405476(v=PandP.40).aspx
[31] Upgrading from Previous Versions: http://msdn.microsoft.com/en-us/library/ff921073(v=PandP.40).aspx
[32] Extending Prism: http://msdn.microsoft.com/en-us/library/gg430866(v=PandP.40).aspx
[33] Reference Implementations: http://msdn.microsoft.com/en-us/library/gg405483(v=PandP.40).aspx
[34] QuickStarts: http://msdn.microsoft.com/en-us/library/gg430879(v=PandP.40).aspx
[35] Prism Hands-On Labs: http://msdn.microsoft.com/en-us/library/gg405475(v=PandP.40).aspx
[36] Modularity QuickStarts for WPF: http://msdn.microsoft.com/en-us/library/ff921068(v=PandP.40).aspx
[37] Modularity QuickStarts for Silverlight: http://msdn.microsoft.com/en-us/library/ff921163(v=PandP.40).aspx
[38] Basic MVVM QuickStart: http://msdn.microsoft.com/en-us/library/gg430857(v=PandP.40).aspx
[39] MVVM QuickStart: http://msdn.microsoft.com/en-us/library/gg430869(v=PandP.40).aspx
[40] UI Composition QuickStart: http://msdn.microsoft.com/en-us/library/ff921174(v=PandP.40).aspx
[41] State-Based Navigation QuickStart: http://msdn.microsoft.com/en-us/library/gg405495(v=PandP.40).aspx
[42] View-Switching Navigation QuickStart: http://msdn.microsoft.com/en-us/library/gg430881(v=PandP.40).aspx
[43] Commanding QuickStart: http://msdn.microsoft.com/en-us/library/ff921082(v=PandP.40).aspx
[44] Event Aggregation QuickStart: http://msdn.microsoft.com/en-us/library/ff921173(v=PandP.40).aspx
[45] Multi-Targeting QuickStart: http://msdn.microsoft.com/en-us/library/ff921176(v=PandP.40).aspx
[46] Stock Trader Reference Implementation: http://msdn.microsoft.com/en-us/library/ff921074(v=PandP.40).aspx
[47] MVVM Reference Implementation: http://msdn.microsoft.com/en-us/library/gg405492(v=PandP.40).aspx
[48] MVP: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter
[49] механизм события pub-sub: http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
[50] Внедрение зависимости (Dependency Injection, DI): http://en.wikipedia.org/wiki/Dependency_injection
[51] Windows Presentation Foundation: http://msdn2.microsoft.com/en-us/library/ms754130.aspx
[52] Microsoft Silverlight Home Page: http://www.microsoft.com/silverlight/
[53] Microsoft Silverlight Resources: http://www.microsoft.com/silverlight/resources/default.aspx
[54] Microsoft Silverlight Community: http://silverlight.net/default.aspx
[55] Silverlight Documentation: http://msdn.microsoft.com/en-us/library/cc838158(vs.95).aspx
[56] Silverlight Books: http://www.silverlightbooks.net/
[57] Project Rosetta: http://visitmix.com/labs/rosetta/
[58] http://www.codeplex.com/Prism: http://www.codeplex.com/Prism
Нажмите здесь для печати.