Enterprise Library - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

Enterprise Library

Description:

Guidance for tasks such as deployment and operations. in a production environment ... Utiles Adressent des probl mes concrets. 4. Avanade en 60 secondes ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 47
Provided by: stev98
Category:

less

Transcript and Presenter's Notes

Title: Enterprise Library


1
Enterprise Library Extensions (ACA.NET 4.0)
Forum Architecte 10 février 2005
Vincent Derenty vincentd_at_avanade.com Damien
Nanquette damienn_at_avanade.com
2
Sommaire
  • Introduction
  • Patterns Practices, Avanade et les applications
    blocks
  • Enterprise Library
  • Demos
  • Extension à Enterprise Library (ACA.NET 4.0)
  • Demos

3
Patterns PracticesArchitecture Guidance for
the Enterprise
Éprouvées Basées sur lexpérience terrain,
validées et testées Prescriptives Offrent les
meilleurs conseils possibles Pratiques Décrivent
les étapes pour réussir Utiles Adressent des
problèmes concrets
Available online http//www.microsoft.com/practi
ces Books available http//www.amazon.com/pract
ices
Building Blocks IT Services
Enterprise Solution Patterns
Reference Architectures
Atomic solutions to recurring problems
Sub-system-level guidance for common services
System-level guidance for common customer
scenarios
D
A
D
I
D
A
D
I
A
A
D
D
I
I
Lifecycle Guidance Guidance for tasks such as
deployment and operations in a production
environment
4
Avanade en 60 secondes
  • Avanade continue sa croissance en Novembre
    2004, Avanade emploie 2,800 personnes sur 30
    sites.
  • Nous avons réalisé plus de 2,500 projets pour
    plus de 1,300 clients.
  • En 2002 et 2003 le suivi de satisfaction des
    clients indique un taux de satisfaction de 96
    (très satisfait ousatisfait)
  • Plus de 75 de nos consultants sont certifiés
    Microsoft de nombreux ont plusieurs
    certifications.
  • Avanade Americas
  • Seattle
  • San Francisco
  • Chicago
  • Dallas
  • New York
  • Toronto
  • St. Louis
  • San Antonio
  • Nashville
  • Kansas City
  • Cincinnati
  • Avanade Europe
  • Paris
  • London
  • Milan
  • Rome
  • Madrid
  • Barcelona
  • Malaga
  • Kronberg
  • Almere
  • Avanade Asia
  • Singapore
  • Kuala Lumpur
  • Bangkok
  • Avanade India
  • Mumbai
  • Bangalore
  • Hyderabad
  • Avanade Australia
  • Sydney
  • Melbourne
  • Brisbane
  • Canberra

5
Quel est exactement le problème ? (1/2)
  • La plateforme Microsoft .NET inclut de
    nombreuses fonctionnalités génériques
  • La plateforme est donc bien adaptée à une large
    variété darchitectures dapplications.
  • Pour autant, de nombreux utilisateurs de .NET ont
    des besoins demandant un niveau dabstraction
    plus élevé. La plateforme ne permet pas toujours
    de les créer sans un grand travail.
  • De plus, il nexiste pas de guides prescriptifs
    qui relient les fonctionnalités de la plateforme
    entre-elles.

6
Quel est exactement le problème ? (2/2)
  • Combien de fois les développeurs demandent ?
  • La plupart des applications ont besoin dun
    composant comme ceci
  • De nombreuses personnes ont du déjà écrire des
    composants de ce type
  • Jaimerais bien trouver une solution que je
    puisse réutiliser.

7
Que sont les PP Applications Blocks ?
  • Il en existe 11 aujourdhui.
  • Ils sont réutilisables, extensibles et
    modifiables.
  • Ce sont des fragments réutilisables
    darchitecture applicative
  • User Interface Process, OffLine, Service
    aggregation

