Enterprise Library

Que reste t-il de l'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.

Download Enterprise Library :

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

un vieux truc requirements :

Microsoft Windows® 7 Professional, Enterprise or Ultimate

Microsoft .NET Framework 4.0.

Hands-On Labs for Microsoft Enterprise Library 5.0 :

http://www.microsoft.com/en-us/download/details.aspx?id=6932 (lien mort !)

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 (lien mort !)

EntLib50.chm

http://entlib.codeplex.com/wikipage?title=EntLib5 (lien mort !)

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 (lien mort !)

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".

http://akashkava.com/blog/391/mef-vs-unity-in-composite-application-prism/ (lien mort !)

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 (lien mort !)

publié 24/11/2008 travailler avec Prism 1.0 and Enterprise Library 4.1

https://github.com/mefcontrib

Toujours là dans le GiHub c'est normal, le codeplex lui a disparu mais pas de développement après 2011.

MEF Contrib, mon dieu mais qu'est ce que c'est ?

Conclusion

Il ne reste plus rien de l'Enterprise Library et ce sentiment est accentué par la disparition du CodePlex mais les fonctionnalités de l'EL ont bien dues être absorbées quelque part

Aucun commentaire:

Enregistrer un commentaire

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