Oslo, le langage M et Quadrant
Octobre 29th, 2008Dans la continuité du post précédent traitant des BluePrints, voici l’arrivée du nouvel outil de modélisation dans Oslo s’appelant Quadrant basé sur WPF (Windows Presentation Foundation).
Il permet de modéliser et de stocker le résultat dans et depuis un référentiel.
L’outil se présente avec une barre de menu ruban et différentes vues.
Vous pourrez créer des espaces de travail pour modéliser.
Vous pourrez naviguer également depuis un explorateur dans un référentiel de modèles et opérer un glisser/déposer dans l’espace de travail de vos modèles, artefacts ou processus prédéfinis.
Le langage de modélisation s’appelle M et aide à créer et utiliser des DSLs. Ce langage déclaratif « M » donne plus précisément la possibilité aux développeurs de modéliser « textuellement » leurs applications alors que Quadrant permet une modélisation graphique.
« M » est composé de 3 parties :
- MGrammar : définit la grammaire pour la traduction de la syntaxe
- MSchema : définit le schéma du modèle sémantique
- MGraph : langage textuel pour représenter le modèle sémantique. Tandis que MShema représente les types, MGraph représente les instances.
Un lien avec des vidéos explicatives sur Oslo et le langage « M » :
http://www.modelsremixed.com/
Pour télécharger la CTP d’Oslo : http://code.msdn.microsoft.com/oslo
L'après GAT/GAX : les Blueprints
Septembre 28th, 2008Comme nous informe Alain Metge sur DslFactory.org, une session de la Visual Studio Developper Conference présente une nouvelle technologie qui sera le successeur de GAT/GAX : les Blueprints.
Les objectifs :
- construire plus facilement des extensions
- rendre plus facile l’exploration de ces extensions
- créer une expérience de développement personnalisée
L’approche de la Software Factory chez Microsoft s’appuient sur les DSL Tools et GAT/GAX qui sont 2 technologies complémentaires. L’équipe Pattern and Practices a produit sur cette base plusieurs software factories (SCSF, WSSF, etc…).
Le projet Glidepath a ensuite permis d’aboutir aux Software + Services BluePrints.
La combinaison des DSL Tools et de S+S BluePrints aboutit aux technologies BluePrints.
Elle permet de capitaliser sur les anciens outils de génération de code et remplacer GAT/GAX. Elle propose la création d’ « extension sets » qui représente chacune une « viewpoint ». Chaque set embarque des « metadata » à propos de ce que contiennent les « extension sets » et le « viewpoint ». Les « extension sets » sont organisées dans des hiérarchies préservées dans un « extension manager ».
La version 1.1 propose l’installation de packages via des flux RSS.
Dans la version 2.0, les actions GAX seront migrées vers des « activities » Workflow Foundation, les implémentations des « recipes » sont hébergés dans Workflow Foundation et les assistants visuels seront basés sur Windows Presentation Foundation.
La version 3.0 prévoit un designer permettant de lier plusieurs DSLs.
Pour voir S+S Blueprints en action, vous pouvez regarder cette vidéo qui montre un développeur qui l’utilise pour développer un add-in Outlook.
Et pour tester soi-même, le projet sur CodePlex des S+S Blueprints.
Pourquoi Visual Studio Team System favorise la conduite du changement dans l’entreprise ?
Mars 2nd, 2008Au sein des entreprises, il existe une multitude d’outils différents qui sont utilisés pour effectuer la même tâche. Les critères sont basés sur les prix, la formation à ces outils, l’intégration dans l’univers technologique dans lequel baignent le client et des choix historiques.
En effet, lorsqu’un client investit en argent, en temps, en recrutement, en formation et en communication, il lui est difficile de revenir en arrière du jour au lendemain.
Visual Studio Team System se propose d’offrir un « tout en un » permettant de gérer le cycle de vie d’un projet logiciel.
Les différentes briques de la solution sont déjà connues et utilisées plus ou moins selon l’entreprise.
Ces différents outils répondent aux besoins suivants :
- Suivre les tâches d’un projet en déclarant des areas, des scénarios, des work items, des bugs
- Gérer les sources avec un outil de gestion de versioning
- Gérer les tests unitaires et la couverture de code
- Gérer les builds nocturnes
- Manager le projet sur la base de métriques d’avancement du projet
- Etablir une fondation unique et solide (site SharePoint) pour faire communiquer tout les acteurs du projet du fonctionnel à l’administrateur système en passant par l’architecte et le développeur
La prise en main par une équipe fonctionnelle et technique passe par des étapes importantes à ne pas négliger :
- Former les acteurs du projet aux fonctionnalités de base sans les noyer dans une explication avancée du produit
- Etablir des normes d’utilisation de la plateforme et de nommage des différents artefacts
- Proposer un support disponible à l’utilisation de Team System pour ne pas être freiné par une mauvaise utilisation ou compréhension de l’outil
- Programmer et paramétrer les builds au plus tôt du projet
- Ne prendre en compte que les documents intégrés dans le portail Team System et les bugs déclarés (à partir par exemple de Team Plain qui permet d’utiliser Team System depuis un navigateur Internet)
On le voit bien, l’utilisation de Team System demande une discipline d’équipe qui devient profitable à tous les acteurs du projet. Cela demande par contre un changement de mentalité et une aspiration à améliorer les méthodologies classiques et les habitudes prises d’où l’importance d’être accompagné dans cette démarche.
Article de presse d'introduction sur les DSL
Mars 2nd, 2008Pour information, j'ai écrit un article d'introduction aux DSL qui est paru dans le magazine Programmez de Mars 2008.
Vous pouvez lire l'introduction à ce lien.
A votre disposition pour des informations complémentaires et / ou pour accueillir vos retours.
Portail Visual Studio Gallery
Février 28th, 2008Grâce à Jean-Marc Prieur de DslFactory, j'ai appris le lancement d'un nouveau site qui répertorie tous les produits gratuits ou commerciaux autour de Visual Studio.
On y retrouve les catégories suivantes :
- Build
- Coding
- Controls & Libraries
- Data
- Documentation
- Modeling
- Other
- Performance
- Programming Languages
- Reporting
- Security
- Setup & Deploy
- Source Control
- Team Development
- Testing
- Web
Utile lorsqu'on est amené à effectuer des comparatifs ou pour évaluer un produit.
Le site : http://visualstudiogallery.com/
Sortie de la release de GAT Février 2008
Février 17th, 2008Pour rappel, GAT est un extension à Visual Studio qui permet d'élaborer des modèles dans le but d'automatiser la génération de code. C’est le successeur des « Entreprise Template Projects » (ETP) avec Visual Studio 2003. Le moteur pour écrire un modèle s’appelle T4.
Lors du déploiement de votre package « GAT », vous devez installer les Guidance Automation Extensions (GAX) pour permettre à Visual Studio d’utiliser vos fabriques GAT.
Les nouveautés de cette release :
- support de Visual Studio 2005 et / ou Visual Studio 2008
- si vous avez la version précédente de GAX, pas besoin de la désinstaller
- correction de différentes anomalies
Les liens :
- Guidance Automation Extensions - February 2008 Release
- Guidance Automation Toolkit for Visual Studio 2005 - February 2008 Release
- Guidance Automation Toolkit for Visual Studio 2008 - February 2008 Release
Extensibilité de l'Event Broker avec CAB
Janvier 14th, 2008Pour ceux qui ont utilisé ou utilisent le framework CAB (Composite User Interface Application Block), l'un des premiers besoins qui se fait ressentir est de faire communiquer les différentes modules qu'on crée sans passer par un couplage fort.
Le design pattern Observateur (ou publish / subscribe) sur lequel repose la communication inter-modules est implémenté dans le mécanisme de l'Event Broker. Il permet donc de notifier à un module un événement vers d'autres modules sans pour autant les connaître.
L'un des défauts que j'ai rencontré est l'utilisation de la reflection dans ce mécanisme qui impacte la performance globale de l'application. Il est également obligatoire d’avoir la même signature et les mêmes types véhiculés du publieur à l’abonné ce qui demande une organisation sans faille entre les développeurs de différents modules.
On spécifie les noms des événements qu’on publie par des constantes ainsi que chez celui ou ceux qui y souscrivent. Aussi, il est intéressant de les centraliser pour éviter des erreurs de nommage des 2 côtés.
On arrive au final à un plat de spaghettis lorsqu’on a plusieurs modules qui s’appellent avec des interdépendances et des réactions en cascade à gérer.
La solution est d’utiliser une classe qui puisse agréger et permettre la gestion (routing et transformation) des événements des publieurs aux abonnés. Cela facilite également l’écriture des tests unitaires.
Jeremy D. Miller (sur son blog sur le site CodeBetter) nous expose sa solution avec l’utilisation de generics et l’implémentation du design pattern Event Aggregator (décrit ici sur le site de Martin Fowler). Il agit tel un Message Broker dans un hub et adresse la problématique de comment architecturer les messages.
Glenn Block (sur son blog du site CodeBetter) lui répond en expliquant le travail effectué actuellement pour la nouvelle version de CAB pour WPF dans l’amélioration du mécanisme de l’Event Broker.
Attendons de voir le résultat en sachant que CAB a été pensé et construit pour des applications Windows Forms alors que la gestion des événements en WPF est différente avec la notion des Routed Events.
Article sur les software factories
Décembre 18th, 2007Ce message pour vous informer que dans la continuité du livre blanc paru au mois de Septembre 2007 sur les outils Microsoft pour industrialiser vos développements (http://www.adiba.fr/), un article sur le thème Software Factories vient de paraître dans le hors-série .NET du magazine Programmez du mois de Décembre 2007.
A votre disposition pour des informations complémentaires et / ou pour accueillir vos retours.
Magasine en ligne Visual Studio Extensibility
Octobre 1st, 2007Pour ceux qui veulent préparer la prochaine journée de l'extensibilité Visual Studio organisée par DslFactory.org et Microsoft le mardi 16 octobre à Paris, vous pouvez consulter en ligne le volume 5 de Code Magazine qui consacre un numéro entier sur ce thème.
Spécialiser une software factory
Septembre 24th, 2007Jezz Santos dans son blog nous donne son avis sur la verticalisation ou la focalisation métier dans le domaine de la fabrique logicielle type Microsoft.
Sa solution : etendre la software factory avec DSL/GAT et de nouveaux assets tout en masquant les artefacts non utilisés.
C'est aussi ma façon de faire. Et vous comment effectuez vous cette personnalisation si elle est nécessaire ?
Il dresse également le comparatif entre le modèle horizontal sur lequel s'est concentré l'équipe Patterns & Practices de Microsoft pour batir ses software factories et assurer ainsi une couverture transversale de tous les besoins.
Pour lire le billet entier : Software Factory Verticalization (Specialization).
Les outils Microsoft pour industrialiser vos développements
Septembre 16th, 2007Quand j'ai commencé il y a 2 ans à étudier le domaine de l'industrialisation des développements sur une plateforme Microsoft, j'aurais aimé avoir un document succinct présentant toutes les technologies disponibles.
Ainsi, j'ai pris humblement l'initiative de rédiger un document sur ce sujet introduisant le travail de l'équipe Pattern and Practices de Microsoft sur les softwares factories, de GAT / GAX, DSL et de l'extensibilité de Visual Studio qui mérite d'être mieux couvert.
Vous pouvez le retrouver sur le site d'Adiba.
Je profite de l'occasion pour rappeler l'organisation par la communauté DslFactory.org et Microsoft d'une journée complète de l'interopérabilité Visual Studio le mardi 16 octobre 2007.
Librairie de tâches MSBuild
Juillet 10th, 2007SDC Tasks Library est un projet utile et intéressant à intégrer avec MSBuild.
C'est un ensemble de tâches communes tel que la création de sites web, de pools d'applications, gestion de l'active directory, lancement de FXCop, création d'archive ZIP, configuration COM+, création de répertoires partagés, installation dans le GAC, configuration de SQL Server, configuration de Biztalk 2004 et 2006, tâches spécifiques à Team Foundation Server, compilation WIX, etc...
Le projet est sur CodePlex : SDC Tasks Library
Utilitaires CAB au quotidien
Juin 27th, 2007Développer une application avec le framework CAB (Composite UI Application Block) autorise l'intégration de modules indépendants.
Néammoins, il est intéressant d'avoir une vue globale des modules exécutées, workitems lancés, events publiés, etc lors du développement / maintenance de l'application qu'on développe.
Les projet CAB Sample Visualizations et Event Visualizer (certes ancien mais qui restent d'actualité) sont très utile à cet effet.
Télécharger Sample Visualizations
J'en profite pour signaler qu'un livre sur CAB et SCSF avec WPF écrit par David S. Platt sort le 26 Juillet 2007. Plus d'informations ici.
Software Factories Toolkit Juin 2007 CTP
Juin 10th, 2007Si vous travaillez avec des DSL (domain specific-language) et GAT (guidance automation toolkit), un outil intéressant nous est proposé par la société Clarius Consulting.
Il facilite la construction de projets GAT et DSL.
Téléchargement : http://www.softwarefactoriestoolkit.net/Download_JUN07CTP.aspx
Des vidéos pour son utilisation : http://www.softwarefactoriestoolkit.net/videos.aspx
Smart Client Software Factory Release Mai 2007
Mai 19th, 2007La release de SCSF (Smart Client Software Factory) est enfin sorti.
Les nouveautés par rapport aux versions précédentes :
- support de WPF
- support des appels asynchrones à des services WCF
- amélioration du déploiement via ClickOnce
- génération de code en VB.NET
- outil de gestion de dépendances entre usines logicielles
Pour le télécharger : Smart Client Software Factory - May 2007
Un lien qui explique comment débuter avec cette usine logicielle sur CodePlex