Mon parcours aux TechDays 2008...
Comme l'an passé, je n'ai assisté qu'à quelques sessions, entre clientèle et présence sur le stand Inner Circle qui regroupe les sociétés reconnues par MS pour leur expertise sur TeamSystem.
Petit débrief sur ces sessions...
Au programme :
- La plénière développeurs
- Introduction à LINQ
- Industrialisation des développements
- Linq & Entity Framework
- GreenPepper, spécifications exécutables
La plénière développeurs
Outre le show (arrivée en skate et mise en scène théâtrale) et le sexy (Player Quicksilver), je retiens de cette plénière l'avènement de REST avec
Astoria (ADO.NET Data Services) et LinqToHTTP.
Plus que la simplicité, c'est l'interopérabilité qui est mise en valeur avec des clients PHP et cURL.
Il ne s'agit encore que de preview, mais le ton est donné !
C'est donc le moment de se replonger dans le cahier Services Web : Choix Architecturaux de Philippe Mougin (OCTO Technology).
Introduction à LINQ
Philippe, parlons en, présentait avec Fabrice Marguerie (MetaSapiens) le pourquoi et le comment de LINQ à travers la session : "Introduction à LINQ".
Le pourquoi est résumé en 2 points :
- Avoir un langage de plus haut niveau pour les opérations ensemblistes et
- Unifier le requêtage objet, SGBD, XML, ....
Sur le comment, la démarche est ludique et didactique : A partir d'une fonction de sélection filtrée d'éléments en C# 2.0, les deux compères font évoluer doucement la quinzaine de ligne de code avec les apports de C#3 (Lamba expression pour remplacer les delegate, Extension de méthodes pour simplifier l'écriture, inférence de type pour éviter le typage explicite à l'écriture).
Petit à petit le code se transforme en deux méthodes plus courtes nommées "Select" et "Where". Elles sont remplacées au final par un "#using Linq" sans changer le code de l'appelant : Démystification assurée. Les applaudissements pleuvent !
Industrialisation des développements
Messaoud Oubechou et Nicolas Mangin (OCTO Technology) nous ont présenté leur retour d'expérience autour de Team System et de l'industrialisation des développements. L'angle d'approche est le suivant :
Quels sont les "patterns" qui caractérisent Team System - les gènes du produit (Build automatisé, référentiel unique,...) ?
Quels sont les "patterns" de mise en oeuvre de Team System - les bonnes pratiques autour de l'outil (Test First, construction incrémentale,...) ?
Quelles sont parmi ces deux catégories, les éléments les plus souvent mis en oeuvre ?
Sur ce dernier point, la présentation de 4 situations projets nous apprend :
- qu'il y a des grandes constantes dans la mise en oeuvre de l'outil (le Build par exemple)
- qu'au delà de ces tendances, les installations et pratiques diffèrent, suivant le contexte et la maturité de l'équipe
- que le ticket d'entrée n'est pas élevé : il faut construire son usine incrémentalement, au fur et à mesure de son besoin et de sa maturité.
Si vous pensiez que Team System allait créer une faille temporelle au début de votre projet, vous voilà rassuré !
Vous allez pouvoir livrer rapidement du logiciel qui fonctionne tout en commençant tranquillement la construction de votre usine de développement.
Linq & Entity Framework
Deuxième présentation de Fabrice, avec Sébastien Ros (Evaluant) cette fois ci.
Après un bref rappel de ce qu'est Entity Framework (à la fois un mappeur O/R, une interface unifiée vers des sources de données, un générateur de code, mais pas exactement non plus tout ça...), la présentation est axée sur ce que l'on doit attendre d'un ORM et ce à quoi répond Entity Framework. La bonne nouvelle vient de la gestion des applications distribuées : la question du détachement / rattachement des objets ne va peut être plus en être une...
S'en suit une comparaison des performances avec différents outils (générateur de code, ORM) : si je m'attendais à une nette avance des générateurs, ce n'est pas le cas. La différence est légère (l'accès à la donnée coute beaucoup plus chère que la réflexion) et Entity Framework tient la route.
Entre 2 planches, Fabrice nous montre comment utiliser eSQL, le langage de requêtage d'Entity Framework et son équivalent Linq et le débogage associé (visualisation des requêtes générées).
Cette fois, MS semble proche de nous fournir sa solution d'accès aux données pour les objetistes, quelques années après feu ObjectSpaces...
Si NHibernate est la référence en la matière, il reste à savoir s'il résistera longtemps au rouleau compresseur MS.
GreenPepper, spécifications exécutables
Dernière séance de mon parcours, avec Christophe Thibaut (OCTO Technology) et François Beauregard (Pyxis Software).
L'ambiance y est très chaleureuse et les deux compères décrochent plus de rires qu'aucune des séances jusque là. Et pour cause : ils nous présentent avec humour les lacunes des méthodologies traditionnelles et notre aptitude à refaire les mêmes erreurs, encore et encore (le tout avec l'accent québécois de François).
Extrait choisi (retransmission) :
Les développements dérapent, alors qu'est ce qu'on fait ?... On raccourci la période de test, alors qu'on vient de montrer qu'on ne savait pas estimer.
Et ça ne marche pas ! Et on s'en étonne. Et la fois d'après, on recommence et on s'étonne encore une fois que ça ne marche pas.
Moi, c'est le fait qu'on s'en étonne encore qui m'étonne...!.
Plutôt que de nous faire la promo de l'outil, la présentation est clairement axée sur le fond : Pourquoi les méthodologies classiques se cassent le nez, comment y remédier. A tel point que la démo a lieu en dehors des heures ouvrées... Les retours d'expérience de Christophe viennent illustrer les gains annoncés.
Si vous vouliez à la fois vous remettre en question, apprendre comment faire autrement, et passer un bon moment, c'était assurément la session à laquelle il fallait assister.