8
Quest-ce que Avanade Connected Architectures
(ACA)?
  • ACA est un ensemble darchitectures qui améliore
    la performance, la qualité et lagilité des
    solutions mises en oeuvre par Avanade.
  • Solution Architecture (ACA.NET)
  • Collaboration (ACA Portal)
  • Integration (ACA BPI)
  • Batch (ACA Batch)
  • Development Architecture
  • Infrastructure and Operations Architecture (ACA
    Infrastructure for .NET)
  • Avanade Connected Methods (ACM)
  • ACA supporte totalement la plateforme Microsoft
    .NET.
  • Il est développé et maintenu par une équipe
    dédiée (RD) team.
  • Il utilise des fonctionnalités innovantes.
  • Certaines fonctionnalités intégrées proviennent
    des travaux des projets.
  • ACA est conforme avec les meilleures pratiques
    édictées par Microsoft.

9
Le feedback sur les applications blocks
  • Le feedback est très positif mais
  • il est possible daméliorer quelques points
  • que les blocks soient plus consistants,
  • quils soient mieux intégrés entre eux,
  • quils minimisent les dépendances
  • Entre eux,
  • Par rapport à linfrastructure.
  • que lon facilite
  • Lévaluation et la compréhension des blocks,
  • leur utilisation,
  • leur configuration.

10
Sommaire
  • Introduction
  • Patterns and Practices, applications blocks et
    ACA.NET
  • Enterprise Library
  • Demos
  • Extension à Enterprise Library (ACA.NET 4.0)
  • Demos

11
Quest-ce quEnterprise Library ?
  • Bibliothèque de composants logiciels qui
    permettent de répondre aux problèmes courants
    pour le développement dapplications dentreprise
    dune manière consistante, en suivant les
    meilleures pratiques.
  • Fait partie des bibliothèques de patterns
    practices
  • Objectif principal consistance, extensibilité,
    facilité dutilisation et intégration.
  • La V1 a été créée en partenariat avec Avanade, en
    profitant de lexpérience provenant des projets
    clients et en incorporant des concepts du
    framework ACA.NET.

12
Consistance
  • Tous les composants dEnterprise Library suivent
    les règles suivantes
  • Mêmes principes de design et dimplémentation,
  • Configuration,
  • Documentation,
  • Tests,
  • Outillages,
  • Exemples,
  • Les prérequis opérationnels,
  • Les procédures dinstallations.

13
Extensibilité
  • Extension des blocks existants
  • Permet dimplémenter des plugs-in.
  • Guidelines pour créer de nouveaux blocs.
  • Design patterns,
  • Outil de configuration extensible,
  • Modèles de documentation ,
  • Définition des tests nécessaires.

14
Facilité dutilisation
  • Réduit fortement le code nécessaire pour les
    besoins de développement en entreprise.
  • De nombreuses améliorations des Application
    Blocks existants
  • Outil de configuration,
  • Simplification de linstallation et du
    déploiement,
  • Documentation améliorée et exemples.

15
Intégration
  • Enterprise Library est packagée comme une
    bibliothèque intégrée.
  • Les blocks sont conçus pour fonctionner ensemble,
    mais peuvent être utilisés individuellement.
  • La configuration prend en compte les dépendances
    entre les blocs.
  • Certains blocks sont utilisés comme des
    fournisseurs de service pour dautres blocks.

16
Enterprise Library 1.0
  • La première version dEnterprise Library comprend
    les7 blocs suivants

17
Console de configuration
  • Permet de définir la configuration de
    lapplication avec un outil guidant la définition
    des stratégies des différents blocks.
  • Enterprise Library inclut une application
    indépendante ou intégrée dans Visual Studio .NET.

