Top Banner
Amadeus Hotel Call Center Architecture modulaire et VS2012 Vincent Dieulesaint / Julien Dutto Software Development Engineers Amadeus Code / Développement @AmadeusHotel_IT http://www.amadeus.com/
35

Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Jun 13, 2015

Download

Technology

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus Hotel Call CenterArchitecture modulaire et

VS2012Vincent Dieulesaint / Julien DuttoSoftware Development Engineers

Amadeus

Code / Développement

@AmadeusHotel_IThttp://www.amadeus.com/

Page 2: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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

Page 3: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

AMADEUS

Page 4: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus

Page 5: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus

Page 6: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus

Page 7: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus

Page 8: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus

Page 9: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Amadeus Hotel Platform

Page 10: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

AMADEUS HOTEL CALL CENTERL’application

Page 11: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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

Page 12: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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

Page 13: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

PRISM / MVVM / UNITY Rappels

Page 14: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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

Page 15: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Zoom sur Unity

Dépendance de ServiceA et ServiceB sur ClasseA

Injection de dépendance

Page 16: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

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

Page 17: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Prism / MVVM / Unity

Page 18: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

demo

Page 19: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

DIAGRAMMES DE COUCHEArchitecture & Design

Page 20: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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

Page 21: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

demo

Page 22: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

GRAPHES D’APPELSArchitecture & Design

Page 23: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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

Page 24: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

Graphe d’appels

Application Host

Module commun - Communication

Module Réservation

Module Disponibilités

Module Profil

Module “Map”

Module “Content”

Module commun

Page 25: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

demo

Page 26: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

DIAGRAMMES UMLArchitecture & Design

Page 27: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

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

• Architecture Explorer

Diagrammes UML

Page 28: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

demo

Page 29: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

DUPLICATION DE CODE (CODE CLONES)

Architecture & Design

Page 30: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

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

Duplication de code

Page 31: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

demo

Page 32: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

CONCLUSION

Page 33: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

• 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)

Page 34: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012
Page 35: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012

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