Как да създадете приложение Prism (MEF) в Silverlight

Не съм работил по проекти на Silverlight от доста време. Следователно ръцете не стигнаха до Prism. Накратко, напълно забравих как да направя приложение на Prism от обикновено приложение Silverlight и дори такова, което използва MEF. Това е само в тази статия, която ще си спомня, но за едно и последователно описвам как да направя това.

Създайте проект Silverlight

Така че, като начало, изтеглете библиотеката Prism от официалния сайт. По време на писането на тази статия версията, предлагана за изтегляне, беше Prism 4.0 ноември 2010 г. Сега нека създадем нов проект Silverlight.

Prism

Избрано е името, посочена е папката за запис на проекта, натискам Ok. В следващия прозорец на съветника показвам, че не е необходимо да създавате уеб проект, като деактивирате съответното квадратче за отметка. Потвърждавам избора си. Едно начало. Сега веднага изтривам файла MainPage.xaml, защото няма да ми е полезен. Трябва да добавим сглобките на Prism към проекта:

приложение

Тъй като искам да използвам MEF, маркирам и Microsoft.Practice.Prism.MefExtentions.dll - сглобка на разширението. Създавам нов Bootstrapper, който е "стартерът" на приложението. И преди да започна да работя с него, ще създам Shell за моя проект. Добавям нов потребителски контрол на Silverlight към проекта, наречен Shell.xaml. Сега обратно към стартера. Ще наследя от MefBootstrapper и ще заместя методите CreateShell(), ConfigureAggregateCatalog() и InitializeShell(). Ето как изглежда моят стартер сега:

Добре... добре, защото приложението няма да се компилира, но знам защо (файлът MainPage.xaml е премахнат). За да започнете да компилирате всичко, направете следното. Добавям още една сборка към проекта: System.ComponentModel.Composition.dll:

Това е така, защото MEF го изисква. Сега трябва да направите някои промени във файлаApp.xaml.cs Необходимо е по някакъв начин да се уточни какъв е началният потребителски интерфейс:

Надявам се да е ясно какво съм направил. Компилирам... Няма грешки, но като стартирам излиза грешка... Аааа. Необходимо е да поставите атрибута за експортиране на класа Shell.

Сега проектът стартира! И въпреки че не е много приятно да гледате празен екран, ще направя малко лирично отклонение.

Експортирайте шаблон на приложение

Факт е, че почти винаги ще трябва да започнете да програмирате всяко приложение на Prism по същия начин, както току-що показах. Тоест като цяло този пример в момента е почти готов шаблон за всички следващи проекти. А това означава, че ако щракнете върху менюто Файл -> Експортиране на шаблон:

като

Освен това, следвайки подканите на съветника за запазване на шаблон, можете да избегнете повтарянето на горните операции, като запазите текущия проект като шаблон на проект. Ако запишете този шаблон, следващия път можете просто да го изберете от списъка с предложени шаблони за проекти.

Искам очила

Белият екран не е най-приятният вид за работещо приложение. Трябва да покажем нещо, но от една страна, ще покажа какви допълнителни действия могат да бъдат предприети, за да видим както Prism, така и MEF в действие.

Можете да използвате комплекта библиотека Prism по различни начини. Ще покажа пример с използване на региони. За да направите това, отворете Shell и добавете необходимото пространство от имена, за да добавите региона към маркирането:

Сега ще добавя ContentControl и ще го етикетирам:

Глоба. Сега трябва да прокараме нещо в този регион. Създавам ново визуално представяне (SimpleView.xaml), така че да имам какво да напълня. Представянето е елементарно! Промених цвета на фона и това е достатъчно, за да видя, че изгледът е свързан успешно:

Shell се нуждаевземете екземпляр на IRegionManager и самия SimpleView и след това поставете един в друг. Първо, маркирам изгледа с атрибут за експортиране:

Във файла Shell.xaml.cs настройвам импортиране:

И накрая, кодът, който завършва тази статия:

Готов. Компилиране, изпълнение... Успех! Пред мен IE е ярко оранжев. Q.E.D. Ура! Благодаря за вниманието. И нека силата на MEF бъде с вас!