Download - Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012
![Page 1: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/2.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/3.jpg)
AMADEUS
![Page 4: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/4.jpg)
Amadeus
![Page 5: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/5.jpg)
Amadeus
![Page 6: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/6.jpg)
Amadeus
![Page 7: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/7.jpg)
Amadeus
![Page 8: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/8.jpg)
Amadeus
![Page 9: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/9.jpg)
Amadeus Hotel Platform
![Page 10: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/10.jpg)
AMADEUS HOTEL CALL CENTERL’application
![Page 11: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/11.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/12.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/13.jpg)
PRISM / MVVM / UNITY Rappels
![Page 14: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/14.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/17.jpg)
Prism / MVVM / Unity
![Page 18: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/18.jpg)
demo
![Page 19: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/19.jpg)
DIAGRAMMES DE COUCHEArchitecture & Design
![Page 20: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/20.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/21.jpg)
demo
![Page 22: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/22.jpg)
GRAPHES D’APPELSArchitecture & Design
![Page 23: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/23.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/25.jpg)
demo
![Page 26: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/26.jpg)
DIAGRAMMES UMLArchitecture & Design
![Page 27: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/27.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/28.jpg)
demo
![Page 29: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/29.jpg)
DUPLICATION DE CODE (CODE CLONES)
Architecture & Design
![Page 30: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/30.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/31.jpg)
demo
![Page 32: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/32.jpg)
CONCLUSION
![Page 33: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/33.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/34.jpg)
![Page 35: Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012](https://reader033.vdocuments.net/reader033/viewer/2022060115/557be683d8b42a03748b5553/html5/thumbnails/35.jpg)
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