Що таке призма для WPF?


137

Нещодавно я натрапив на щось, що називається Призма . Microsoft, який керує проектом, описує його як

Вказівки щодо складених застосувань у WPF та Silverlight.

Навіть прочитавши детальніші описи там, я боюсь, що я не знаю, про що це насправді, я боюся.

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

Зокрема, мені цікаво наступне:

  • Чи призма буквально просто (або в основному) буклет, як це наведено на сайті MSDN ? Чи включає в себе будь-які бібліотеки, якщо так для чого саме?

  • Чи призма є рамкою MVVM? Чи повинен я використовувати його як "офіційну основу Microsoft MVVM" над іншими чи моїми власними?

  • Чи передбачено введення залежності? Чи взагалі це стосується МЕФ таким чином?

  • Все, що я повинен знати про те, чим займається Призма, як розробник WPF / Silverlight.


5
Насправді це теж досить складна річ - Призма намагається заповнити багато потреб, тому важко отримати єдину "правильну" відповідь, якщо ви намагаєтесь з'ясувати її призначення. Це дійсно робить багато речей.
Рід Копсей

1
Цей подібне питання задає мені також мають деякі хороші відповіді на це питання - stackoverflow.com/questions/6251821 / ...
akjoshi

9
ще одна мутна трясовина від P&P. кожного разу, коли вони випускають щось подібне, мені здається, що мені потрібно перейти до програми SO або wikipedia, щоб дізнатись, що це за річ. чому воно завжди повинно бути настільки виразним?
Адам Ральф

1
якщо вам подобається, це своєрідна документація, яка допоможе вам реалізувати схему MVVM у своїх програмах WPF / Silverlight. Є також бібліотека з codePlex, для якої я не впевнений, для чого це саме. хороша документація про PRISM міститься в нижченаведеному посиланні. Варто, якщо подивитись на це: Призма 4.1 - Керівництво розробника по Microsoft Prism - MSDN
user3353518

Відповіді:


92

Призма - офіційне керівництво команди з питань шаблонів та практик Microsoft щодо створення "складових додатків" у WPF та Silverlight.

Він призначений для надання рекомендацій щодо передового досвіду створення великих масштабних додатків, які є гнучкими з точки зору розвитку та ремонту.

Сюди входять вказівки щодо введення залежності (через Unity або MEF), макет (включаючи використання MVVM), обробку композиційних подій тощо.


Чи призма буквально просто (або в основному) буклет, як це наведено на сайті MSDN? Чи включає в себе будь-які бібліотеки, якщо так для чого саме?

Це книга, але також включає бібліотеки для підтримки (на сайті GitHub ).

Чи призма є рамкою MVVM? Чи повинен я використовувати його як "офіційну основу Microsoft MVVM" над іншими чи моїми власними?

Так і ні. Вона включає в себе вказівки щодо використання MVVM, але це набагато більше, ніж рамки MVVM. Вона сама по собі не є "рамкою MVVM" - хоча вона включає керівництво MVVM.

Чи передбачено введення залежності? Чи взагалі це стосується МЕФ таким чином?

Так. Спочатку він включав Unity, але останній реліз включає використання MEF для DI.

Все, що я повинен знати про те, чим займається Призма, як розробник WPF / Silverlight.

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


1
Дякую за відповідь. Це дає мені хороший огляд, я думаю. Щоб було зрозуміло: чи є насправді якийсь код, пов'язаний з MVVM, або бібліотека DLL?
Нолдорін

4
@Noldorin: Я припускаю, що ви запитуєте про внутрішню призму ... Існує деяка підтримка MVVM, але, чесно кажучи, MVVM, як зразок, майже не потребує підтримки бібліотеки. У призми є хороший об’єкт сповіщень та командна підтримка, що насправді єдине, чого не вистачає в BCL, який вам дійсно потрібен для MVVM. Він також має підтримку локатора служб, що допомагає, якщо ви хочете використовувати послуги DI / спільного користування для VM <-> VM-зв'язку. У ньому немає деяких "зайвих" речей, що надаються деякими MVVM "фреймворками", такими як фреймворк для обміну повідомленнями тощо.
Reed Copsey

1
Для того, щоб дотримуватися вказівки щодо призми, чи обов'язково бібліотеки встановлені?
dios231

18

Це основа для створення програм WPF та Silverlight.

http://compositewpf.codeplex.com/

Раніше його називали "Призма", перш ніж Microsoft перейменувала його на "CompositeWPF".

Відповіді:

1) Призма - це структура MVVM, яка використовується як основа для ваших програм

2) Я пропоную так, залежно від ваших конкретних вимог. Вам слід опублікувати ще одне запитання з конкретними подробицями, щоб отримати певні відповіді.

3) Призма використовує ін'єкцію залежності (Unity), але не "забезпечує" її

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


3
Я дещо не погоджуюся з вашим твердженням №1 - Призма включає в себе вказівки щодо MVVM, але багато вказівок (більшість зразків) зовсім не є MVVM. Він більше представлений як один із варіантів, який можна використовувати при побудові складених додатків.
Рід Копсей

1
Я здогадуюсь, що я завжди використовував схему MVVM
rboarman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.