Architettura e nuove funzionalità della Enterprise Library 2.0

di Francesco Lomonaco, in ASP.NET,

Dopo l'uscita di Visual Studio 2005 nel novembre scorso, è stata rilasciata da qualche settimana la versione 2.0 della Enterprise Library, la libreria curata da Microsoft Patterns & Practices e realizzata sfruttando le migliori pratiche di sviluppo e i principali design pattern architetturali. L'Enterprise Library include una serie di application block, ognuno dei quali è pensato per fornire un set specifico di funzionalità di uso frequente nell'ambito delle applicazioni di tipo enterprise.

Chi conosce già l'Enterprise Library (EL), probabilmente sa che la versione 1.1 rilasciata nel giugno 2005 poteva già essere utilizzata con Visual Studio 2005. La versione 2.0 rappresenta comunque la prima versione specificamente creata per Visual Studio 2005 e presenta notevoli novità rispetto alle release precedenti e un alto livello d'integrazione con il .NET Framework.

Ma cos'è l'Enterprise Library?

Per coloro che non sanno cosa sia esattamente, l'Enterprise Library è un'articolata libreria di codice, creata dal gruppo Pattern & Practices in seno a Microsoft e mirata alla risoluzione ottimizzata di problemi comuni (come, ad esempio, utilizzare un database da codice, implementare pratiche di caching, logging di errori, ecc.).

L'Enterprise Library e i precedenti singoli Application Block esistono ormai da circa due anni, con alterne fortune. Inizialmente sono stati rilasciati i singoli blocchi per specifiche esigenze funzionali (database, caching, security, exception handling, ecc.). In seguito, ovvero nel gennaio 2005, i vari blocchi sono stati integrati in un'unica libreria, detta appunto Enterprise Library, dove la distinzione tra i blocchi è rimasta, ma sono stati maggiormente sviluppati gli aspetti legati all'integrazione e alla comunicazione tra le diverse funzionalità.

I vantaggi nell'utilizzo dell'EL si esprimono nella possibilità di usufruire di librerie di codice ottimizzato, progettato e scritto da architetti e programmatori più che validi.

Cosa c'è nel pacchetto?

È possibile scaricare gratuitamente l'EL dalla sezione Microsoft Patterns & Practices di MSDN (si veda la sezione Approfondimenti in fondo all'articolo).

La versione 2.0 viene distribuita con:

  • il codice sorgente: l'Enterprise Library può infatti essere modificata al fine di renderla più integrata con il proprio ambiente e le proprie necessità di sviluppo;
  • gli Unit Test (o test unitari, per gli anglofobi), che sono stati scritti dai programmatori che hanno lavorato alla creazione del codice. Questo consente di verificare velocemente l'integrità del codice, qualora lo si volesse modificare;
  • i QuickStart, che sono in pratica gli esempi relativi ai diversi blocchi;
  • la documentazione, visualizzabile attraverso il sistema integrato di Help di Visual Studio 2005.

Novità in generale

A coloro che stanno leggendo l'articolo con sospetto, perché hanno avuto in passato problemi specialmente legati alla configurazione e ai permessi, è bene dire subito che ciò dovrebbe appartenere al passato, in quanto sono state introdotte notevoli migliorie da questo punto di vista.

La versione rilasciata nello scorso giugno includeva i seguenti blocchi:

  • Caching Application Block
  • Configuration Application Block
  • Cryptography Application Block
  • Data Access Application Block
  • Exception Handling Application Block
  • Logging & Instrumentation Application Block
  • Security Application Block

La nuova versione rilasciata nel gennaio 2006 ha perduto il Configuration Block, perché la configurazione adesso ruota attorno al namespace System.Configuration del .NET Framework.

Novità in dettaglio

Logging Application Block

Il Logging Application Block è stato decisamente migliorato. È più flessibile perché può utilizzare classi importanti del namespace System.Diagnostics, come la classe TraceListener e la classe CorrelationManager.

Al posto dei Log Sink delle versioni precedenti, ora il blocco usa i Trace Listener: è possibile utilizzare quelli già presenti nel .NET Framework, quelli rilasciati con l'EL o altri scritti da terze parti.

Le funzionalità fornite precedentemente da strategie distribuite, come, ad esempio, quelle che utilizzavano il Message Queuing per il logging asincrono, nella versione 2.0 sono state implementate attraverso i Trace Listener.

È stata inoltre estesa la possibilità di filtrare le informazioni di log. Derivando i propri oggetti dalla classe LogFilter, gli sviluppatori possono sviluppare i propri filtri come implementazioni dell'interfaccia ILogFilter.

Infine l'informazione che viene registrata nei file di log utilizza un oggetto singleton della classe LogEntry. In questo modo è possibile instradare i messaggi di log a listener diversi, superando così la limitazione delle versioni precedenti, che consentiva ad una LogEntry di riferirsi ad un solo target.

Data Access Application Block

Il DAAB è più flessibile ed è stata migliorata la portabilità del codice tra i diversi tipi di database. A parte l'uso completamente trasparente e intercambiabile delle classi di tipo Database già create per SQL Server e Oracle all'interno del blocco, è possibile utilizzare il DAAB per qualunque provider supportato da ADO.NET 2.0, anche laddove non vi sia già una classe Database specificamente creata. Questo aiuta a rendere sempre più indipendenti i livelli di accesso ai dati e business dell'applicazione, sollevando il programmatore dall'onere di dover creare soluzioni bespoke per database diversi.

È stata migliorata inoltre la semplicità d'uso, per esempio, attraverso la possibilità di utilizzare dinamicamente una stringa di connessione, senza necessariamente bisogno di tenerla in un file di configurazione. Questa può essere utilizzata durante la fase di creazione dell'istanza della classe Database, per iniettare dinamicamente informazioni di connessione, magari ottenute dal livello business dell'applicazione.

Un ulteriore importante cambiamento è stato l'eliminazione del tipo DBCommandWrapper, sostituito dalla nuova classe DbCommand, nativa di ADO.NET 2.0.

Security Block

Il Security Block è diventato più leggero, in quanto alcune delle precedenti caratteristiche sono state deprecate in favore di .NET Membership e le caratteristiche dell'oggetto Profile di ASP.NET. La documentazione fornisce indicazioni per quanti avessero già utilizzato questo blocco e vogliano usare invece le classi System.Web.Security.Membership e System.Web.Profile.

3 pagine in totale: 1 2 3
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata