Journées NEPTUNE - Keynote Modélisation chez Microsoft

Post on 27-Jun-2015

689 views 1 download

Transcript of Journées NEPTUNE - Keynote Modélisation chez Microsoft

La modélisation chez MicrosoftUML, le bon ? XAML, la brute ? Les DSL, les truands ?

Le duel ?!

Xavier Warzee, Architecte

Email : xwarzee@acm.orgxavierw@microsoft.com

Blog : http://warzee.frhttp://blogs.msdn.com/xavierw

Twitter : @xwarzee

Microsoft France

Forum des Architectures Applicatives Microsoft

Groupe LinkedIn:

http://bit.ly/archiappms

Le continuum d’usage des modèles

Source : http://blogs.msdn.com/b/stuart_kent/archive/2011/04/07/is-model-driven-development-feasible.aspx

XAML, LA BRUTE ?

Approche Déclarative

Utilisation de XAML pour les ModèlesFrameworks configurables en XAML !

ApplicationModèle Framework

WPF

WFWCF

.NET est de plus en plus orienté modèle

Support de XAML

WCF

WF

WPF/Silverlight

.NET 3.0 .NET 3.5 .NET 4.0

Rich XAML support

Rich XAML support

Rich XAML support

Rich XAML support

Rich XAML support

XAML with code behind

XAML with code behind

No XAML support

LimitedXAML support

Services WCF implémentés par un worflow WF

WCF Service

WF Workflow

ClientExternalService

ExternalService

WCF endpoint

WCF endpoint

WCF/WF

XAML verbeux

« Designer graphique » pour rendre plus lisible le modèle XAML WCF/WF

UML, LE BON ?

UML : une des attentes du marché !

Comprendre et améliorer• Comment mieux comprendre un

système que je n’ai jamais vu avant ?

• Comment améliorer un système conformément aux attentes métier ?• Suis-je en train de modifier les

bons composants ?• S’agit-il toujours de

l’architecture souhaitée ?

Modéliser et avancer• Comment mieux comprendre un

besoin fonctionnel à résoudre ?• Comment valider une

architecture logique face à des patterns et des règles de conception ?

• Comment partager avec mon équipe ?

Exécuter et livrer• Comment je sais que j’avance

correctement ?• Comment savoir que le système

en cours de développement respecte les règles de conception ?

• Comment connaître le niveau de qualité des composants en développement ?

• Comment savoir quand j’ai terminé mes développements ?

Approche retenue• UML au niveau logique• DSLs au niveau physique• Support de .Net• Refactoring à l’aide de modèles visuels

• Intégration ALM

Intégration des niveaux physiques et logiques

• Visualisation des codes existants• Comprendre, manipuler et réutiliser

Découverte d’architecture

• FxCop pour la conception• Traçabilité du modèle au code• Connexion claire entre architecture et besoins fonctionnels

Validation d’architecture

Support UML dans VS 2010> Ultimate Edition

• Conforme au niveau 1 (L1) avec quelques exceptions

VSTS 2010 supporte

UML 2.1.2

• Diagramme de cas d’utilisations • Diagramme de classes• Diagramme d’activités• Diagramme de séquences• Diagramme de composants• Diagramme d’états (L2)

Diagrammes supportés

Support UML dans VS 2010> Ultimate Edition