18
Scénario des démos
Caching Application Block
Cache
Event Log
Logging Instrumentation Application Block
LIAB Config Categories Sinks
Destinations
Flat File
Pricing Web service
Booking Web service
Data Access Application Block
DAAB Config Databases Pricing ? TechEd Bookings
? TechEd Connections TechEd SQL
Server serverlocalhost
Pricing Bookings
19
Application ArchitectureBlueprint des
applications et des services .NET
Users
Operational Management
Security
Communication
UI Components
UI Process Components
Service Interfaces
Business Workflows
Business Components
Business Entities
Data Access Logic Components
Service Agents
Data Sources
Services
20
Data Access Application Block (1/2)
  • ADO.NET est une API très optimisée qui permet
    dutiliser toutes les fonctionnalités des
    systèmes bases de données.
  • Le code daccès aux données ADO.NET est
    relativement lourd.
  • ADO.NET ne permet pas nativement décrire du code
    portable.
  • ADO.NET noffre pas de mécanisme simple pour le
    stockage des chaînes de connexions.

Data Access
21
Data Access Application Block (2/2)
  • Simplifie le modèle daccès aux données dADO.NET
    et offre une portabilité transparente vers
    différents types de bases de données.

ADO.NET
MS SQL Handler
SqlClient
Database Service Handler
Database Service Factory
Oracle Handler
OracleClient
IBM DB2 Handler
OleDb
Data Access Application Block
22
Exception Handling application block (1/2)
  • Le framework .NET propage les erreurs en
    utilisant systématiquement le mécanisme des
    exceptions.
  • Malheureusement, pour chaque type dexception, il
    faut dupliquer le code pour différencier les
    traitements.
  • LException handling framework permet de
    centraliser le traitement des exceptions dans le
    code.
  • En utilisant ce mécanisme, on peut aussi gérer
    les problèmes opérationnels pour sassurer que.
    chaque exception est journalisée.

Exception Handling
23
Exception Handling Application Block (2/2)
  • La configuration permet de définir les
    traitements à effectuer suivant le type
    dexception et la couche applicative.
  • Exemple toutes les exceptions de sécurité
    provenant de la couche métier ont besoin dêtre
    journalisées et les messages enrichis avant
    dêtre propagés à la couche appelante.
  • Les actions sont extensibles, les implémentations
    par défaut proposent de journaliser lexception
    ou de la remplacer par une autre
  • Ce block a très peu en commun avec lEMAB qui
    était précédemment utilisé. Il utilise le logging
    application block pour journaliser les
    exceptions.

24
Caching Application Block (1/2)
  • Le framework .NET offre des caches au niveau des
    couches présentations telles dhttp (HttpCache).
  • Or, nous avons besoin de cacher des données dans
    la couche métier de lapplication. Par exemple,
    des données de références constamment utilisées
    telles que les différentes pays, les différents
    types de produits, les taux de TVA etc, nont pas
    besoin dêtre obtenues du système de persistance.
  • Le caching application Framework permet
    dutiliser facilement des données en cache dans
    les couches métiers.

Caching
25
Caching Application Block (2/2)
Client
  • Le caching application block offre du caching
    pour les infrastructures .NET.
  • Le support pour DB2 et Oracle du caching en base
    de données,
  • Plusieurs instances de cache sont supportées par
    application
  • Toute la configuration est effectuée par la
    console dadministration.

Get/Set/Flush Cache Data
Cache Manager
Get/Set/Flush Cache Meta Data
Cache Service
Get/Set/Flush Cache Data
Cache Storage
Get/Set/Flush Cache Meta Data
database
in memory storage
26
Logging and Instrumentation Application Block
(1/2)
  • Windows et le Framework .NET offrent de nombreux
    mécanismes pour permettre à une application de
    publier des événements.
  • Un système de journalisation doit être
    configurable pour permette une différencier les
    destinataires des événements de différentes
    natures (Trace ,Erreur, Erreur fatale).
  • De plus, on doit être capable de désactiver ou
    dactiver les traces daudit.
  • Au niveau des performances, chaque appel à un
    système de journalisation a un coût important
    pour un système transactionnel.
  • Pour optimiser, le Logging Application block
    propose une architecture asynchrone.

