Ho una domanda relativamente semplice, ma più che altro ho bisogno solo di una certa chiarezza, ho usato Prism (Composite Application Guidance) per creare un'applicazione desktop MVVM WPF in C#, questo bit sono tutto chiaro (o almeno così pensavo) insieme all'architettura basata su IoC e sui moduli, ecc. Allo stesso tempo ho iniziato a usare MEF e mi sono reso conto che c'è una specie di area grigia tra i due (ho trovato e letto un numero di articoli/blog sull'hosting di Estensioni MEF in contenitori IoC e similiDifferenze tra MEF, EntLib e Prisma
Tuttavia .... recentemente ho iniziato a esaminare Enterprise Library 5 e questo è ciò che ha portato alla mia confusione: dove si integrano tutti? DI con un'architettura basata su moduli ... EntLib utilizza Di con un'architettura di tipo Application Block ... e ME F non usa affatto la DI? Ciò significa che EntLib e Prism sono metodi architettonici completamente separati o che uno è un sottoinsieme dell'altro? Inoltre, MEF può essere utilizzato con entrambi/entrambi?
Qualsiasi spiegazione sarebbe molto gradita.
Molte grazie
Ciao Josh, molte grazie per la tua risposta, questo è un buon modo per descriverle e pensarle. Ho trovato un ottimo video su Channel 9 di Mike Taulty, basato su Silverlight ma altrettanto rilevante anche per WPF: http://channel9.msdn.com/blogs/matthijs/silverlight-4-a-guided-tour-of-the -managed-extensibility-framework-mef – jameschinnock
IOC, quando fatto appropriatamente con DI, espone le interfacce che consentono di "conoscere" la funzionalità ma non la classe che la guida. Questo è semplicemente un progetto polimorfico al lavoro, ma aggiunge complexixity MEF è univoco in quanto genera al volo le DLL usando il reflection. Quindi consente di sostituire le DLL senza alterare il codice sorgente da altre basi di codice.Quindi sono completamente d'accordo con Josh su questa componente, tuttavia, non credo che sia un approccio ragionevole per la maggior parte delle persone. http://msdn.microsoft.com/en-us/library/ff648478.aspx http://msdn.microsoft.com/en-us/library/dd460648%28v=vs.110%29.aspx –
MEF => Plug-in applicazione – orad