Enterprise Library

Enterprise Library (EL publiée le 20/04/2010) est un composant ou plutôt un ensemble de composants, une série de blocs applicatifs, un socle, faisant partie des problématiques transverses de l'Architecture Logicielle.

Enterprise Library Documentation :
http://entlib.codeplex.com/
Curieusement le codeplex n'est utilisé que pour la documentation.

Download Enterprise Library :
http://www.microsoft.com/en-us/download/details.aspx?id=15104

Hands-On Labs for Microsoft Enterprise Library 5.0 :
http://www.microsoft.com/en-us/download/details.aspx?id=6932

Objectifs de l'Enterprise Library

Un des principes fondamentaux du design des applications modernes est de réduire les dépendances et le couplage entre les composants et les objets. Enterprise Library vous permet d'atteindre ce but en mettant en oeuvre le pattern de DI (Dendency Injection).

Entreprise Library est désignée pour être extensible, vous pouvez très bien écrire votre propre composants (custom plug-in), modifier le code du corps et même créer vos propres nouveaux blocs.

Documentation :
http://entlib.codeplex.com/releases/view/43135
EntLib50.chm

http://entlib.codeplex.com/wikipage?title=EntLib5

Enterprise Library permet de gérer des préoccupations transverses.

Les blocs applicatifs

  • Caching. The Caching Application Block lets you incorporate a local cache in your applications that uses an in-memory cache and, optionally, a database or isolated storage backing store. The block provides all the functionality needed to retrieve, add, and remove cached data, and supports configurable expiration and scavenging policies. You can also extend it by creating your own pluggable providers or byusing third-party providers—for example, to support distributed caching and other features. Caching can provide considerable improvements in performance and efficiency in many application scenarios.
  • Credential Management. The Security Application Block lets you easily implement common authorization-related functionality, such as caching the user's authorization and authentication data and integrating with the Microsoft .NET Framework security features. 
  • Data Access. The Data Access Application Block simplifies many common data access tasks such as reading data for display, passing data through application layers, and submitting changed data back to the database system. Itincludes support for both stored procedures and in-line SQL, can expose the data as a sequence of objects for client-side querying, and provides access to the most frequently used features of ADO.NET in simple-to-use classes. 
  • Encryption. The Cryptography Application Block makes it easy to incorporate cryptographic functionality such as encrypting and decrypting data, creating a hash from data, and comparing hash values to verify that data has not been altered. Using thisblock can help you avoid common pitfalls when developing custom mechanisms that might introduce security vulnerabilities. 
  • Exception Handling. The Exception Handling Application Block lets you quickly and easily design and implement a consistent strategy for managing exceptions that occur in various architectural layers of your application. It can log exception information, hide sensitive information by replacing the original exception with another exception, and maintain contextual information for an exception by wrapping the original exception inside another exception. 
  • Logging. The Logging Application Block simplifies the implementation of common logging functions such as writing information to the Windows Event Log, an e-mail message, a database, Windows Message Queuing, a text file, a Windows Management Instrumentation (WMI) event, or a custom location. 
  • Validation. The Validation Application Block provides a range of features for implementing structured and easy-to-maintain validation mechanisms using attributes and rule sets, and integrating with most types of application interface technologies. 

Enterprise Libraries

Microsoft.Practices.EnterpriseLibrary.Common.dll 
Microsoft.Practices.Unity.dll 
Microsoft.Practices.Unity.Interception.dll 
Microsoft.Practices.ServiceLocation.dll

Injection des dépendances

For Dependency Injection Enterprise Library use Unity.

Par défaut Enterprise Library utilise le mécanisme d'injection de Unity qui est fournit comme bloc applicatif de EL. Cependant, il est possible de configurer EL afin d'utiliser un autre container d'injection des dépendances qui serait fournit par configuration et qui proposerait une implémentation de l'interface IServiceLocatorinterface.

http://commonservicelocator.codeplex.com
Pour plus d'informations, et pour une plongée dans l'enfer des Service Locator Adapter

MEF :
Microsoft.Practices.ServiceLocation.dll
public class MefServiceLocator : ServiceLocatorImplBase

Unity :
using Microsoft.Practices.ServiceLocation;
public class UnityServiceLocator : ServiceLocatorImplBase

ServiceLocator :
namespace Microsoft.Practices.ServiceLocation
{
    public abstract class ServiceLocatorImplBase : IServiceLocator, IServiceProvider
}

Intégration de Enterprise Library et de Prims ?

Et oui on sent bien qu'il va falloir faire "quelque chose" si on veut utiliser les deux "cadres d'application".

Comparaison de Unity et de MEF. Et là il faut surtout lire le premier commentaire de Jeremy Likness. Ce n'est pas gagné !

http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx
Service Locator is an Anti-Pattern

http://blogs.msdn.com/b/bobbrum/archive/2008/11/23/prism-and-custom-enterprise-library-trace-listeners.aspx
publié 24/11/2008 travailler avec Prism 1.0 and Enterprise Library 4.1

https://github.com/mefcontrib
MEF Contrib, mon dieu mais qu'est ce que c'est ?
 

Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.