Что такое Prism для WPF?

Недавно я встретил что-то, называемое Prism. Microsoft, который запускает проект, описывает его как

Рекомендации для составных приложений в WPF и Silverlight.

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

Я надеюсь, что кто-то может дать мне ясное сжатое объяснение того, что такое Призма, и почему я должен это изучить. Я уже несколько лет являюсь разработчиком WPF, использовал MVVM свою справедливую долю и в последнее время сталкивался с людьми, использующими Prism, но лично чувствую себя немного вне цикла здесь.

В частности, я задаюсь вопросом о следующих моментах:

  • Является ли Призма буквально просто (или главным образом) буклетом, как указано на сайте MSDN? Включает ли он какие-либо библиотеки, если да, то что именно?

  • Является ли Prism основой MVVM? Должен ли я использовать его как "официальную инфраструктуру MVVM Microsoft" над другими там или моими?

  • Обеспечивает ли он инъекцию зависимостей? Связано ли это с MEF таким образом?

  • Что-нибудь еще я должен знать о том, что делает Prism, как разработчик WPF/Silverlight.

Ответ 1

Prism - это Microsoft Patterns and Practices Team официальное руководство для создания "составных приложений" в WPF и Silverlight.

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

Это включает руководство по инъекции зависимостей (через Unity или MEF), макет (включая использование MVVM), составную обработку событий и т.д.


Является ли Призма буквально просто (или главным образом) буклетом, как указано на сайте MSDN? Включает ли он какие-либо библиотеки, если да, то что именно?

Это книга, но также включает библиотеки для поддержки (на GitHub).

Является ли Prism основой MVVM? Должен ли я использовать его как "официальную структуру MVVM Microsoft" над другими там или с моей собственной?

Да и нет. Он включает руководство для использования MVVM, но это гораздо больше, чем MVVM. Это действительно не само по себе "MVVM framework", хотя оно включает в себя руководство MVVM.

Обеспечивает ли он инъекцию зависимостей? Связано ли это с MEF таким образом?

Да. Первоначально он включал Unity, но последняя версия включает использование MEF для DI.

Что-нибудь еще я должен знать о том, что делает Prism, как разработчик WPF/Silverlight.

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

Ответ 2

Это среда для создания приложений WPF и Silverlight.

http://compositewpf.codeplex.com/

Раньше он назывался "Prism", прежде чем Microsoft переименовала его в "CompositeWPF".

Ответы:

1) Призма - это среда MVVM, используемая в качестве основы для ваших приложений.

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

3) Призма использует инъекцию зависимостей (Unity), но не "предоставляет" ее

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