Scelta di un contenitore .Net Inversion of Control per il primo tentativo di Dependency Injection
-
03-07-2019 - |
Domanda
Quale contenitore IoC è il più semplice da cui iniziare. Questo probabilmente equivale a quali hanno la documentazione più amichevole. Non troppo preoccupato per il numero di funzionalità.
Soluzione
Dai un'occhiata a questo episodio di DotNetRocks con James Kovacs: http://www.dotnetrocks.com/default.aspx?showNum=362
E questo DNRTV dove lancia il suo IoC: http://www.dnrtv.com/default.aspx?showID=126
Keith
Altri suggerimenti
La cosa più semplice dipende praticamente da dove " da dove vieni " ;. Ma se hai familiarità con le funzionalità .Net 3.5 come lambda e metodi di estensione, sono un grande fan di Autofac. Autofac fa un uso intensivo di lambda e metodi di estensione per la registrazione dei componenti anziché utilizzare i file xml. Ciò aggiunge il vantaggio di avere la sicurezza totale del tipo e anche di avere intelligenza al momento della registrazione. È anche un contenitore molto leggero che mi piace.
Autofac è ospitato sul codice di Google ( http://code.google.com/p/autofac / ) e ha un wiki abbastanza buono con documentazione.
Vorrei iniziare con Smart Client Software Factory o < a href = "http://msdn.microsoft.com/en-us/library/cc468366.aspx" rel = "nofollow noreferrer"> Unity
Includono tonnellate di campioni, così come l'SCSF tra cui alcuni altri modelli di progettazione con cui fare la scimmia.
Mi piace Castle Windsor e qui puoi trovare un articolo in tre parti che descrive tutto ciò di cui hai bisogno per iniziare.
http://dotnetslackers.com/articat >
Anche StructureMap e Unity sono ben documentati.
A proposito, tieni presente che quasi tutti i container funzionano allo stesso modo, quindi passare da uno all'altro è abbastanza semplice.
Vuoi conoscere l'IoC?
In tal caso, consiglio CIO di Oren Eini in 15 righe perché nulla ti aiuta a imparare più velocemente di un esempio davvero semplice con il codice sorgente completo.
Consiglierei StructureMap.
Molto facile da configurare e iniziare.