Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parThibault Larochelle Modifié depuis plus de 9 années
1
Smart Client Software Factory DotNetHub 04/09/2010 Vincent Goossens vincent.goossens@synthetis.com 8/09/20101Smart Client Software Factory
2
Plan de la session 1/2 1.Problématique des développements en équipe o règles de développement o architecture commune o coopération entre les modules o spécification des fonctionnalités o tests avant implémentation 2.Smart Client Software Factory (SCSF) o Solution pour le développement en équipe o Isolation des modules/fonctionnalités par l’usage systématique des interfaces o Réutilisation des modules o CAB (composite application block) o Guidance automation o Intégration dans Visual Studio 2008 8/09/20102Smart Client Software Factory
3
Plan de la session 2/2 3.Patterns utilisés dans SCSF o Command o Dependency Injection / Inversion Of Control (IoC) o Model View Presenter (MVP) 4.Architecture de SCSF o Module o WorkItem o Profile catalog o Shell o UI extension sites o State /Command / Event / Action 5.Références 6.Démonstration par un exemple pratique 8/09/20103Smart Client Software Factory
4
1. Problématique des développements en équipe Règles de développement Implémenter et structurer le code de manière uniforme Architecture commune Les modules/fonctionnalités développées doivent s’intégrer dans une architecture commune Coopération entre les modules Les modules doivent coopérer, s’échanger des données et peuvent dépendre l’un de l’autre Spécification des fonctionnalités Définir précisément les fonctions d’un module Tests avant implémentation Tester un module alors que les autres dont il dépend ne sont pas encore disponibles 8/09/20104Smart Client Software Factory
5
2. Smart Client Software Factory 1/2 Solution pour le développement en équipe Structure du code, implémentation des interfaces utilisateur, implémentations des services et architecture sont « imposés » Isolation des modules/fonctionnalités par l’usage systématique des interfaces Chaque module fournit les interfaces qui sont les contrats remplis par les services qu’il contient Réutilisation des modules Comme l’architecture est fixée, un module peut être très facilement réutilisé dans d’autres applications. 8/09/20105Smart Client Software Factory
6
2. Smart Client Software Factory 2/2 CAB (Composite Application Block) Block applicatif développé par Microsoft (Microsoft's patterns & practices) destiné à la création d’applications riches avec des interfaces utilisateur faiblement couplés (pattern Model-View-Presenter) Guidance automation Automatise et systématise la production de code (modules, services, vues, évènements, …) Intégration dans Visual Studio 2008 Guidance automation étend les capacités de Visual Studio à produire du code « CAB » qui s’intègre dans l’architecture Projet/Solution de Visual Studio 8/09/20106Smart Client Software Factory
7
3. Patterns utilisés dans SCSF Command pattern Encapsule une requête dans un objet. Les menus invoquent l’exécutions de commandes sans se soucier des actions à effectuer Dependency injection pattern (IoC) Le consommateur d’un service exprime son besoin mais ne sait/veut pas créer l’instance du service. Un moteur d’injection se charge de faire le lien entre fournisseur de service et consommateur(s) Model-View-Presenter La vue (View) est indépendante du modèle de données (Model). Le Presenter présente les données à la vue sous une forme qui convient à celle-ci mais sans connaissance de la manière dont elle va afficher ces données. 8/09/20107Smart Client Software Factory
8
4. Architecture SCSF 1/5 Module Entité qui implémente une fonctionnalité et qui est chargée par le noyau SCSF au moment du démarrage. En général, 1 module = 2 assemblies (implémentation et interface) Workitem Conteneur des classes qui participent à l’injection de dépendance Organisation hiérachique Profile catalog Fichier XML qui organise le chargement des modules 8/09/20108Smart Client Software Factory
9
4. Architecture SCSF 2/5 Shell Application de base (shell.exe) qui définit le layout de l’application (barre de menu, barre d’outils, zones de vues) UI Extension Sites Points d’extension de l’interface utilisateur qui permettent l’ajout de menus, boutons d’outils, etc… State Etat d’un workitem qui peut être partagé entre les vues et les workitems descendants (! Pas typé) [StateChanged("MyProperty", ThreadOption.Background)] public void MyProperty_StateChanged(object sender, StateChangedEventArgs args) { // handle state change } [State("MyProperty")] public string MyChildProperty {get;set;} 8/09/20109Smart Client Software Factory
10
4. Architecture SCSF 3/5 Command Utilisé pour déclencher des évènements sur base d’actions sur les UI Extension Sites (p.ex. menu click) ToolStripMenuItem toolStripTools = new ToolStripMenuItem(“Outils"); MainMenuSite.Add(toolStripTools); this.WorkItem.Commands[CommandNames.ViewTools].AddInvoker(toolStripTools,"Click"); [CommandHandler(CommandNames.ViewTools)] public void ViewTools(object sender, EventArgs e) { } Plusieurs « command handlers » peuvent être invoqués 8/09/201010Smart Client Software Factory
11
4. Architecture SCSF 4/5 Event Evènement paramétré intra et inter-module //Publisher [EventPublication(EventTopicNames.EventName,PublicationScope.Global)] public event EventHandler MyEvent; //Subscriber [EventSubscription(EventTopicNames.EventName, ThreadOption.Publisher)] public void OnEvent(object sender, MyEventArgs eventArgs) { … } 8/09/201011Smart Client Software Factory
12
4. Architecture SCSF 5/5 Action Evènement conditionnel. Un module déclenche une action. Tous les modules ont la possibilité de refuser l’action. //Action trigger IActionCatalogService actionCatalog = RootWorkItem.Services.Get (); actionCatalog.Execute(ActionNames.MyAction, RootWorkItem, this, new ActionArgs()); //Action execution [Action(ActionNames. MyAction)] public void DoMyAction(object caller, object target) { } //Action condition IActionCatalogService catalog = WorkItem.Services.Get (); catalog.RegisterGeneralCondition(…(IActionCondition)this); catalog.RegisterSpecificCondition(ActionNames.MyAction, …(IActionCondition)this); ! SCSF ne crée pas la fonctionnalité d’Action par défaut. Ajouter le code suivant dans ShellApplication.cs: protected override void AddBuilderStrategies(Microsoft.Practices.ObjectBuilder.Builder builder) { base.AddBuilderStrategies(builder); builder.Strategies.AddNew (Microsoft.Practices.ObjectBuilder. BuilderStage.Initialization); } 8/09/201012Smart Client Software Factory
13
5. Références Programming Microsoft Composite UI Application Block and Smart Client Software Factory, David Platt, Microsoft Press, 2007. http://www.microsoft.com/MSPress/books/11030.aspx http://www.microsoft.com/MSPress/books/11030.aspx Architecting Composite Smart Clients Using CAB and SCSF http://msdn2.microsoft.com/en-us/library/bb266334.a http://msdn2.microsoft.com/en-us/library/bb266334.a Microsoft patterns & practices - Smart Client Guidance http://smartclient.codeplex.com/ http://smartclient.codeplex.com/ Introduction to CAB/SCSF http://richnewman.wordpress.com/intro-to-cab-toc/ http://richnewman.wordpress.com/intro-to-cab-toc/ Prism (SCSF for WPF, VS2010) http://www.pnpguidance.net/Post/PrismWebcastsScreencastsCreat eApplicationUsingPrism.aspx http://www.pnpguidance.net/Post/PrismWebcastsScreencastsCreat eApplicationUsingPrism.aspx 8/09/2010Smart Client Software Factory13
14
6. Demo Composants à installer (pour VS2008 SP1) – GuidanceAutomationExtensions.msi (http://www.microsoft.com/downloads/details.aspx?F amilyId=C0A394C0-5EEB-47C4-9F7B- 71E51866A7ED&displaylang=en)http://www.microsoft.com/downloads/details.aspx?F amilyId=C0A394C0-5EEB-47C4-9F7B- 71E51866A7ED&displaylang=en – gaxp1409.exe (http://www.microsoft.com/downloads/details.aspx?F amilyID=E28205C6-BB07-401B-9A76- 804784598BF0&displaylang=en&displaylang=en)http://www.microsoft.com/downloads/details.aspx?F amilyID=E28205C6-BB07-401B-9A76- 804784598BF0&displaylang=en&displaylang=en – Smart Client Software Factory - April 2008 fixed for SP1.msi http://artazor.wordpress.com/2008/12/07/scsf-april- 2008-fix-for-visual-studio-2008-sp1/ http://artazor.wordpress.com/2008/12/07/scsf-april- 2008-fix-for-visual-studio-2008-sp1/ 8/09/201014Smart Client Software Factory
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.