IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Présentation d'EntLib pour .Net V2.0

Date de publication : 01/01/2007 , Date de mise à jour : 01/01/2007

PAS DE CODE ... J'ATTEND LES SOURCES EN VERSION TEXTE. JE DEMANDERAIS UNE CORRECTION DU SYNOPSIS ET DE LA CONCLU QUAND JE LES AURAIS :)

            

1. Introduction
1-1. Présentation
1-2. Avantages
1-3. Contenu d'Enterprise Library
2. Détails des blocs d'application
2-1. Présentation
2-2. Data Access Application Block
2-2-1. Champs d'actions & caractéristiques
2-2-2. Conception de l'Application Block
2-2-3. Exemple
2-3. Exception Handling Application Block
2-3-1. Champs d'action & caractéristiques
2-3-2. Conception de l'Application Block
2-3-3. Exemple
2-4. Caching Application Block
2-4-1. Champs d'action & caractéristiques
2-4-2. Conception de l'Application Block
2-4-3. Exemple
2-5. Logging Application Block
2-5-1. Champs d'action & caractéristiques
2-5-2. Conception de l'Application Block
2-5-3. Exemple
2-6. Security Application Block
2-6-1. Champs d'action & caractéristiques
2-6-2. Conception de l'Application Block
2-6-3. Exemple
2-7. Cryptography Application Block
2-7-1. Champs d'action & caractéristiques
2-7-2. Conception de l'Application Block
2-7-3. Exemple
3. Configuration Tool
4. Conclusion
4-1. Liens
4-2. Remerciements


1. Introduction


1-1. Présentation

Enterprise Library (" EntLib ") est un framework contenant plusieurs blocs d'application (" application blocks "). Les blocs d'application permettent de résoudre les problèmes courants auxquels on est confronté lorsqu'on développe un projet. Ils encapsulent les méthodes de développement recommandées par Microsoft (" best practices "). Enterprise Library contient 6 blocs d'application :

  • Caching
  • Cryptography
  • Data Access
  • Exception Handling
  • Logging
  • Security
Enterprise Library inclut également un ensemble de fonctions fondamentales, notamment des services de configuration, d'instrumentation et de création d'objets. Ces fonctions sont utilisées par tous les autres blocs d'application.


1-2. Avantages

Il y a plusieurs avantages à utiliser le framework Enterprise Library :
  • Uniformité. Tous les blocs d'application utilisent les design pattern.
  • Extensibilité. Les blocs d'application permettent d'être personnalisés en offrant la possibilité d'ajouter du code dans les classes fournies.
  • Facile d'utilisation. Enterprise Library contient un outil graphique de configuration, une installation simple, une documentation utilisateur et des exemples d'applications.
  • Integration. Les blocs d'application d'Enterprise Library sont conçus pour communiquer ensemble.
  • Gratuit. Enterprise Library est redistribué gratuitement.

1-3. Contenu d'Enterprise Library

Enterprise Library contient les éléments suivants :
  • Code source. L'installation d'Enterprise Library place le code source des blocs d'application, de la console de configuration et des QuickStarts dans le répertoire d'installation.
  • Tests d'unité. Enterprise Library inclut les tests d'unité créés lors du développement des blocs d'application.
  • QuickStarts. Les QuickStarts Enterprise Library sont de brèves illustrations faciles à comprendre des principales fonctionnalités des blocs d'application. Chaque bloc d'application inclut un ou plusieurs QuickStarts.
  • Documentation. Enterprise Library inclut une documentation pouvant être consultée dans le système d'aide de Visual Studio. La documentation inclut des instructions sur l'utilisation d'Enterprise Library, ainsi qu'une référence de bibliothèque de classes.

2. Détails des blocs d'application


2-1. Présentation

Pour construire une application, nous allons nous baser sur la figure 1 :

Cette vue architecturale spécifie les différents composants de l'application. On reconnaît 3 macros couches : présentation, métier et accès aux données. Voici le détails de la composition de ces couches. Les exemples cités reprennent le cas d'un commerce en ligne.

