Smart Client Software Factory DotNetHub 04/09/2010 Vincent Goossens 8/09/20101Smart Client Software Factory.

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

Office 2007 – Développement client (5/5) OpenXML & Nouveautés de linterface Stéphane Crozatier Relation Technique Editeurs de Logiciels DPE - Microsoft.
Service Software Factory François MERAND Responsable groupe architectes DPE – Division Plateformes & Ecosystème Microsoft France
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Installation et déploiement des Services Web Ziriad Saibi Relation technique éditeurs de logiciels Microsoft.
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Appels de fonctions natives sous C#
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Virtualisation dorchestration de services TER Master 1 Infomatique 4 Avril 2008 Encadrant : Philippe Collet.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
VI50 – TP3 Introduction à Virtools. Virtools Virtools Media Design 3DS, Maya, Lightwave… Sound Design wav, mp3… Texture, 2D interface jpg, bmp… Specific.
Microsoft Visual Studio Team Suite Dossier réalisé par Frédéric MOTHY et Eric LELEU – Mai 2007.
Les Ateliers de Génie Logiciel
Développement dun simulateur dinterface graphique à distance Présenté par Michaël Delhaye Promoteur : Jean Vanderdonckt.
Interface Homme Machine IHM Pro
Page de garde Introduction aux Design Patterns ISIA, Mars 2003
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
GED Masters: Gestion Électronique de Documents
Programmation orientée objet
Module 1 : Préparation de l'administration d'un serveur
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
JAVASERVER FACES Un framework Java pour le développement Web.
Présentation de Windows Presentation Foundation Vers une nouvelle génération dinterfaces graphiques.
Sommaire Objectif de Peakup Principes de fonctionnement
Développement Rapide dApplications Web avec.NET « Mon premier site »
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
Révision et principes SOLID
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Factory Design Patterns Factory Method
Mapping Objet-Relationnel
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
Cilia Mediation Framework v0.9.0 Implantation.. Plan Cilia: c'est quoi? Capacités. Cilia: Modèle d'implantation. Mise en œuvre: Médiateur Cilia. Assemblage.
Eric Vernié, Développer une application en couches avec Visual Basic.NET 2005.
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Mise en oeuvre et exploitation
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
22 Visual Studio Tools et Office 2010 Thomas LEBRUN Architecte Access It Sebastien BOVO Application Dev Consultant Microsoft France
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
Requêtes homme-agent sur le fonctionnement Etudiantes: Anne DARME & Céline GIRARD Encadrant: Nicolas SABOURET Rapporteur: Vincent CORRUBLE Responsable:
Introduction à Visual Studio C++ (VC++)
12/04/ Le polymorphisme Cours 8 Cours 8.
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Plus simple à utiliser Une interface d’administration entièrement remaniée rend plus facile l'apprentissage de Drupal.
RDA 209 : WPF Toolkit et bonnes pratiques
Open Days 2006 Le développement Office 12 Thomas LEBRUN – Microsoft MVS Administrateur de Developpez.comDeveloppez.com.
Projet OASIS PCfEngine Encadrant : M. Keryell Date : Mercredi 02 Mars 2005 Pascal Virmaud.
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
Module 3 : Création d'un domaine Windows 2000
22 WPF pour les appli métier [Retour d’expérience] 8 Février 2010 RDA 203 Alexandre Arnaudet – Damien Thouvenin CLT-Services.
22 Lag110 : Le développement SharePoint 2010 avec Visual Studio 2010 Mardi 9 février 2010 Frédéric Wickert Partner Technical Specialist Microsoft.
Iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 Charte graphique.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Nicolas CLERC Consultant associé
Factory Design Patterns Raffaella Sanna Sylvain Giroux.
22 Visual Studio Tools et Office /02/2010 Thomas LEBRUN Architecte Access It Sebastien BOVO Application Development Consultant Microsoft France.
1 Démo SoftGrid. Le Séquenceur SoftGrid Utilisation d’un « packageur » SoftGrid Possibilité de “séquencer” en ligne de commande (CLI) Existence d’outils.
Base de données de construction d’Agata Agata France C.Aufranc, O.Stezowski, 05/06/08.
2 Alain METGE SOGETI
Mon application Silverlight/WPF et la guerre des patterns
Création d’applications distribuées.NET Ziriad Saibi Relation technique éditeurs de logiciels Microsoft France.
Template Method Design Pattern. But Définir le squelette d’un algorithme tout en déléguant certaines étapes aux sous-classes. Les sous-classes peuvent.
© SQLI GROUP – 2012 AUDIT DRUPAL USINE À SITES WEB ÆGIR.
FACTORY systemes Module 6 Section 1 Page 6-3 Les ActiveX FORMATION INTOUCH 7.0.
Transcription de la présentation:

Smart Client Software Factory DotNetHub 04/09/2010 Vincent Goossens 8/09/20101Smart Client Software Factory

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 /09/20102Smart Client Software Factory

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

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

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

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

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

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

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

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

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

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

5. Références Programming Microsoft Composite UI Application Block and Smart Client Software Factory, David Platt, Microsoft Press, Architecting Composite Smart Clients Using CAB and SCSF Microsoft patterns & practices - Smart Client Guidance Introduction to CAB/SCSF Prism (SCSF for WPF, VS2010) eApplicationUsingPrism.aspx eApplicationUsingPrism.aspx 8/09/2010Smart Client Software Factory13

6. Demo Composants à installer (pour VS2008 SP1) – GuidanceAutomationExtensions.msi ( amilyId=C0A394C0-5EEB-47C4-9F7B- 71E51866A7ED&displaylang=en) amilyId=C0A394C0-5EEB-47C4-9F7B- 71E51866A7ED&displaylang=en – gaxp1409.exe ( amilyID=E28205C6-BB07-401B-9A BF0&displaylang=en&displaylang=en) amilyID=E28205C6-BB07-401B-9A BF0&displaylang=en&displaylang=en – Smart Client Software Factory - April 2008 fixed for SP1.msi fix-for-visual-studio-2008-sp1/ fix-for-visual-studio-2008-sp1/ 8/09/201014Smart Client Software Factory