Logging
27
Logging and Instrumentation Application Block
(2/2)
28
Configuration Application Block (1/2)
  • Le Framework .NET a en interne un excellent
    mécanisme permettant de configurer les
    applications et leurs composants par
    lintermédiaire de fichier XML.
  • Malheureusement, la gestion des fichiers XML est
    souvent fastidieuse, surtout quand on utilise des
    frameworks darchitectures intégrés nécessitants
    de nombreuses configurations !

Configuration
29
Configuration Application Block (2/2)
  • Permet aux applications de lire et décrire
    facilement des données de configuration dans
    différents emplacements configurables.
  • Ce block est utilisé par tous les blocks
    dEnterprise Library. Il peut être utilisé par
    des frameworks et des applications.
  • Il est composé de 2 parties
  • Configuration Runtime que les applications
    utilisent lors de lexécution.
  • Configuration Designtime qui permet de définir
    les noeuds de loutil de configuration.
  • La configuration peut être cryptée et certains
    éléments peuvent être masqués dans loutil.

30
Security Application Block (1/2)
  • Le Framework .NET offre de nombreuses
    possibilités pour la gestion de la sécurité
    authentification ASP.NET, habilitation par les
    rôles, définition des permissions etc.
  • Malheureusement, du code applicatif est souvent
    nécessaire pour utiliser ces différentes
    fonctionnalités.
  • Dautre part le framework .NET noffre pas
    dimplémentations pour la gestion des
    habilitations.

Security
31
Security Application Block (2/2)
  • Offre une API simplifiée et des plugs-ins pour
    les opérations de sécurité.
  • Couvre 5 aspects de la sécurité
    Authentification, Habilitations, Rôles, Profiles
    et Caching de la sécurité.
  • Chaque module supportent des extensions
    implémentées par des plugs-ins. EntLib fournit
    les implémentations pour les infrastructures
    Microsoft (Active Directory, AzMan) et des
    implémentations reposant sur une base de données.
  • Les développeurs peuvent construire leurs propres
    plugs-in pour sinterfacer avec les solutions de
    sécurité existantes.

32
Cryptography Application Block (2/2)
  • Le Framework .NET offre de nombreuses
    implémentations dalgorithme de cryptage et de
    hashage.
  • Il noffre pour autant pas nativement de solution
    pour stocker les clés nécessaires, ni la
    possibilité de configurer les algorithmes à
    utiliser.

Cryptography
33
Cryptography Application Block (2/2)
  • Offre une approche simplifiée pour implémenter
    les scénarios de cryptographie les plus communs.
  • Chaque module supporte des algorithmes pluggables
    et le moyen de stocker des clés.
  • Supporte tous les algorithmes de cryptographie de
    .NET (les développeurs peuvent implémenter les
    leurs).
  • Les algorithmes et les clés peuvent être gérés à
    travers loutil de configuration.

34
Sommaire
  • Introduction
  • Patterns and Practices, applications blocks et
    ACA.NET
  • Enterprise Library
  • Demos
  • Extension à Enterprise Library (ACA.NET 4.0)
  • Demos

35
ACA.NET
  • ACA.NET
  • Réduit le nombre de lignes de code applicatif
  • Parce que les applications contiennent moins de
    code, la maintenance est allégée.
  • Permet le développement dapplications orientées
    service.
  • Augmente la consistance du code, la qualité, les
    fonctionnalités et lagilité en utilisant
    lArchitecture Orientée Aspect.
  • LArchitecture Orientée Aspect et lArchitecture
    Orientée Service permettent de préserver le code
    métier des changements pouvant se produire sur
    les technologies de transport.
  • ACA.NET 4.0 offre des fonctionnalités clés pour
    le développement dapplication pour Avanade.
    ACA.NET 4.0 est construit sur Enterprise Library
    1.0.
  • Plus de 330 projets chez 180 clients utilisent
    ACA et plus de 25 clients utilisent SOA et AOA.

