concevoir et valider l'architecture d'une application wpf modulaire avec visual studio...
Post on 13-Jun-2015
989 Views
Preview:
DESCRIPTION
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