DSL Factory

La communauté francophone autour des DSL Tools, et de l'extensibilité Visual Studio
The French-speaking community about DSL Tools and Visual Studio Extensibility
Bienvenue à DSL Factory Identification | Inscription | Aide
dans
Accueil Blogs Forums Photos Fichiers Roller

Alain

  • Session mstechdays

    J'aurais le plaisir d'animer une session aux mstechdays portant sur l'outil de gestion de dépendances binaires que je viens de publier sur codeplex (http://www.codeplex.com/vsdm). Bien que le sujet principal ne soit pas l'extensibilité de Visual Studio, vous pourrez voir un cas pratique d'extensibilité utilisant les DSL Tools. Si le sujet de la gestion des dépendances binaires entre projets vous intèresse alors n'hésitez pas.

    Alain

  • Implémenter le multi-vues avec les DSL Tools

    Qui n'a jamais voulu proposer plusieurs vues (plusieurs diagrammes) sur un même modéle ?

    Cette fonctionnalité bien qu'intèressante n'est pas implémentée dans les DSL Tools alors que tout le mécanisme sous-jacent est présent dans le moteur des DSL Tools. J'avais été confronté au problème dans le projet candle et je l'avais résolu d'une manière trés empirique par de la duplication de code généré, rien de trés parfait ni facilement renouvelable.

    Grâce à nos amis de netfxfactory qui décrivent dans un excellent article (incluant le source) la démarche à suivre, cela en est tellement facile que ça en devient banal (J'exagère à peine).

    En tout cas, merci et bravo à Pascal et Anthony pour cette contribution.

    Vous trouverez l'article à cette adresse http://www.netfxfactory.org/blogs/papers/archive/2009/01/13/multiply-dsl-points-of-view.aspx

     

     

  • DSL Tools lab disponible

    Notre Jean-Marc national vient de publier un lab (en anglais) sur les DSL Tools.
    Si vous voulez vous faire une idée de ce que c'est que les DSL Tools ou tout simplement vous refaire une piqure de rappel, vous pouvez la consulter sur code gallery.

  • GAT/GAX, c'est fini !!! Bonjour blueprints

    Si vous avez regardé les slides de la Visual Studio Developper Conference, vous avez peut-être été intrigué par la session intitulée "Beyond VS Packages - Adding Value with Blueprints".

    Blueprints est un framework permettant de fournir des services (à la mode S+S) au développeur utilisant Visual Studio. De ce fait, il remplace, ou du moins à vocation à remplacer, GAT et GAX en proposant un nouveau "Guidance Package Manager".

    La nouveauté ? Les services sont directement téléchargeables et se mettent à jour directement à partir d'un référentiel si cher à mes yeux.

    Evidemment ce n'est que la partie la plus visible, il va falloir y passer un peu de temps dessus pour pouvoir vous en dire plus.

    Par contre, pour ceux (ou celles) qui ont déjà investis dans GAT, je vous conseille vivement de vous y intéresser dès à présent.

  • Visual Studio Developper Conference

    Le 15 et 16 Septembre dernier, c'est tenu à Redmond une confèrence sur l'extensibilité de Visual Studio. Jean-Marc surfant sur le succés de notre journée vsxdays  ;-) y était bien évidemment présent et actif.

    Vous trouverez les slides des présentations à cette adresse, n'hésitez pas à y jetter un coup d'oeil.

  • Un designer pour les fichiers vsct

    Les fichiers vsct permettent de décrire les menus à afficher dans votre package. Même si ces fichiers sont d'un abord beaucoup plus simple que les anciens fichiers .ctc, rien ne vaut un petit designer pour les manipuler.

    Je viens de publier sur codeplex, une pré-version d'un designer utilisant bien évidemment les DSL Tools. En attendant un article expliquant sa mise en oeuvre, je vous invite à l'utiliser et à me faire part de vos remarques.

    Concernant l'utilisation des fichiers .vsct, je vous conseille la lecture du blog d'Istvan à ce sujet. Vous trouverez par la même occasion de nombreux articles trés bien fait sur l'extensibilité de Visual Studio en général ainsi que sur son projet de framework d'extensibilité.

  • Candle le retour

    Aprés avoir digéré le départ de Jean-Marc et m'être remis de petits soucis de santé (hernie discale), il est grand temps de reprendre les choses en main.

    Comme Jean-Marc vous l'a annoncé, le voici dans l'équipe chargé de l'extensibilité de Visual Studio chez Microsoft. C'est une super nouvelle pour lui (un peu pour nous aussi) et surtout pour les DSL Tools qui vont avoir le meilleur des ambassadeurs (Et ce n'est pas parce que c'est un ami que je dis ça).

    En tout cas, bonne chance Jean-Marc.

    Concernant le site dslfactory, nous allons effectuer à la rentrée un petit changement. Le site va changer de nom pour s'appeler vsxFactory. Ce nom permettra de bien refléter la volonté d'aborder les problèmatiques d'extensibilité de Visual Studio en général même si les DSL tools conserveront une place prépondérante. Nous vous avertirons du changement effectif dès que l'infrastructure sera mise en place. Bien entendu, le nom actuel sera conservé avec une redirection pendant un moment.

    En attendant, j'ai publié sur codeplex le projet candle que certains d'entre vous connaissent dèjà. Ce projet était le premier projet que je faisais avec les DSL Tools (d'abord version beta puis version 1) et je le considère comme expérimental car il contient pas mal d'expèrimentation et n'implémente pas les meilleures pratiques pour créer un modèle. Par contre, il est complètement opérationnel et a dèjà été utilisé sur des projets réels.

    Ces bonnes pratiques vont faire le sujet de mes prochains articles et je suis en train de les mettre en pratique dans un nouveau projet reprenant les concepts de Candle que je vais publier prochainement.

    Pour finir, je ne saurais trop vous conseiller de lire cet excellent article de nos amis de netfxFactory qui se sont mis aux DSL Tools et qui ont dèjà bien approfondi le sujet.

     

     

  • Projet Candle

    Candle est un ensemble de DSL pour la mise en oeuvre d'une architecture multi-couches en environnement SOA utilisant les DSL Tools.

    Vous pouvez le télécharger dans l'espace 'Fichiers' du site. Il nécessite le runtime DSL Tools téléchargeable sur le site de Microsoft.

    Le principe de Candle est de modéliser un composant multi-couches et de générer le code associé grace à des stratégies de génération. L'idée de base est de génerer tout (ou du moins le + possible)  le mécanisme 'de plomberie' d'une architecture multi-niveaux pour permettre au développeur de se focaliser sur le code métier.

    Candle gére un référentiel des modèles permettant de gérer les dependences entre composants.

    L'outil est actuellement en version Beta et je vous invite à le télécharger. Pour vous faire une idée, vous pouvez télécharger les 2 tutoriaux qui vous montrent rapidement la mise en oeuvre d'un service en WCF et sa consommation par un client.

    Un article est à venir pour vous expliquer son fonctionnement, mais n'hésitez pas à me faire part de vos commentaires dans le forum dédié.


    Cliquez pour agrandir

  • Introduction aux DSL Tools

    Petite introduction sur ce que sont les DSL Tools et leurs utilisations.

    Les DSL Tools sont un ensemble d’outils permettant de créer une extension dans Visual Studio gérant la mise en œuvre d’un processus de modélisation.

    Ils s’installent à partir du Visual Studio SDK qu’il vous faut télécharger (plus d’infos ici).

    Les DSL Tools prennent en charge 3 concepts principaux :

    • La création d’un langage de modélisation
      La modélisation permet de manipuler graphiquement des concepts au sein d’un designer en implémentant un langage de modélisation. Le langage de modélisation le plus connu est bien évidemment UML mais il en existe des tas d’autres. En particulier Visual Studio 2005 (version architecte) intègre des outils de modélisation vous permettant de décrire vos diagrammes logiques d’applications et de déploiements en fournissant les designers adéquats. (figure 1)
    • La persistance du modèle
      La persistance du modèle dans un format manipulable et standardisé est quelque chose de primordial pour qui veut l'utiliser pour autre chose que de la spécification.  Par exemple, cette notion n’est pas le point fort d’UML. Il existe bien le format XMI mais celui-ci n’est pas toujours évident à utiliser, du fait des nombreuses possibilités de structure dues aux multiples versions de XMI (1.0, 1.1, 1.2, 2.0) et d’UML (1.3, 1.4, 1.5, 2.0) combinées.
    • La génération
      La génération est la conséquence de la persistance. Si le format du modèle est standardisé et qu’il contient les spécificités propres à vos besoins, la génération s’en trouve facilité et prend tout son sens. Il est à noter que j’utilise le terme ‘génération’ sans précision sur la nature de ce qui va être généré. Bien que la génération de code soit la 1ère idée qui vient à l’esprit, il est possible de générer toute sorte de choses (documentation, tests, html…)


    Le concept de langage

    Dans le ‘Robert méthodique’, nous trouvons les définitions suivantes pour langage:

    • « Fonction d'expression de la pensée et de communication entre les hommes, mise en œuvre au moyen d'un système de signes vocaux (parole) et éventuellement de signes graphiques (écriture) »
    • « Tout système de signes permettant la communication »

    Dans un contexte informatique, la notion de « signes vocaux » ne nous intéresse évidemment pas mais tout le reste est pertinent.  Ce que nous voulons en élaborant un langage est de pouvoir conceptualiser et communiquer sans ambiguïté d’une manière compréhensible pour pouvoir ensuite manipuler le concept véhiculé.

    Il existe de nombreux langage. UML est le plus connu. Il a été pensé pour permettre la modélisation (d’où son nom) mais il n’a pas été conçu dans un premier temps pour communiquer autrement que visuellement. Pour permettre la communication lui a été adjoint, par la suite, un formalisme de persistance : XMI (à partir de la version 1.3) qui ne concerne que la structure du modèle mais ne couvre pas la représentation graphique de celui-ci.

    Ce formalisme se base sur le langage XML et c’est d’ailleurs suite à l’avènement de ce langage (car c’en est un) que de nombreux autres sont apparus. On peut citer, sans être exhaustif : BPEL4WS, xhtml, ebXML, Owl…). Pour ces langages, on utilise le terme de métamodéle.

    UML est basé sur la notion de diagrammes (UML 2.0 en contient 13), il a été conçu pour être le plus générique possible. Bien qu’il soit principalement utilisé pour modéliser des concepts informatiques, il pourrait très bien être utilisé pour tout autre chose. Du fait de sa généricité, UML ne propose pas intentionnellement de processus de conception et  introduit les notions de stéréotype, de valeur étiquetée et de contrainte avec son langage (encore un) associé OCL. Et c’est bien là que le bat blesse, ces notions ne sont en aucun cas standardisé puisqu’elles répondent à un besoin spécifique. Chacun est libre de leurs utilisations. C’est pour palier ce nécessaire besoin de spécialisation qu’a été ajouté la notion de Profile dans UML qui est un regroupement de stéréotypes, de valeurs étiquetées et de contraintes spécifiques à un domaine (ex : Profile Real Time, Edoc, corba…)

    On voit bien la difficulté de mise en œuvre de cette approche, si on a un besoin très précis de modélisation, il faudra chercher si il existe un Profile adapté en priant qu’il réponde à tous nos besoins et qu’il évolue dans le bon sens. Si il ne couvre pas tout le périmètre, vous allez le spécialiser en lui ajoutent vos propres stéréotypes et … tout recommence.

    Un autre problème avec ces extensions est la difficulté d’opérer des validations complexes sur leurs utilisations au sein du modèle ou de mettre en œuvre des mécanismes de répercussions de modifications (une modification d’un élément dans le modèle peut avoir des conséquences sur d’autres aspects de celui-ci)

    Les besoins de spécialisation sont devenus une nécessité et UML essaye de les prendre en compte en ajoutant à chaque fois des extensions pour répondre à toutes ces problématiques (XMI, profile, OCL…)

    C’est à ce niveau que les DSL Tools peuvent apportées une réponse. Le but n’est pas de remplacer UML mais de pouvoir créer un langage répondant à un besoin spécifique. Ce langage peut-être complètement nouveau, basé sur UML ou sur tout autre langage. Il aura cet avantage qu’avec les DSL Tools vous aurez spécialisé le designer graphique,  typé votre modèle (au sens de validation stricte) et créé les règles d’utilisation et de transformation de celui-ci. Une implémentation de MDA en quelque sorte mais avec l’avantage de maitriser de bout en bout le processus.

    Les DSL Tools sont donc un framework vous permettant de mettre en place tous ces mécanismes tout en n’étant pas dédié au formalisme UML. A vous d’inventer votre monde (si cela a un intérêt) mais vous pouvez très bien, pour les inconditionnels, recréer un module de modélisation UML avec vos propres stéréotypes. C’est d’ailleurs ce que propose Microsoft avec le diagramme de classes bien que ressemblant fortement au diagramme de classes d’UML, il est spécifique à .NET avec par exemple les notions d’accesseurs qui ne sont plus décrits avec des stéréotypes mais disponibles directement dans le modèle.

    Vous trouverez une présentation powerpoint sur le site.

    posté le Friday, November 03, 2006 5:25 PM par AlainM | 1 commentaire(s)
    Classé sous :
    Attachment(s): sdm.jpg

Calendrier des messages

<July 2009>
SuMoTuWeThFrSa
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

Catégorie des messages

Abonnements

Propulsé par Community Server, par Telligent Systems