36
Les fonctionnalités dACA.NET
  • Les extensions et les fonctionnalités sont
    construites sur Enterprise Library
  • Service Oriented Architecture
  • Support de Visual Basic .NET et C.
  • Aspect Oriented Architecture
  • Support de Visual Basic .NET et C.
  • Sender Generation Framework
  • Mécanisme général daccès à un tiers données avec
    un modèle simple, consistant et puissant.
  • Support du WSDL permettant aux développeurs
    dassocier des aspects à des services non-ACA.NET
    décrits dans des documents WSDL.
  • Machine à États permettant de décrire les
    processus utilisateurs.
  • Extension des Blocks EntLib
  • Validation
  • WSE2 Security support

37
ACA.NET 4.0 Overview
38
Validation Service Fonctionnalités et avantages
  • Associe des règles de validation à des données
    membres de classe en utilisant des méta-données.
  • Par exemple NonNullable indique une valeur
    qui ne peut pas être nulle.
  • Plusieurs attributs peuvent être associés à la
    même donnée membre.
  • Les attributs de validation prennent des valeurs
    paramétrables
  • Par exemple une données peut être associée avec
    un tag tel que GreaterThan(25)
  • Les règles de validation peuvent être réutilisées
    par plusieurs projets
  • Le service de validation est extensible sans
    changer le service.
  • De nouvelles règles peuvent être ajoutées.

Validatable public class MyClass int
_myInteger string _myString GreaterThan(
5 ) public int MyInteger get return
_myInteger set _myInteger value
NonNullable MaximumLength(10) public
string MyString get return _myString
set _myString value
39
Architecture de Service ACA.NET
  • Larchitecture de service offre des
    fonctionnalités pour construire des applications
    métiers.
  • Rend abstrait les détails dinfrastructure pour
    les technologies de transport.
  • Les développeurs de service ne se concentre que
    sur les règles métiers. Linfrastructure
    dACA.NET génère le code nécessaire pour
    permettre à lapplication déchanger des
    messages.

Sender
Messages
Receiver
Types
Service
40
Architecture Orientée Aspect
  • Larchitecture orientée aspect permet
    dexternaliser des fonctionnalités pour quelles
    soient plus faciles à utiliser.
  • Les aspects ont des fonctionnalités qui peuvent
    être utilisées par tous types de services
    métiers.
  • Ils sont Orthogonaux au code applicatif.
  • Par exemple Tous les services sont uniques,
    mais ils ont tous besoin dhabilitations. On peut
    donc supposer que lhabilitation est un bon
    candidat être un aspect.
  • Dans ACA.NET 4.0, les aspects permettent de
    déclarer de nombreuses facettes des comportements
    des applications.
  • Réduit le volume du code applicatif.
  • Permet de modifier rapidement certaines
    fonctionnalités.

41
Metadata Driven Architecture
  • La Metadata Driven Architecture est similaire à
    la Model Driven Architecture.
  • La Metadata Driven Architecture peut réduire
    énormément le code applicatif, permettant aux
    développeurs de se concentrer sur les problèmes
    métiers.
  • AcaService
  • InProcessTransport
  • WebServiceTransport
  • public class MyService
  • AcaServiceMethod
  • AspectContainer("Container1")
  • public void Foo()

42
ACA.NET exemple dutilisation des aspects (1/2)
Enterprise Library
43
ACA.NET exemple dutilisation des aspects (2/2)
Enterprise Library et ACA.NET 4.0
44
ACA.NET 4.0
  • Demos

45
Liens utiles
  • Une documentation importante et la possibilité de
    télécharger Enterprise Library se trouvent sur le
    site msdn http//msdn.microsoft.com/library/def
    ault.asp?url/library/en-us/dnpag2/html/entlib.asp
  • Pour ACA et les solutions .NET Avanade de
    nombreuses informations se trouvent sous
    http//www.avanade.com/solutions/solution.aspx?id
    3

46
Questions ?
  • Vincent Derenty (vincentd_at_avanade.com)
Write a Comment
User Comments (0)
About PowerShow.com