concevoir et valider l'architecture d'une application wpf modulaire avec visual studio...

Post on 13-Jun-2015

989 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Afin de concevoir une application durable, évolutive et facilement maintenable, l'utilisation de bonnes pratiques en matière d'architecture et de design est essentielle. Cette session basée sur le retour d'expérience d'Amadeus illustrera les choix architecturaux qui répondent aux enjeux des logiciels d'aujourd'hui: flexibilité, modularité, maintenabilité, limitation de la dette technique, etc. Nous exposerons en détail les apports d'une architecture modulaire basée sur Prism (Unity) couplée au pattern MVVM (Model View - ViewModel). Nous y aborderons l'utilisation de Visual Studio 2012 pour la conception, le design et la validation de l'architecture de l'application "Amadeus Hotel CallCenter" autour de démonstrations présentées en direct.

TRANSCRIPT

Amadeus Hotel Call CenterArchitecture modulaire et

VS2012Vincent Dieulesaint / Julien DuttoSoftware Development Engineers

Amadeus

Code / Développement

@AmadeusHotel_IThttp://www.amadeus.com/

• Amadeus• L’application Amadeus Hotel Call Center• Rappels géneraux sur Prism / MVVM / Unity• Amadeus Hotel Call Center Architecture & Design

– Diagramme de couche– Graphe d’appels– Diagrammes UML– Duplication de Code

Agenda

AMADEUS

Amadeus

Amadeus

Amadeus

Amadeus

Amadeus

Amadeus Hotel Platform

AMADEUS HOTEL CALL CENTERL’application

• Application destinée à des agents de centre d’appel : optimisation de prise de réservation de chambres d'hôtel par téléphone

• Equipe de 10 personnes responsables des spécifications, du développement et des déploiements

• Bangalore (Inde) – Sophia-Antipolis

Amadeus Hotel Call Center

HTTPS

USER INTERFACES

WPF

INTERFACE UI/CORE CORE INTERFACE

CORE/COM COM

XAML / VOM VOM ó BOM BOM ó XML Messages

AMADEUS SERVICES

Prism

WCF

• Enjeux / besoins techniques : Application évolutive / adaptable– Architecture complexe et modulaire– Développement communautaire– Haute performance– Haute qualité de code

• Enjeux / facteurs humains : Intégration de ressources– Equipe à taille humaine– Formation– Compréhension du code– Contrôle de qualité

Amadeus Hotel Call Center

PRISM / MVVM / UNITY Rappels

• Prism– Framework pour l’application du pattern MVVM– Possibilité de découpage d’application en modules

• MVVM– Séparation couche UI / logique– Principes de binding– Facilité de test

• Unity– Conteneur d’injection de dépendances– Léger, extensible

Prism / MVVM / Unity

Zoom sur Unity

Dépendance de ServiceA et ServiceB sur ClasseA

Injection de dépendance

Zoom sur Unity

Container.RegisterType<InterfaceA, ServiceA>();Container.RegisterType<InterfaceB, ServiceB>();Container.RegisterType<InterfaceC, ServiceC>();Container.RegisterType<InterfaceD, ServiceD>();

– Phase de configuration

– Phase d’utilisationISomeInterface m_SomeObject = Container.Resolve<ISomeInterface>();

[Dependency]         public  ISomeInterface SomeService         {             

protected get;             set;        

}

Ou

Prism / MVVM / Unity

demo

DIAGRAMMES DE COUCHEArchitecture & Design

• Modèle théorique de l’application– 3 Couches distinctes

• UI (Vues – Commandes)• Core (Business logic – Actions)• Data Access Layer (Services –

Messages)

– Communication Inter-couches via classes « Translators »

Diagrammes de couche

U

I VOM

Core

DAL

BOM

Messages Services

Actions

Views

Commands

Tran

slat

orTr

ansl

ator

Calls

Calls

Uses

Uses

Uses

Uses

Data Layers Code Layers

demo

GRAPHES D’APPELSArchitecture & Design

• Architecture Modulaire– Basée sur Prism v4– Séparation fonctionnelle– Indépendance maximale

entre les modules

Graphe d’appels

Application Host

Adaptation Service

Adapters

IAdapterService

Action Catalog

Actions

IActionCatalog

Command Catalog

Commands

ICommandCatalog

Views Coordinator

Views

IViewsCoordinator

Regions

Module Module Module Module

Graphe d’appels

Application Host

Module commun - Communication

Module Réservation

Module Disponibilités

Module Profil

Module “Map”

Module “Content”

Module commun

demo

DIAGRAMMES UMLArchitecture & Design

• Diagrammes de classe – Diagrammes de séquence– Reverse engineering– Refactoring

• Architecture Explorer

Diagrammes UML

demo

DUPLICATION DE CODE (CODE CLONES)

Architecture & Design

• Plus de 400 000 lignes de code• 10 modules fonctionnels• Redondance/duplication de code !

Duplication de code

demo

CONCLUSION

• Application évolutive– .Net !– Prism: Modularité, Extensibilité– MVVM: Découplage vues /

modèles

• Dette technique limitée– VS2012 Ultimate: Un outillage

complet• Documentation & Références• Refactoring & code clones

Conclusion

• Application sûre– VS2012 Ultimate: Un outillage

complet• Refactoring & code clones• Validation de l’architecture

– TFS2012: Contrôle permanent• Code reviews (Work items)• Validation de l’architecture

(Build definitions)

Formez-vous en ligne

Retrouvez nos évènements

Faites-vous accompagner gratuitement

Essayer gratuitement nos solutions IT

Retrouver nos experts Microsoft

Pros de l’ITDéveloppeurs

www.microsoftvirtualacademy.com

http://aka.ms/generation-app

http://aka.ms/evenements-developpeurs

http://aka.ms/itcamps-france

Les accélérateursWindows Azure, Windows Phone,

Windows 8

http://aka.ms/telechargements

La Dev’Team sur MSDNhttp://aka.ms/devteam

L’IT Team sur TechNethttp://aka.ms/itteam

top related