Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBenigno Cavaliere Modificato 10 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.