C'est aujourd'hui que débutait le MSDN & Technet Tour 2008 à Strasbourg auquel j'ai eu l'occasion d'assister. Je vais essayer de vous résumer cette journée, très riche en informations. Bien entendu je ne rentrerai pas dans de la description très technique dans ce post. Il s'agit réellement de vous faire part de mon feedback après cette première journée.
Voici le programme que j'ai suivi :
Séance plénière
La journée a commencée à 13h30, par une session plénière très dense. En effet, animée par Eric Mittelette, Eric Vernié, Mitsu Furuta, Pascal Belaud, Pierre Lagarde, Pierre Cauchois et David Rousset, cette séance fût l'occasion pour ceux-ci de recadrer cette année 2008 riche matière de nouveautés dans le monde du développement Microsoft. Des lancements officiels de Visual Studio 2008 et SQL Server 2008 en février dernier lors des Techdays, en passant par l'arrivée des Services Pack 1 du .NET Framework 3.5 et de Visual Studio 2008, ou encore plus récemment la sortie de Silverlight 2 en Release To the Web, la plénière avait réellement pour ambition de faire une overview de l'offre Microsoft.
Côté web, on retiendra bien entendu l'arrivée de ASP.NET 3.5 et d'AJAX, mais aussi d'ASP.NET Dynamic Data Site permettant en quelques clics de créer un site web permettant de visionner les données présentent dans une base de données. Plus récemment (lundi dernier pour être exacte) la RTW de Silverlight 2, le Framework permettant la création d'applications Internet riche (RIA, Riche Internet Application) multi-plateforme. Pour rappel, cette technologie est multi-plateforme car elle embarque son propre moteur d'exécution : DLR (Dynamic Language Runtime).
Sans trop s'éloigner du monde du web, on peut parler de la béta 2 du navigateur fétiche de Microsoft : Internet Explorer, dans sa version 8. Les principales nouveautés en relation avec le monde du développement sont d'une part le respect des normes CSS 2.1, mais aussi les accélerateurs (Raccourcis vers des applications et services web) ou encore les webslices (ajout de partie de page aux favoris).
Côté client riche, on ne peut pas ne pas parler de WPF (Windows Presentation Foundation). Bien que cette brique du .NET Framework soit apparue avec sa version 3.0, elle a connu il y à quelques mois avec l'arrivée du SP1 du .NET Framework, une mise à jour majeure, notamment en termes de performances. En effet, les applications WPF ne se lançaient pas assez rapidement, dû au fait que ce soit la carte graphique qui fasse le rendu de celles-ci. On note aussi le support du code directX directement dans une application WPF.
Pour les passionnés de développement natif (C++ particulièrement), Eric Vernié a tenu à vous rassurer sur le sujet : le développement natif n'est pas mort pour Microsoft. On note d'ailleur l'arrivée d'une nouvelle version des MFC (Microsoft Foundation Class) permettant notamment la rénovation graphique de vos applications avec l'apparation de classes permettant de réaliser des menus "ruban" (ribbon, en anglais) à la Office 2007. Sans oublier C++CLI, qui bien qu'étant un langage managé constitue un bon tremplin vers la plateforme .NET.
Office 2007 lui même qui a été au centre des discussions de cette session plénière ou il a été rappelé qu'autour de cette solution bureautique se greffe tout un marché de développement. En effet, des VSTO (Visual Studio Tools for Office) à Sharepoint Server, Office se retrouve au coeur de l'offre et de la demande en matière de développement et d'automatisation de certaines tâches (plus encore avec les derniers outils BI de la plateforme SQL Server 2008).
Dans une catégorie plus globale, on retrouvera tout ce qui concerne l'offre Microsoft en matière d'accès aux données. De Linq to SQL, en passant par Entity Framework, jusqu'à l'exposition de votre base de données via des services web à l'aide de la technologie ADO.NET Data Servicess, rien n'a été oublié. J'aurai l'occasion de revenir sur ces éléments dans quelques lignes, au sujet de la session Accès aux données avec Visual Studio 2008.
Enfin, la séance fût l'occasion de remettre en selle les trop souvent "oubliés" du développement Microsoft que sont les compact Framework, pour le développement applicatif mobile, la plateforme de développement de jeux vidéos XNA (pour Windows et XBox 360) ou encore un framework très intéressant, le µFx (Micro Framework). Ce framework ne pèse que quelques kilooctets mais tire surtout son avantage du fait qu'il ne nécéssite pas de système d'exploitation pour s'exécuter. Il peut ainsi fonctionner directement sur la couche hardware et on retrouvera se dernier dans nos appareils de la vie courante (montres, réveil, grille pain ect...
).
J'ai failli oublier une démonstration faite par Pascal Belaud sur Visual Studio Team System for Database Professionnal. De grandes avancées ont aussi été faites dans ce domaine en matière de gestion de schéma, génération de données fictives ou encore tests. On notera d'ailleurs ici que Microsoft à fait le choix de fusionner cette édition avec la Developper Edition. J'y reviendrai plus loin dans la section sur la session "Visual Studio 2008 : boîte à outils du dévelloppeur".
Accès aux données avec Visual Studio 2008
Ayant assisté l'année dernière au tour de France d'accès aux données avec Visual Studio 2008, je suis allez à cette session sans trop imaginer découvrir quelque chose de nouveau. Il en va de soit que j'avait complèment sorti de ma tête ADO.NET Data Service et EntityFramework. Animée par Mitsuru Furuta, cette session s'est révélée beaucoup plus fructueuse que je ne le pensais. La session a commencé par un recadrage sur les technologies de l'accès aux données (selon Mitsu, c'est la panique dans les campagnes!) : la grande question dominante est de savoir quelle est la place d'ADO.NET dans le flot des nouvelles technologies ayant fait leur appartition. Linq to SQL, Entity Framework (appelé parfois Linq to Entities) ou encore ADO.NET Data Services. La seule réponse à retenir est que ces technologies ne sont que de nouvelles briques venant surplomber la technologies ADO.NET, qui reste la seule capable d'attaquer une base de données. Pour reprendre les termes de Mitsu, il n'est absolument pas choquant de voir employer du code ADO.NET (si si souvenez vous, SqlConnection conn = new [...], DbDataReader et compagnie) dans une application Linq to SQL.
ADO.NET Data Services
Cette technologie permet d'exposer très simplement le contenu d'une base de données via des webservices. La tendance actuelle du monde du développement (et pas spécifiquement Microsoft) est au Cloud Computing, littéralement traduit "l'informatique sur Internet". Cette technologie intervient donc dans cette direction. Utiliser un seul est même service d'accès aux données que vous développiez une application riche (Winforms, WPF, Silverlight) ou Web (ASP.NET). L'utilité de celle-ci est encore plus accentuée avec le monde du web 2.0 et le système d'appel de services en JavaScript via ASP.NET AJAX.
LINQ to SQL
LINQ to SQL est un outil de mapping objet-relationnel. Le gouffre entre les mondes relationnels et orienté objet a longtemps été une problématique lors de la conception d'un projet : dans quel sens prendre le problème, doit on adapter la base à notre modèle objet ou l'inverse ? Tant de questions qui ont fait s'arracher les cheveux aux développeurs...Linq to SQL apparaît comme une première approche de solution tout en restant un mapping fort dépendant d'un schéma d'une base de données, mais autorisant tout de même quelques libertés comme le choix du nom des entités et des relations par exemple. Le principal inconvénient de LINQ est qu'il reste liée à un schéma spécifique. Il en reste du moins un outils ORM (Object Relational Mapping) très puissant et permet notamment des gains de productivité énormes.
Entity Framework
On entend beaucoup parler de cette technologie en ce moment. En effet, sorti en RTM avec le Service Pack 1 du .NET Framework 3.5 il y a seulement quelques mois, Entity Framework fait parler de lui. Il est comme Linq to SQL, un outil de mapping objet-relationnel. Cependant il existe de nombreuses différences entre eux. Une première limitation en moins, le framework Entity ne fonctionne pas exclusivement avec Sql Server, des connecteurs seraient en cours de développement pour Oracle, Db2 et MySQL (affaire à suivre).
De plus, Entity Framework est plus qu'un simple framework ORM, puisqu'il n'est pas figé à un schéma précis de base de données. En effet, il offre des fonctionnalités qui permettent de faire abstraction de la définition réelle de la base de données liée. Vous pouvez concevoir des entités qui réunissent plusieurs tables ou l'inverse, plusieurs entités mappées a une partie des colonnes d'une table. L'exemple flagrant cité par Mitsu est celui de la table Civilité (Monsieur, Madame, Mademoiselle). Classiquement, nous récupérions notre client, et sa civilité, à l'aide d'une jointure. Avec Entity Framework, nous allons pouvoir faire en sorte de retrouver une propriété Civilité directement dans la classe Client, est sous forme de chaîne de caractères.
Le schéma du modèle avec lequel vous travaillez grace à Entity Framework est défini dans un fichier XML, ce qui lui permet sa flexibilité et son indépendance face à la base de données.
Visual Studio 2008 : boîte à outil du développeur
Je ne pense pas vous apprendre grand chose en affirmant ici que Visual Studio est et restera l'outil du développeur. En revanche, il tend à devenir l'outil collaboratif par excellence en matière de gestion de projet. Eric Le Loc'h et Noham Choulant qui co-annimaient cette session ont commencé par un tour d'horizon rapide sur l'offre Visual Studio Team System.Du développeur au DBA, en passant par le tester ou l'architecte l'IDE se veut la solution en matière de travail collaboratif. Le tout étant aggrégé dans un serveur central : Team Foundation Server.
La session s'est ensuite orienté sur un aspect encore trop peu connu du monde du développement : les tests unitaires. En effet, c'est au travers de nombreuses démonstrations qu'Eric et Noham nous ont montré la puissance de Visual Studio dans ce domaine. Analyse statique, métrique de code, tests de méthodes (résultat, temps d'éxécution...) une bonne partie a été passée en revue!
Visual Studio propose en effet des outils permettant de faire du profiling et du suivi sur vos applications, notamment la possibilité de programmer des tests unitaire sur Team Foundation Server pour vérifier qu'un test ayant été réussi le soit toujours au fil du temps. Les deux protagonistes ont aussi insister sur la qualité des données fournies lors des tests. C'est ici qu'intervient la notion de couverture de code. En effet, un test peut être réalisé avec succès, mais ce résultat ne sera fiable que si la couverture du code tend vers les 100%, c'est à dire que toutes les parties du code (conditions, switch...) ont été testées. Pour cela Visual Studio offre un outil, Data Generation Plan, permettant de générer des données dans vos bases afin de rendre les tests plus réalistes et plus complets.
Eric Le Loc'h a aussi rappelé les annonces faites au début du mois, notamment la sortie futur de Visual Studio 2010 (qui proposera un exécutable de testing en WPF plutot que d'avoir à installer l'artillerie lourde sur des postes clients) mais aussi le choix de Microsoft de fusionner les éditions Team System Developper Edition et Team System Database Professional.
Première application avec Silverlight 2
Animée par Pierre Lagarde, cette session m'a beaucoup intéressée. En effet, je n'avais jamais réellement vu à quoi ressemble Silverlight 2 et je ne possédait qu'un bref aperçu de la technologie en version 1, qui dans mon souvenir reposait sur le langage JavaScript. Je dois avouer avoir été agréablement surpris par Silverlight, pour ne pas dire conquis. Ayant fait pas mal de WPF cet été et m'orientant de plus en plus vers le web, je me suis vraiment retrouvé dans cette technologie.
La session à surtout été pratique (logique vu son nom, vous me direz
). Il a bien évidemment été rappelé la sortie de Silverlight 2 en RTW la semaine dernière ce qui devrait inciter le monde professionnel à s'y mettre, ayant à présent en possession une version stabilisée. En soit la technologie ne semble pas compliquée. On installe les Silverlight Tools for Visual Studio SP1, on crée notre projet Silverlight, et l'on se retrouvre à manipuler des interfaces graphiques en XAML (via Visual Studio 2008 SP1 ou Expression Blend 2 SP1) et du code behind en C# (pour ma part).
Pour conclure, je dirai que ce fût une après-midi très intéressante et enrichissante. Pas forcément au niveau technique pur, les sessions n'étant pas très poussées, mais au niveau vue d'ensemble des possibilités offertes par la plateforme Microsoft .NET.
A demain pour de nouvelles aventures