/ / Microsoft Prism е подходящ за разработка на не-GUI модулен сървър в реално време? - c #, модул, единичен контейнер, призма, ioc-контейнер

Microsoft Prism е подходящ за разработка на не-GUI модулен сървър в реално време? - c #, модул, единичен контейнер, призма, ioc-контейнер

Работя върху приложението на сървъра, коетотрябва динамично да зареждат модулите при стартиране въз основа на това дали съществуват или не като съвкупности. Аз направих нещо подобно преди, но този път той е производствен код и искам да използвам рамки за модулация и инстанция (използвайки контейнери на IoC). Първоначално разбрах, че призмата на Microsoft (с единство) е подходяща рамка за това, но съм загрижена, защото внедрявам инициализирането и стартирането. Сървърът няма да има собствен GUI и вероятно ще работи като прозорец по-късно. (Разработвам го като просто приложение за конзола междувременно.) Различни клиенти (приблизително едно клиентско приложение на модул) ще бъдат разработени, за да взаимодействат със сървъра чрез WCF.

Трябва ли дори да използвам Призма за такова приложение, тъй като изглежда, че е насочена към приложения с възможност за GUI? Престанах да кодирам, когато използвам базовия клас Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper което изисква прилагането на CreateShell() метод. Очаквах да се нарече нещо подобно Run() или нещо подобно. Аз наистина имам черупки, или поне GUI черупки.Имам ли четене на много в това, и има смисъл да се използва Prism без да се притеснявате за това, че има потенциално излишни GUI функционалност? Използвам ли правилния инструмент за работа?

Отговори:

2 за отговор № 1

Мисля, че вече знаете отговора. Призмата е за клиентски приложения. Дори и да получите тази работа в сървърната ви среда, ще има много от рамката, която просто е на път. Искате да използвате контейнер на IoC и вече използвате Unity за това (Prism използва по подразбиране Unity ). Моят съвет, издърпайте Prism и започнете да инсталирате кабели, като използвате Unity. Динамично натоварващите механизми са изключително лесни. Не се нуждаете от издутина рамка само за товарене на агрегати.


3 за отговор № 2

Както е посочено в отговора на Стивън, Призмът е предназначенза клиентски приложения. Единството е добър избор за контейнер за инжектиране на зависимост, но вярвам, че за вашата ситуация вероятно ще бъде много по-добре да използвате или Управлявана рамка за разширение (MEF) или Управлявана добавка рамка (MAF).

Единството се използва предимно, когато типовите присвоявания са известни по време на компилирането, преди версия 2.1, няма поддръжка на динамичните регистрации.

Управляваната рамка за разширение е идеална за динамично откриване на типове за инжектиране на зависимости. виждам тук за количеството опции, които осигурява динамично зареждане на типове от модулите по време на изпълнение.

Управляваната добавена рамка е част от.NET Framework от .NET 3.5, една от най-големите му характеристики е изолацията на монтаж, асемблирането може да се зареди в отделни домейни за приложения и дори да се процедира и след това да се използва. Това е чудесно за пристрастия от трета страна, ако са бъгове и катастрофи , те няма да отнесат кандидатурата ви с тях.