Amadeus Hotel Call CenterArchitecture modulaire et VS2012Vincent Dieulesaint / Julien DuttoSoftware Development EngineersA...
• Amadeus• L’application Amadeus Hotel Call Center• Rappels géneraux sur Prism / MVVM / Unity• Amadeus Hotel Call Center A...
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 deréservation de chambres dhôtel par télépho...
• Enjeux / besoins techniques : Application évolutive / adaptable– Architecture complexe et modulaire– Développement commu...
PRISM / MVVM / UNITYRappels
• Prism– Framework pour l’application du pattern MVVM– Possibilité de découpage d’application en modules• MVVM– Séparation...
Zoom sur UnityDépendance de ServiceA etServiceB sur ClasseAInjection de dépendance
Zoom sur UnityContainer.RegisterType<InterfaceA, ServiceA>();Container.RegisterType<InterfaceB, ServiceB>();Container.Regi...
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 Ac...
demo
GRAPHES D’APPELSArchitecture & Design
• Architecture Modulaire– Basée sur Prism v4– Séparation fonctionnelle– Indépendance maximaleentre les modulesGraphe d’app...
Graphe d’appelsApplication HostModule commun -CommunicationModule RéservationModule DisponibilitésModule ProfilModule “Map...
demo
DIAGRAMMES UMLArchitecture & Design
• Diagrammes de classe – Diagrammes deséquence– Reverse engineering– Refactoring• Architecture ExplorerDiagrammes 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é...
Formez-vous en ligneRetrouvez nos évènementsFaites-vous accompagnergratuitementEssayer gratuitement nossolutions ITRetrouv...
Concevoir et valider l'architecture d'une application WPF modulaire avec Visual Studio 2012
Prochain SlideShare
Chargement dans…5
×

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

2 027 vues

Publié le

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.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

  1. 1. Amadeus Hotel Call CenterArchitecture modulaire et VS2012Vincent Dieulesaint / Julien DuttoSoftware Development EngineersAmadeusCode / Développement@AmadeusHotel_IThttp://www.amadeus.com/
  2. 2. • 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 CodeAgenda
  3. 3. AMADEUS
  4. 4. Amadeus
  5. 5. Amadeus
  6. 6. Amadeus
  7. 7. Amadeus
  8. 8. Amadeus
  9. 9. Amadeus Hotel Platform
  10. 10. AMADEUS HOTEL CALL CENTERL’application
  11. 11. • Application destinée à des agents de centre d’appel : optimisation de prise deréservation de chambres dhôtel par téléphone• Equipe de 10 personnes responsables des spécifications, du développement etdes déploiements• Bangalore (Inde) – Sophia-AntipolisAmadeus Hotel Call CenterHTTPSUSERINTERFACESWPFINTERFACEUI/CORECOREINTERFACECORE/COMCOMXAML / VOM VOM óBOM BOM ó XMLMessagesAMADEUSSERVICESPrismWCF
  12. 12. • 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
  13. 13. PRISM / MVVM / UNITYRappels
  14. 14. • 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, extensiblePrism / MVVM / Unity
  15. 15. Zoom sur UnityDépendance de ServiceA etServiceB sur ClasseAInjection de dépendance
  16. 16. Zoom sur UnityContainer.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
  17. 17. Prism / MVVM / Unity
  18. 18. demo
  19. 19. DIAGRAMMES DE COUCHEArchitecture & Design
  20. 20. • 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 viaclasses « Translators »Diagrammes de coucheUIVOMCoreDALBOMMessages ServicesActionsViewsCommandsTranslatorTranslatorCallsCallsUsesUsesUsesUsesData Layers Code Layers
  21. 21. demo
  22. 22. GRAPHES D’APPELSArchitecture & Design
  23. 23. • Architecture Modulaire– Basée sur Prism v4– Séparation fonctionnelle– Indépendance maximaleentre les modulesGraphe d’appelsApplication HostAdaptationServiceAdaptersIAdapterServiceActionCatalogActionsIActionCatalogCommandCatalogCommandsICommandCatalogViewsCoordinatorViewsIViewsCoordinatorRegionsModule Module Module Module
  24. 24. Graphe d’appelsApplication HostModule commun -CommunicationModule RéservationModule DisponibilitésModule ProfilModule “Map”Module “Content”Module commun
  25. 25. demo
  26. 26. DIAGRAMMES UMLArchitecture & Design
  27. 27. • Diagrammes de classe – Diagrammes deséquence– Reverse engineering– Refactoring• Architecture ExplorerDiagrammes UML
  28. 28. demo
  29. 29. DUPLICATION DE CODE (CODE CLONES)Architecture & Design
  30. 30. • Plus de 400 000 lignes de code• 10 modules fonctionnels•  Redondance/duplication de code !Duplication de code
  31. 31. demo
  32. 32. CONCLUSION
  33. 33. • 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 clonesConclusion• 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 (Builddefinitions)
  34. 34. Formez-vous en ligneRetrouvez nos évènementsFaites-vous accompagnergratuitementEssayer gratuitement nossolutions ITRetrouver nos expertsMicrosoftPros de l’ITDéveloppeurswww.microsoftvirtualacademy.comhttp://aka.ms/generation-apphttp://aka.ms/evenements-developpeurshttp://aka.ms/itcamps-franceLes accélérateursWindows Azure, Windows Phone,Windows 8http://aka.ms/telechargementsLa Dev’Team sur MSDNhttp://aka.ms/devteamL’IT Team sur TechNethttp://aka.ms/itteam

×