Il framework Spring.NET è ideato per non essere intrusivo, proprio per questo motivo è composto da una serie di macro funzionalità suddivise in moduli, utilizzabili anche singolarmente a seconda delle nostre esigenze. Essi sono:
- Spring.Core: Rappresenta il punto contrale del framework, questo blocco è composto da un Inversion of Control Container e da una serie di "utility" per vare arie funzionali come Collection, Threading e Pooling.
- Spring.AOP: In questo modulo sono implementate le funzionalita di Aspect Oriented Programming.
- Spring.Web: qui troviamo una serie di estenzioni per migliorare lo sviluppo di applicazioni ASP.NET.
- Spring.Services: questa area integra le tecnologie a servizi come Windows Services, Web Services, Remoting, Enterprise Services ed in futuro WCF.
- Spring.Data: questo modulo espone un Data Access Layer costruito su ADO.NET che ne semplifica l'utilizzo.
- Spring.ORM: in questa parte viene gestita l'integrazioni di Spring.NET con i più famosi ORM come iBatis ed NHibernate.
Oltre a questi moduli ce ne sono altri non ufficiali che sono:
- Spring.Messaging: il quale racchiude le funzionalità di integrazione per vari Messaging Middleware come TIBCO EMS e NMS.
- Spring.Windows: dove troviamo le funzionalità di integrazione tra Spring.NET ed il mondo delle WinForms. In futuro sarà supportato anche WPF.
Tutti questi moduli permettono di sviluppare applicazioni Object Oriented molto coese, quindi, facilmente isolabili e testabili. In più permette di sviluppare le nostre appplicazioni enterprise tenendo bene a mente il concetto di POCO*.
Nella versione 1.0 del framework, solo il modulo Core e quello di AOP erano full featured. Nella attuale versione, la 1.1 RC1, sono stati ufficialmente rilasciati i moduli Web, Data e ORM. Tutti gli altri sono già disponibili in versione preliminare ma utilizzabile e verranno rilasciati nelle future release.
Nei prossimi post esploreremo le funzionalità dei vari moduli cominciando naturalmente dal Core.
* POCO (Plain Old CLR Object) rappresenta un principio di modellazzione delle classi. Possiamo definire POCO un qualsiasi classe che segue queste regole:
1. Non hanno necessità di ereditare da nessuna classe base
2. Non devono implementare nessun tipo di interfaccia
3. Non hanno bisogno di factory per essere costruite
4. Non hanno bisogno di costruttori specifici per essere costruite
5. Non hanno nessuna logica interna per la persistenza
Technorati Tags:
Spring.NET