Diagrammes UML 2 Architecture Explorer (C#, VB)

Layer Diagram (C#, VB)

Import Visio/XMI (?) Integration avec TFS

API & SDK prévus pour l’intégration

des DSLs, et d’outils et utilitaires tiers

Layer Diagram

UML Class Diagram

UML Use Case Diagram

UML Sequence Diagram

UML Component Diagram

UML Activity Diagram

Collaborations : OMG

• depuis septembre 2008Microsoft est membre actif de l’OMG

• Steve Cook, co-créateur d’UMLReprésentant

• publié officiellement par l’OMG en décembre 2008• UML plus simple et extensible, diagrammes mieux définis (plus

précis, ambigüités réduites), l’interopérabilité

Steve Cook est leader du RFI « Future of UML »

• RFP « UML Specification Simplication » : lettre d’intention -> UML 2.5

Steve co-chair UML 2.4 & 2.5

• RFP « MOF Support for Semantic Structures » adopté (non publié)Microsoft a publié

Collaborations : Eclipse Fondation avec Soyatec

• depuis septembre 2008Soyatec est membre actif de l’Eclipse Foundation

• Yves Yang, fondateur de SoyatecReprésentant

• PMF (Presentation Modeling Framework)• Meta-modèle pour les Interfaces Graphiques• Utiliser un dérivé de XAML, les frameworks EGF• La prise en compte de la plateforme .Net

Yves Yang est leader du projet PMF

• Génération d’applications Windows Phone 7 à partir d’un modèle

Exemple de cible supportée : WP7

LES DSLS, LES TRUANDS ?

PRINCIPES D’OSLO

Bus de Services

Repository

Cloud

Outils de modélisation

Runtimes

Langage de modélisation

Analyste Arch Dev IT Pro

Oslo : la démarche

Architecture d'Oslo

Development Domains

TEXTUAL DSLsVISUAL DSLs RUNTIMES

“Quadrant” Web Editor

“MWeb” ASP.NET

“Quadrant” Service Editor

“MService”WCF/WF

(“Dublin”)

“Quadrant” Entity Editor

“MEntity” EF

“Quadrant” Schema Editor

“MSchema” SQL

“Quadrant” My Configured

EditorMy DSL My Runtime

WEB

SERVICES

ENTITIES

DATABASE

CUSTOM

La language M

SIMPLIFIER LA MODÉLISATION AVEC UN DSL ?

Mon petit dsl

Un DSL pour qualifier les applications

Un DSL pour qualifier les applications

Du Mschema au référentiel

Du DSL au référentielQuadrant

DSL

Référentiel

« M » avec visual studio 2010

• Création du modèle

Schéma & données créés avec « M »

Application ASP.NET MVC générée avec « M »

Modélisation avec Quadrant

Modélisation avec Quadrant

Modélisation avec Quadrant

LIGHTSWITCH

Faciliter les développements pour tous

Faciliter les développements pour tous les développeurs

Architecture supportée

Technologies supportées

Presentation Tier

User Interface

Screen layout

Business Logic

Entity logic

Screen logic

Service Access

Entity Container

Service Tier

Service Interface

Data Service Entity

Container

Business Logic

Entity logic Query

pipeline Submit pipeline

Data Access

Data provider

Data Tier

Service Interface

(black box)

Architecture de référence en 3 niveaux

Application

ScreenScreen

Property

Query

Screen Collection Property

Query

Entity Container

Group

Entity Container

DataService

EntityContainer

EntitySet Query Operation

EntityType

Entity Property

Navigation Property

Computed Property

Le méta-modèle

Exemple

Méta-Modèle

• EntityType

Modèle• Customer • PurchaseOrder

Système• aCustomer • aPurchaseOrder

(instances)

Sous le capotPr

esen

tatio

n Ti

er

Serv

ice

Tier

Dat

a Ti

erSQ

L Se

rver

Azur

eSh

areP

oint

Oth

er …

*

Silverlight 4.0

Desktop Host

Browser Host

Methods ControlsScreens

Data Workspace

WCF RIA Services

ASP.NET 4.0

IIS 6.0/7.0

Submit Pipeline Queries

Data Workspace

WCF RIA Services

La philosophie de LightSwitch

Débutez

Décrivez vos données

Créez des écrans pour les taches courantes

RetouchezDéfinissez la logique

métier

Personnalisez les écrans

Définissez des requêtes personnalisées

Etendez

Ajoutez des composants

Créez des controles Silverlight personnalisés

Intégrez des sources de données spécifiques

L’extensibilité de LightSwitch• LightSwitch repose sur MEF• Tout est extensible– Le shell, le thème– Les contrôles graphiques– Les sources de données– Les types de données– …

Extension du Shell

Configuration de déploiement

Données

+

Ecrans

= Applications métiers

LightSwitch en bref• Un DSL décrivant :

• Des sources de données à consommer• Des écrans qui les manipulent• Du code métier personnalisé.

• Un designer Visual Studio en WPF• Un générateur de code• Un framework (runtime) d’exécution• Intégré à la plateforme .Net

• Visual Studio et TFS• Framework 4.0• IIS

CONCLUSION

Une approche globale

MERCI

Ressources• Architecture (Cloud, SOA, Enterprise Architecture, …)

– Portail : http://msdn.com/architecture– The Architecture Journal : http://www.architecturejournal.net

• Windows Communication Foundation Web – http://msdn.microsoft.com/wcf

• Windows Workflow Foundation Web– http://msdn.microsoft.com/wf

• Oslo/Data/M– Portail : http://msdn.com/data– Forum : http://social.msdn.microsoft.com/Forums/en-US/oslo/threads/– La spécification du langage « M » : http://

msdn.microsoft.com/en-us/library/dd285282.aspx– « Model-Driven SOA with “Oslo” »

• http://msdn.microsoft.com/en-us/architecture/aa699436.aspx

• LightSwitch Developer Center– http://msdn.microsoft.com/en-gb/lightswitch/

• LightSwitch Blog– http://blogs.msdn.com/b/lightswitch/