Journées NEPTUNE - Keynote Modélisation chez Microsoft

61
La modélisation chez Microsoft UML, le bon ? XAML, la brute ? Les DSL, les truands ? Le duel ?! Xavier Warzee, Architecte Email : [email protected] [email protected] Blog : http://warzee.fr http :// blogs.msdn.com/xavierw Twitter : @xwarzee Microsoft France

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

Page 1: 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 : [email protected]@microsoft.com

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

Twitter : @xwarzee

Microsoft France

Page 2: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Forum des Architectures Applicatives Microsoft

Groupe LinkedIn:

http://bit.ly/archiappms

Page 3: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 4: Journées NEPTUNE - Keynote Modélisation chez Microsoft

XAML, LA BRUTE ?

Page 5: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Approche Déclarative

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

ApplicationModèle Framework

WPF

WFWCF

Page 6: Journées NEPTUNE - Keynote Modélisation chez Microsoft

.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

Page 7: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Services WCF implémentés par un worflow WF

WCF Service

WF Workflow

ClientExternalService

ExternalService

WCF endpoint

WCF endpoint

Page 8: Journées NEPTUNE - Keynote Modélisation chez Microsoft

WCF/WF

Page 9: Journées NEPTUNE - Keynote Modélisation chez Microsoft

XAML verbeux

Page 10: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 11: Journées NEPTUNE - Keynote Modélisation chez Microsoft

UML, LE BON ?

Page 12: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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 ?

Page 13: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 14: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 15: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 16: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Layer Diagram

Page 17: Journées NEPTUNE - Keynote Modélisation chez Microsoft

UML Class Diagram

Page 18: Journées NEPTUNE - Keynote Modélisation chez Microsoft

UML Use Case Diagram

Page 19: Journées NEPTUNE - Keynote Modélisation chez Microsoft

UML Sequence Diagram

Page 20: Journées NEPTUNE - Keynote Modélisation chez Microsoft

UML Component Diagram

Page 21: Journées NEPTUNE - Keynote Modélisation chez Microsoft

UML Activity Diagram

Page 22: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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é

Page 23: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 24: Journées NEPTUNE - Keynote Modélisation chez Microsoft

LES DSLS, LES TRUANDS ?

Page 25: Journées NEPTUNE - Keynote Modélisation chez Microsoft

PRINCIPES D’OSLO

Page 26: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Bus de Services

Repository

Cloud

Outils de modélisation

Runtimes

Langage de modélisation

Analyste Arch Dev IT Pro

Oslo : la démarche

Page 27: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Architecture d'Oslo

Page 28: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 29: Journées NEPTUNE - Keynote Modélisation chez Microsoft

La language M

Page 30: Journées NEPTUNE - Keynote Modélisation chez Microsoft

SIMPLIFIER LA MODÉLISATION AVEC UN DSL ?

Page 31: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Mon petit dsl

Page 32: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Un DSL pour qualifier les applications

Page 33: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Un DSL pour qualifier les applications

Page 34: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Du Mschema au référentiel

Page 35: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Du DSL au référentielQuadrant

DSL

Référentiel

Page 36: Journées NEPTUNE - Keynote Modélisation chez Microsoft

« M » avec visual studio 2010

• Création du modèle

Page 37: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 38: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 39: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Modélisation avec Quadrant

Page 40: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Modélisation avec Quadrant

Page 41: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Modélisation avec Quadrant

Page 42: Journées NEPTUNE - Keynote Modélisation chez Microsoft

LIGHTSWITCH

Page 43: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Faciliter les développements pour tous

Page 44: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Faciliter les développements pour tous les développeurs

Page 45: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Architecture supportée

Page 46: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Technologies supportées

Page 47: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 48: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 49: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Exemple

Méta-Modèle

• EntityType

Modèle• Customer • PurchaseOrder

Système• aCustomer • aPurchaseOrder

(instances)

Page 50: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 51: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 52: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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– …

Page 53: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Extension du Shell

Page 54: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Configuration de déploiement

Page 55: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Données

+

Ecrans

= Applications métiers

Page 56: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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

Page 57: Journées NEPTUNE - Keynote Modélisation chez Microsoft

CONCLUSION

Page 58: Journées NEPTUNE - Keynote Modélisation chez Microsoft

Une approche globale

Page 59: Journées NEPTUNE - Keynote Modélisation chez Microsoft

MERCI

Page 60: Journées NEPTUNE - Keynote Modélisation chez Microsoft

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/