Figure 1 : Architecture d'une application
Figure 1 : Architecture d'une application
  1. UI Components. C'est la couche visuelle de l'interface. Elle permet d'afficher les informations à l'utilisateur. Ce sont par exemple les pages ASP.NET, les WinForms...
  2. UI Process Components. Dans la plupart des cas, l'interaction de l'utilisateur avec le système suit un processus connu. Par exemple, l'utilisateur va choisir une catégorie de produits avant de sélectionner un produit particulier dans cette liste.
  3. Business Workflows. Une fois que les informations nécessaires sont collectées, elles peuvent être utilisées dans un processus relatif au métier. Par exemple, le système de commerce devra calculer le total des achats, valider la carte de crédit, procéder au paiement, retirer les articles commandés du magasin et procéder à la livraison des produits. Ces opérations doivent se faire dans le bon ordre et peuvent prendre du temps.
  4. Business Components. Ce composant implémente les règles métier. Par exemple, elle contiendra une fonction qui fait le total des prix des articles achetés, puis y applique une taxe spécifique (pays, type de produit...).
  5. Service Agents. Ce composant permet d'ouvrir l'application. Il permet en effet d'utiliser des fonctionnalités externes au système, et éventuellement de fournir une interface de format de données compatible avec le service extérieur. Il garantit l'isolation des processus en cas d'appels simultanés à différents services. Par exemple, le système pourra établir une connexion avec un établissement bancaire afin de valider le numéro de la carte de crédit, et prévenir la société de transport que les articles doivent être livrés.
  6. Service Interfaces. Ce composant ouvre la logique métier du système en exposant les services disponibles. C'est grâce à cette interface qu'on va pouvoir "attaquer" le coeur de l'application. Cette interface définit les modèles de communication en tenant compte de la sécurité, des exceptions, des formats de données...
  7. Data Access Logic Components. La plupart des applications accèdent aux données. Par exemple, l'application de commerce en ligne doit pouvoir retrouver le détail d'un produit que le client veut consulter.
  8. Business Entity Component. Les composants de l'application doivent pouvoir s'échanger des données. Cet échange peut se faire à différents formats. Cela peut être des données sérialisés (DataSets, DataReaders, XML...) ou directement des classes.
  9. Components for Security, Operational Management, and Communication. Ces composants servent à la gestion d'exceptions, aux autorisations et à la communication avec les autres services et applications.

2-2. Data Access Application Block


2-2-1. Champs d'actions & caractéristiques

Figure 2 : Localisation du Data Access Application Block
Figure 2 : Localisation du Data Access Application Block
Le Data Access Application block se situe entre la brique Data Access Logic Components et la(es) source(s) de donnée(s). En utilisant les améliorations de .Net V2, il permet d'utiliser n'importe quelle base de données grâce à un modèle qui encapsule les objets ADO.NET spécifiques aux bases de données.


2-2-2. Conception de l'Application Block

Voici le schéma de conception de l'application block, avec les classes principalement utilisées dans son domaine d'application.

Figure 3 : Conception du Data Access Application Block
Figure 3 : Conception du Data Access Application Block

2-2-3. Exemple

Cet exemple utilise le Data Access Application block pour récupérer un DataSet dans une base de données SQL Server.

DatabaseFactory est une classe de l'application block qui contient une méthode CreateDatabase permettant de se connecter à la base de données. Cette méthode renvoie une classe Database, elle aussi issue du Data Access Application block. On prépare ensuite un objet DbCommand (framework DotNet) qui va permettre d'exécuter une procédure stockée. L'instance de l'objet Database contient une méthode afin d'ajouter des paramètres à la procédure stockée. On exécute ensuite la méthode ExecuteDataSet qui retourne un DataSet.

Exemple

2-3. Exception Handling Application Block


2-3-1. Champs d'action & caractéristiques

Figure 4 : Localisation du Exception Handling Application Block
Figure 4 : Localisation du Exception Handling Application Block
Cet application block permet de centraliser la gestion et le traitement des exceptions.

Il permet également d'élaborer un système de journalisation des exceptions. Cependant, il laisse la possibilité de créer ses propres exceptions.


2-3-2. Conception de l'Application Block

Voici le schéma de conception de l'application block, avec les classes principalement utilisées dans son domaine d'application.

Figure 5 : Conception du Exception Handling Application Block
Figure 5 : Conception du Exception Handling Application Block

2-3-3. Exemple

Cet exemple utilise la méthode statique HandleException de la classe ExceptionPolicy de l'application block.

Cet autre exemple utilise la méthode LogConfigurationErrorde de la classe DefaultExceptionHandlingEventLogger appartenant à l'application block afin de journaliser les évènements d'exceptions.


2-4. Caching Application Block


2-4-1. Champs d'action & caractéristiques

Figure 6 : Localisation du Caching Application Block
Figure 6 : Localisation du Caching Application Block
Avec le DotNet framework, il est possible de mettre en cache les données au niveau des couches de présentation.

Le Caching application block permet de stocker des données dans la couche métier de l'application. Il évite ainsi au système de persistance d'aller chercher les données lorsqu'on en a besoin.

Les données stockées dans la couche métier sont souvent des données de référence fréquemment utilisées. On peut citer par exemple les différents types de produits proposés, les taux de TVa...


2-4-2. Conception de l'Application Block

Voici le schéma de conception de l'application block, avec les classes principalement utilisées dans son domaine d'application.

Figure 7 : Localisation du Caching Application Block
Figure 7 : Localisation du Caching Application Block

2-4-3. Exemple

Cet exemple illustre comment la classe CacheManager de l'application block stocke les données nécessaires.

La récupération de données est effectuée simplement en utilisant la méthode GetData de l'objet CacheManager.


2-5. Logging Application Block


2-5-1. Champs d'action & caractéristiques

