La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP.

Presentazioni simili


Presentazione sul tema: "14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP."— Transcript della presentazione:

1 14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP

2 Andrea Balducci mtb.snowboard @ gmail.com http://www.ienumerable.it Riferimenti andreabalducci

3 Framework TipoComportamento Unityhttp://unity.codeplex.com/Wikipage http://msdn.microsoft.com/en-us/library/dd203101.aspx Ninjecthttp://ninject.org/ Autofachttp://code.google.com/p/autofac/ Springhttp://www.springframework.net/ Castle projecthttp://www.castleproject.org/container/

4 Unity The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection. http://unity.codeplex.com/

5 Definiamo un contratto public interface IOperazioneMatematica { int Esegui(int a, int b); }

6 Implementazione public class OperazioneSomma : IOperazioneMatematica { public int Esegui(int a, int b) { return a + b; }

7 Configurazione del container // Creazione container IUnityContainer container = new UnityContainer(); // Registrazione componenti container.RegisterType< IOperazioneMatematica,// contratto OperazioneSomma// implementazione >();

8 Utilizzo del container // Richiesta del servizio di calcolo var operazione = container.Resolve (); // Utilizzo del servizio int risultato = operazione.Esegui(1, 2);

9 Injection [InjectionConstructor] Per marcare un costruttore da utilizzare esplicitamente. In assenza viene usato il costruttore con il maggior numero di parametri. [Dependency] Marca il setter della property [InjectionMethod] Marca un metodo di inizializzazione

10 {demo}

11 Castle Windsor Castle Project offers two Inversion of Control Containers. The MicroKernel and the Windsor Container. The Castle MicroKernel is an inversion of control container that was designed towards extensibility. It combines facilities to grow orthogonally. Castle Windsor aggregates the MicroKernel and exposes a powerful configuration support. It is suitable for common enterprise application needs. It is able to register facilities and components based on the configuration and adds support for interceptors http://www.castleproject.org/container/index.html

12 Windsor - ComponentLifecycle TipoComportamento LifestyleType.Customhttp://www.primordialcode.com/blog/post/castle- windsor-transient-objects-and-release-policies LifestyleType.PerWebRequestListanza è condivisa nella stessa request request (richiede HttpModule) LifestyleType.PooledLe istanze transienti possono essere riciclate LifestyleType.SingletonListanza è unica (default) LifestyleType.ThreadListanza è condivisa nello stesso thread LifestyleType.TransientListanza viene creata ad ogni richiesta http://www.castleproject.org/container/documentation/v21/usersguide/lifestyles.html

13 {demo}

14 Castle - Facilities IntegrationBasic ServicesSemantic ActiveRecordLoggingEventiWiring Aspect#Automatic TransactionFactorySupport iBatisNetTypedFactory NHibernateStartable PrevalenceOnCreate Db4o Remoting WCF Integration http://www.castleproject.org/container/facilities/trunk/index.html

15 {demo}

16 {grazie} andreabalducci


Scaricare ppt "14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP."

Presentazioni simili


Annunci Google