Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Azra [Florent Santin]

.Net, X'Net, aucun lien de parenté V2.0

Actualités

  • MSN Alerts
    View Florent Santin's profile on LinkedIn
     Cet été j’en ai rien à coder : le retour
[Teched 2007] Build your Own Software Factory

Don Smith - Product Manager Microsoft
Dennis Doomen - Team Lead Avina Solution
Olaf Conijn

Objectifs de la session:

•    Comprendre ce qu'est une Software Factory
•    Définir ce qu'il faut avoir pour en construire une
•    Comment en construire une

Qu'est ce que c'est, concrètement:

  • Un outil pour créer un type spécifique de projet
  • Qui s'exécute dans Visual Studio
  • A base de modèles, de designers, d'éditeurs et d'assistants
  • Qui génère en général un produit en sortie
  • Qui contient des exécutables, des fichiers, des éléments réutilisables...

Première démonstration de factory: Web Service Software Factory - permettant de modéliser des WebServices. Utilisation d'un designer pour définir un modèle. Implémentation de celui-ci de manière automatique directement depuis Visual Studio pour générer un squelette de solution avec une organisation logique de projet. Puis génération de code dans ces projets directement via des clicks droit depuis le modèle.

La vrai question: Combien de temps cela prend?

•    Pour construire une factory, 2 à 3 fois plus de temps que pour construire le produit directement
•    Le retour sur investissement n'apparait réellement qu'après l'implémentation d'au moins 5 produits

Dans quels cas faut-il créer une factory?

•    Pour créer plusieurs instances d'un même produit
•    Réutiliser des fonctionnalités d'un socle existant
•    Imposer une architecture dans un projet: tous les projets démarrent du même modèle et de la même organisation
•    Augmenter productivité et qualité de produit: gain de temps et structure du produit bien défini
•    Nécessite moins d'expérience humaine pour créer le produit: les fondations sont solides et auto-générées sans nécessiter de compétences techniques avancées

Cela requiert cependant:

•    Un domaine fonctionnel bien compris
•    Une connaissance globale des librairies, framework et types d'implémentations existants (une vision très globale)
•    Des personnes possédant à la fois des compétences métier, techniques et en construction de factory pour son écriture

L'investissement augmente avec la complexité de la factory (du plus faible au plus élevé):

- Une librairie de classe / framework
- Un template de solution ou de projet Visual Studio
- des déclenchements d'actions automatiques
- Un générateur intégré

Démonstration: Création d'un "Guidance Package". Création d'un projet contenant un ensemble de fichier puis transformation de celui-ci en modèle de projet en utilisation l'option "export template" de Visual Studio, le tout dans le but de pouvoir repartir de ce modèle de base sur chaque nouveau projet.

Quels outils utiliser:

•    Pour l'ajout de fonctionnalités:  GAX/GAT
•    Code / Artifact Templates : Visual Studio Text editor
•    Projet / solution Template : Visual Studio Templates
•    Logical Application et System Design: VS Team Edition for Architects

D'un point de vue organisation et méthodologique, les différentes phases de créations d'une factory sont: Développement => Test sur un projet pilote (génération de produit avec la factory pour valider son efficacité et le résultat) => Planification de l'itération suivante et retour en phase de développement. Le tout de manière cyclique jusqu'a l’aboutissement de la factory et son déploiement. Une fois déployée, des nouveaux scénarios peuvent apparaitre nécessitant de recommencer le cycle de développement afin d'améliorer la factory.

Quels sont les critères qualificatifs d'une factory? :

•    Abstraction: doit augmenter la productivité en limitant la redondance de travail difficile
•    Utilisation: l'outil doit être utilisé, documentée et les développeurs doivent y être formés / sensibilisés

Dernière démonstration, utilisation des Domain Specific Language (DSL) tools dans le but d'écrire un générateur de DSL permettant lui même de générer du code!

Plus d'informations en Français sur tout ceci et notamment les DSL Tools: http://www.dslfactory.org (je pense qu'il devrait y avoir en ligne les Webcast des extensibiliy days, événement référant sur le sujet, très prochainement)

Bon, sur le coup, mon résumé est un peu confus, mais ce n'est pas un sujet que j'arrive facilement à rédiger (et la fatigue commence a bien se faire sentir a la fin de ce troisième jour), donc je vous prie de m’en excuser !

Posted: jeudi 8 novembre 2007 01:34 par azra
Classé sous :
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- La suite ...Proposition de collaboration rédactionnelle entre les communautés de développeurs et Microsoft France par LucasR le il y a 9 heures et 29 minutes

- [Fun] Votre simulateur de vol avec Microsoft ESP par Julien Chable le il y a 15 heures et 12 minutes

- [Best Practices] Customisation du My Site : Comment le modifier en amont et en aval par The Mit's Blog le il y a 16 heures et 27 minutes

- Patrick Tisseghem s'en est allé ... par The Mit's Blog le il y a 17 heures et 10 minutes

- MS AutoCollage par alex# le il y a 17 heures et 56 minutes

- Un grand SharePointeur nous a quitte : Patrick Tisseghem manquera à la communauté ! par RedoBlog - The .NET Gentleman !!! le il y a 18 heures et 22 minutes

- [WPF] Comment charger dynamiquement un fichier XAML qui définit des eventhandler ? par Thomas Lebrun le 09-04-2008, 10:56

- Article sur le filtrage des modèles de site SharePoint par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 09-04-2008, 00:11

- Adopter votre Redo en 3D - Clone Virtuel - avec photosynth par RedoBlog - The .NET Gentleman !!! le 09-04-2008, 00:07

- [Expression Web] Astuce de la Semaine : Mettre en bouton ses macros dans une barre d'outils. par Expression Web & Me le 09-03-2008, 20:48