Figure 8 : Localisation du Logging Application Block
Figure 8 : Localisation du Logging Application Block
Cet application block permet de journaliser les évènements.

Il est configurable et permet de différencier les types de messages (informatifs ou d'erreurs), ainsi que leurs provenances (exceptions, actions de l'utilisateur, évènements concernant les données...).

Afin d'optimiser les performances de l'application, il permet d'être utilisé en asynchrone.


2-5-2. Conception de l'Application Block

Voici le schéma de conception de l'application block, avec les classes principalement utilisées dans son domaine d'application.

Figure 9 : Conception du Logging Application Block
Figure 9 : Conception du Logging Application Block

2-5-3. Exemple

Cet exemple permet d'écrire dans la classe statique Logger de l'application block le LogEntry (lui aussi de l'application block).


2-6. Security Application Block


2-6-1. Champs d'action & caractéristiques

Figure 10 : Localisation du Security Application Block
Figure 10 : Localisation du Security Application Block
Le Security Application Block reprend tous les aspects sécurités liés à l'application.

Il permet de couvrir 5 aspects de la sécurité :
  • Authentification
  • Habilitations
  • Rôles
  • Profils
  • Caching

2-6-2. Conception de l'Application Block

Voici le schéma de conception de l'application block, avec les classes principalement utilisées dans son domaine d'application.

Figure 11 : Conception du Security Application Block
Figure 11 : Conception du Security Application Block

2-6-3. Exemple

Dans cet exemple, nous allons illustrer la gestion des rôles. Cette gestion n'intègre pas l'application block car le framework V2 a rajouté des classes permettant d'effectuer ce travail. Cependant, cet application block n'est pas obsolète car outre la gestion des rôles, il permet de prendre en compte la gestion dès l'authentification, des habilitations, des profils et du caching. Cette ligne ajoute un utilisateur à la base des utilisateurs grâce à la classe Membership qui fait partie du framework DotNet V2.

On ajoute ensuite un rôle à la base des rôles en vérifiant qu'il n'est pas déjà présent en utilisant la classe Roles du DotNet framework V2, puis on autorise l'utilisateur à bénéficier de ce rôle.


2-7. Cryptography Application Block


2-7-1. Champs d'action & caractéristiques

Figure 12 : Localisation du Cryptography Application Block
Figure 12 : Localisation du Cryptography Application Block
Le framework DotNet V2 permet de créer et d'utiliser des algorithmes de cryptage et de hachage. Cependant, il n'offre pas de système de persistance des clés découlant de ces algorithmes.

Il n'y a pas non plus de moyen facile pour ajouter facilement ses propres algorithmes de cryptographie.

Cet application block offre ces deux possibilités. De plus, il offre une approche cryptographique simplifiée par rapport au framework DotNet V2.


2-7-2. Conception de l'Application Block

Voici le schéma de conception de l'application block, avec les classes principalement utilisées dans son domaine d'application.

Figure 13 : Conception du Cryptography Application Block
Figure 13 : Conception du Cryptography Application Block

2-7-3. Exemple

Cet exemple montre l'utilisation de la classe Cryptographer de l'application block afin d'encrypter une chaîne de caractère. On utilise la méthode EncryptSymmetric de cette classe afin de réaliser l'opération. Il faut spécifier une clé correspondant à un algorithme de codage décrit dans le fichier de configuration. On peut ainsi utiliser différents types d'encryption. Il suffit simplement que la clé soit décrite dans le fichier de configuration.


3. Configuration Tool

Configuration Tool est l'outil de l'Enterprise Library permettant de configurer graphiquement les applications blocks. Cet outil est un petit programme Windows permettant de générer des fichiers de configurations. Ces fichiers (Web.config ou App.config) viendront remplacer les fichiers de l'application.

On distingue 3 zones : le nœud principal de l'outil dans la partie gauche, le détail du nœud en cours dans la partie à droite et les éventuelles erreurs en bas de la fenêtre.

En effectuant un clic droit sur le nœud principal, on peut ajouter une nouvelle application.

Une application correspond à un fichier de configuration. On peut donc dans ce même outil gérer plusieurs projets différents.

Une fois la nouvelle application créée, on peut ajouter les applications blocks. Il est possible d'ajouter un ou plusieurs application block.

L'outil se chargera d'agencer les blocs d'informations dans le fichier de configuration.

Il est possible de configurer les applications blocs : par exemple, dans le cadre d'une connexion à une base de données (Data Access Application Block), il est possible de définir une ou plusieurs chaîne de connexion. Chaque application block est configurable selon les critères qui le concernent.


4. Conclusion

MANQUE LA CONCLUSION


4-1. Liens



4-2. Remerciements

Merci à Emilie Guittier d'avoir relu et corrigé ce tutoriel ainsi qu'aux membres de l'équipe .Net pour leurs différentes remarques.



            

Valid XHTML 1.1!Valid CSS!

Copyright © 2007 . Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.