Les nouveautés de Visual Studio 2010

| Philippe Vialatte | Jérôme Lambert |

Les nouveautés de Visual Studio 2010 fait partie d'une suite d'articles écrits par l'équipe .NET de Developpez.com et destinés à vous faire découvrir les nouveautés en ce qui concerne Visual Studio 2010, le .NET Framework 4, les langages C# et VB.NET, ainsi que les technologies associées comme WPF 4, ASP.NET 4, WF 4, WCF 4, Entity Framework 4 et autres nouveautés autour de la plateforme .NET.

Pour le téléchargement de Visual Studio 2010 bêta 2, reportez-vous au chapitre « Téléchargements ».

N'hésitez pas à laisser votre avis sur le contenu de l'article directement via notre forum : Commentez ♪

- Titre : Les nouveautés de Visual Studio 2010

- Auteurs : Philippe Vialatte, Jérôme Lambert

- Parution : 5 novembre 2009

- Mise à jour : 10 novembre 2009

- Licence : Copyright ® 2009 www.developpez.com. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Les différentes versions de Visual Studio 2010

- III. Nouveautés de Visual Studio et de l'éditeur de Code

- III-A. Gestion des projets récents

- III-B. Multitargeting du Framework .NET

- III-C. Recherche de projets

- III-D. Amélioration de la navigation et de l'éditeur de code

- III-D-1. Gestion du multiécrans

- III-D-2. Zoom du code

- III-D-3. Amélioration de l'Intellisense

- III-D-4. Navigate To

- III-D-5. Highlighting References

- III-D-6. Call Hierarchy

- III-D-7. Generate From Usage

- III-D-8. Intellisense Suggestion Mode

- III-E. Le mode de débogage IntelliTrace

- III-F. Le nouveau système d'extension de Visual Studio : Extension Manager

- IV. Nouveaux outils de gestion de projet

- V. Améliorations du développement web

- V-A. Dernières versions des différents frameworks

- V-A-1. ASP.NET Webforms version 4

- V-A-2. ASP.NET MVC Version 2

- V-A-3. Dynamic Data

- V-A-3-a. Activer Dynamic Data pour un projet existant

- V-A-3-b. Nouveaux modèles

- V-A-3-c. Syntaxe déclarative du contrôle DynamicDataManager

- V-A-4. ASP.NET Chart Control

- V-B. Améliorations de l'éditeur

- V-B-1. Amélioration de l'Intellisense Javascript

- V-B-2. Support des Code Snippets

- V-B-3. Compatibilité CSS accrue

- V-C. Nouveaux modes de déploiement

- V-C-1. Paquetages web

- V-C-2. Transformation de Web.Config

- V-C-3. Publication en un clic (One-Click Publishing)

- V-D. Autres nouveautés

- V-D-1. Web.Config allégé

- V-D-2. Nouveaux modèles de projets

- V-D-3. Vue optimisée pour le code

- VI. Améliorations du développement d'applications riches

- VI-A. WPF 4.0

- VI-A-1. Améliorations du designer

- VI-A-2. Support de Windows 7

- VI-A-3. De nouveaux contrôles

- VI-A-4. Améliorations du rendu graphique

- VI-A-5. Autres améliorations

- VII. Silverlight

- VII-A. Designer Silverlight

- VII-B. Intégration de Silverlight 3

- VIII. Développement d'applications Sharepoint

- VIII-A. Déploiement, Package et Features

- VIII-B. SharePoint Explorer

- VIII-C. Modèles de projet et de fichiers

- IX. Support des nouvelles fonctionnalités du langage

- X. Liens Utiles

- XI. Téléchargements

I - Introduction

Visual Studio s'est imposé très vite comme l'outil numéro un pour le développement d'applications utilisant la plateforme .NET de Microsoft et de ses différentes solutions. Tout développeur a les moyens de développer des applications de types différents comme des applications bureautiques, web, office, mobile et dernièrement « on the cloud » avec Windows Azure en utilisant les mêmes langages et tout cela dans le même environnement de développement qu'est Visual Studio.

Avec cette version 2010 de Visual Studio, Microsoft nous offre un large panel de nouveautés autant du point de vue des technologies ; ASP.NET 4, ASP.NET MVC 2, WPF 4.0, Silverlight 3, Sharepoint, etc. ; que des langages avec C# 4, VB.NET 11, F#, mais aussi de l'éditeur de code (réécrit par la même occasion avec la technologie WPF), du système de débogage et de l'architecture de vos applications.

Au cours de cet article, nous vous présenterons les nouveautés majeures liées à Visual Studio 2010.

Pour le téléchargement de Visual Studio 2010 bêta 2, reportez-vous au chapitre « Téléchargements ».

Visual Studio 2010 étant proche de la version finale, Microsoft a mis en place un formulaire pour recueillir le feedback des utilisateurs. Si vous voulez faire entendre votre avis sur cette dernière version de Visual Studio 2010, pensez à le donner, la qualité de la version finale en sera que meilleure. Le formulaire à remplir.

II - Les différentes versions de Visual Studio 2010

Depuis les premières versions de Visual Studio, Microsoft tente de répondre aux différents besoins des professionnels de l'informatique en proposant différentes versions de l'IDE. Visual Studio n'est évidemment pas uniquement un éditeur de code destiné aux développeurs, c'est une plateforme où les différents intervenants (développeurs, chefs de projets, testeurs, etc.) en charge d'un projet logiciel vont pouvoir collaborer tout au long du développement d'un projet.

Si on jette un œil sur les versions actuelles de Visual Studio 2008 disponibles pour les non-abonnés et abonnés MSDN confondus, nous avons ceci :

- La gamme Express composée de :
- Visual Web Developer 2008 Express Edition,
- Visual Basic 2008 Express Edition,
- Visual C# 2008 Express Edition,
- Visual C++ 2008 Express Edition ;

- Visual Studio 2008 Standard Edition ;

- Visual Studio 2008 Professional Edition ;

- Visual Studio 2008 Professional Edition avec MSDN Professional ;

- Visual Studio 2008 Professional Edition avec MSDN Premium ;

- La gamme Team System composée de :
- Visual Studio Team System 2008 Architecture Edition avec MSDN Premium,
- Visual Studio Team System 2008 Database Edition avec MSDN Premium,
- Visual Studio Team System 2008 Development Edition avec MSDN Premium,
- Visual Studio Team System 2008 Test Edition avec MSDN Premium,
- Visual Studio Team System 2008 Team Suite avec MSDN Premium (cette version englobant les versions précédentes).

Microsoft a mis à disposition un document de comparaison entre les différentes versions du produit Visual Studio 2008. Il est téléchargeable à l'adresse suivante : http://www.microsoft.com/downloads/details.aspx?FamilyId=727BCFB0-B575-47AB-9FD8-4EE067BB3A37&displaylang=en%20.

Au vu des différentes versions disponibles de Visual Studio 2008, on peut comprendre que le choix n'est pas toujours facile. Les différences entre versions peuvent être minimes comme entre les versions « Visual Studio 2008 Standard Edition » et « Visual Studio 2008 Professional Edition » où la version professionnelle permet en plus de faire du développement Office et fournit de base un ensemble d'outils pour faire des tests. Quant à la gamme Team System, on imaginera avoir souvent besoin d'au moins deux ou trois des produits de la gamme et on finira souvent par privilégier la version complète « Visual Studio Team System 2008 Team Suite ».

Avec Visual Studio 2010, Microsoft a décidé de simplifier les choses en proposant une nouvelle ligne de produits (les versions Express étant gratuites, elles ne sont pas donc pas reprises) :

- Visual Studio 2010 Professional : la version de base de Visual Studio permettant aux développeurs de développer leurs applications web, windows, office, etc. (disponible sans abonnement MSDN) ;

- Visual Studio 2010 Professional avec MSDN : la version de base de Visual Studio permettant aux développeurs de développer leurs applications web, windows, office, etc. (avec abonnement MSDN) ;

- Visual Studio 2010 Premium avec MSDN : la version rassemblant les outils dédiés aux différents axes d'un projet : architecture, base de données, développement et test (avec abonnement MSDN) ;

- Visual Studio 2010 Ultimate avec MSDN : la suite étendue pour la gestion du cycle de vos applications pour vous assurer une qualité accrue du design jusqu'au déploiement (avec abonnement MSDN).

Rassurez-vous, il ne s'agit absolument pas de nouveaux types de versions avec des packagings totalement différents par rapport à Visual Studio 2008. Pour preuve le tableau récapitulatif entre les différentes versions de Visual Studio 2008 et 2010 :

Pour les informations détaillées de la nouvelle ligne de produits Visual Studio 2010, rendez-vous sur la page officielle de Visual Studio de Microsoft : http://www.microsoft.com/france/visualstudio/products/2010/default.mspx.

III - Nouveautés de Visual Studio et de l'éditeur de Code

III-A - Gestion des projets récents

Une petite nouveauté dans l'écran « Starter Page » après le démarrage de Visual Studio 2010 est la gestion des projets récents. Un menu contextuel est disponible au niveau de projet afin de l'ouvrir dans Visual Studio, ouvrir le projet dans votre explorateur windows ou tout simplement le retirer de la liste des projets récents.

Vous pouvez aussi remarquer sur la capture d'écran ci-dessus une punaise au niveau du projet permettant de marquer notre projet comme persistant dans la liste des projets récents. Simple, mais efficace !

III-B - Multitargeting du Framework .NET

Tout comme dans Visual Studio 2008, il est possible de choisir la version du Framework .NET que l'on désire utiliser pour un projet. Vous pourrez donc continuer vos projets 2.0, 3.0 et 3.5 directement dans Visual Studio 2010 sans aucun problème de compatibilité.

Vous pouvez remarquer dans la capture d'écran ci-dessus l'élément « More Framework… » dans la liste des Framework disponibles, ce qui laisse penser qu'il sera possible d'ajouter le support d'autres versions du Framework .NET dans le futur. Par exemple une future version .NET Framework 4 SP1 ?!

III-C - Recherche de projets

Voici encore une nouveauté qui ne mange pas de pain, mais qui va permettre d'aller plus vite dans la création de projets. Dans la fenêtre de création d'un projet, il est à présent possible de faire une recherche sur base de tous les templates projets installés.

Le même type de recherche est disponible pour l'ajout d'un élément à votre projet.

III-D - Amélioration de la navigation et de l'éditeur de code

III-D-1 - Gestion du multiécrans

Dans Visual Studio 2008 et les versions antérieures, il était impossible de déplacer la fenêtre d'affichage de vos documents et designers que ce soit à l'intérieur ou à l'extérieur de l'environnement de Visual Studio. Cette absence de fonctionnalité pouvait vite apparaître comme frustrante pour l'utilisateur étant donné qu'il était possible de docker les autres fenêtres où on voulait dans l'environnement voir les disposer même à l'extérieur (comme exemples, les fenêtres Toolbox, Solution Explorer, Debug, Properties, etc.).

Avec la nouvelle version de Visual Studio 2010, il est à présent possible de déplacer vos fenêtres où vous le désirez que ce soit à l'intérieur de Visual Studio qu'à l'extérieur et même sur un autre écran. Ainsi, vous pouvez adapter votre environnement pour satisfaire au mieux vos besoins. Pour profiter de cette nouvelle fonctionnalité, rien de plus facile, il vous suffit de glisser-déposer l'onglet de votre fenêtre où vous voulez ou bien double-cliquer sur l'onglet afin de désolidariser la fenêtre de Visual Studio. En plus de cela, Visual Studio sauvegarde votre configuration afin d'afficher la même disposition des fenêtres lorsque vous rouvrirez votre projet.

III-D-2 - Zoom du code

Lorsque vous êtes dans une fenêtre d'édition de code, il vous est surement déjà arrivé de vouloir augmenter temporairement la taille de la police pour une présentation par exemple. Les possibilités pour réaliser cette action n'étaient pas des plus directes, car il fallait passer par les options de Visual Studio ou encore utiliser la loupe. À présent, un système de zoom rapide est intégré dans les fenêtres d'édition de code de Visual Studio. Pour cela, il suffit d'utiliser la touche ctrl combinée à la molette de votre souris (vers le haut pour zoomer, vers le bas pour dézoomer).

III-D-3 - Amélioration de l'Intellisense

L'Intellisense de Visual Studio 2010 a été grandement améliorée afin de répondre au mieux à nos demandes quotidiennes.

Lorsque vous tapez du code dans votre éditeur de code et que par exemple vous voulez atteindre un objet, vous n'avez qu'à écrire les premières lettres et l'Intellisense va vous proposer tous les éléments accessibles qui commencent par ce que vous avez entré. À présent, l'Intellisense de Visual Studio 2010 vous proposera tous les éléments qui contiennent l'entrée que vous avez saisie.

III-D-4 - Navigate To

La recherche rapide a aussi été grandement améliorée. Là, on devait se contenter d'une recherche qui nous proposait les résultats l'un à la suite de l'autre (ctrf+f), Visual Studio 2010 nous propose une fenêtre de recherche intelligente nous proposant en direct tous les résultats correspondants dans notre solution en spécifiant pour chaque résultat son type (variable membre, constructeur, méthode, propriété, événement, etc.).

D'ailleurs, la recherche ne se limite pas à trouver les éléments contenant la recherche entrée.

Comme vous pouvez le voir, j'ai entré la recherche « IC » et la méthode « InitializeComponent » a bien été trouvée. Tout comme une recherche dans l'explorateur de Windows, il est aussi possible d'utiliser le caractère « * ».

Afin de vous faire économiser quelques minutes de recherche, ce nouveau système de recherche est accessible via le raccourci crtl+, ou via le menu « Edit/Navigate To… ».

III-D-5 - Highlighting References

Lorsque vous êtes dans le code d'un fichier, il n'est pas toujours évident de repérer toutes les références à une méthode ou une variable. À présent, lorsque vous sélectionnez un élément de votre code, toutes les références associées sont surlignées.

Ce système de mise en évidence inclut les noms de classes, d'objets, de variables, méthodes et propriétés.

III-D-6 - Call Hierarchy

Un problème récurrent lorsqu'on arrive à des projets de grande envergure avec des centaines de classes et de nombreux projets dans la solution, c'est de déterminer quels sont les appels effectués vers un élément (méthode, propriété, variable membre, etc.) de notre code. On a bien évidemment notre « Find All References », mais il faut avouer qu'il n'offre pas une vue globale et claire dans le résultat. Maintenant, vous pouvez connaître la hiérarchie des appels vers un élément du code.

Pour cela, il suffit de se placer par exemple sur une méthode, de faire clique-droit et choisir l'option « View Call Hierarchy ».

Une fenêtre « Call Hierarchy » apparaîtra et vous affichera tous les appels vers notre méthode, mais aussi tous les appels à partir de notre méthode.

De plus, la navigation des appels ne se limite pas à l'élément de départ, mais bien à tous les éléments rencontrés dans la hiérarchie.

Si vous avez fait attention à la capture d'écran précédente, la recherche ne se limite pas à l'ensemble de la solution. Vous pouvez donc limiter votre recherche au projet ou document courant.

III-D-7 - Generate From Usage

« Generate From Usage » vous permet d'utiliser des classes ou des membres avant de les avoir définis. Avec Visual Studio 2008, la fonctionnalité était déjà présente pour les méthodes et à présent, elle est disponible pour les classes, constructeurs, propriétés, variables membres ou encore énumérations que vous voudrez utiliser sans pour autant les avoir écrits. Dans ces cas, un smart tag bleu apparaîtra en dessous de votre élément pour vous proposer de générer le code nécessaire.

Voici un exemple avec l'utilisation d'une méthode non définie avec deux arguments et un paramètre de retour :

Un autre exemple d'une variable membre dont le type est déterminé par la valeur qu'on essaye d'affecter :

Et un dernier exemple avec l'utilisation d'un constructeur avec un paramètre qui n'existe pas encore :

III-D-8 - Intellisense Suggestion Mode

Lors de l'utilisation de l'éditeur de code de Visual Studio, vous n'avez pas pu passer à côté du mode de complétion fourni par l'Intellisense. Lorsque vous voulez connaître les membres d'une variable par exemple, l'éditeur vous les affiche automatiquement (dans le cas contraire, le raccourci ctrl+espace est là). Il vous suffit ensuite de saisir les premières lettres du membre qui vous intéresse et vous êtes placés directement sur l'élément correspondant à votre entrée.

Visual Studio 2010 introduit un nouveau mode au sein de l'Intellisense : le mode suggestion. Le but est le même que sur nos moteurs de recherche, c'est-à-dire de proposer les membres qui correspondent le mieux à notre entrée. Pour activer ce mode, il suffit d'utiliser le raccourci ctrl+alt+space.

Cette amélioration couplée à la nouveauté Generate From Usage peut améliorer grandement votre productivité. Si on reprend l'exemple précédent en précisant que nous voulons utiliser une méthode nommée « TextToDisplay », on remarque que notre recherche en mode suggestion ne contient pas de méthode de ce nom alors qu'on a écrit que trois lettres (« tex »). On va donc pouvoir écrire la fin de notre nouvelle méthode pour ensuite générer la méthode rapidement grâce à « Generate From Usage ».

III-E - Le mode de débogage IntelliTrace

Visual Studio 2010 Ultimate introduit un nouveau mode pour le débogage : IntelliTrace. Avec le mode de débogage traditionnel, vous pouvez connaître l'état de votre application à un moment donné, que ce soit l'état de la mémoire, de vos variables, la pile des appels, etc. Cependant, lorsque vous vous trouvez à un endroit donné dans votre application, comment faites-vous pour savoir ce qui s'est passé précédemment ? Par quelles méthodes votre code est-il passé ? Quel était l'état de vos objets ? À part arrêter votre application et la redémarrer, il n'est pas possible de répondre à ces questions. Le mode de débogage IntelliTrace va vous permettre de revoir les événements générés dans le passé, mais aussi de connaître le contexte d'exécution au moment où chaque événement s'est produit.

Lorsque vous lancez votre application via Visual Studio 2010, IntelliTrace enregistre tous les événements générés dès le départ, cela vous permet de passer du mode débogage normal au mode débogage IntelliTrace et inversement.

Durant une session de débogage, IntelliTrace crée un fichier (extension « .tdlog ») où toutes les données de débogage seront collectées. Grâce à ce fichier, vous allez pouvoir revoir tous les événements qui se sont produits lors de l'exécution de l'application. L'outil Test and Lab Manager destiné au testeur est capable aussi de générer un tel fichier, ce qui signifiera que dans le futur, un testeur pourra tester votre application et après constatation d'un problème, il lui sera possible de vous envoyer le fichier généré lors de la session d'exécution afin que vous puissiez identifier beaucoup plus facilement ce qui s'est passé dans l'application lors du test.

Par défaut, votre application est configurée sous Visual Studio pour n'enregistrer que les événements, ce qui a un effet très faible au niveau des performances. Cependant, il vous est possible d'aller plus loin pour que IntelliTrace enregistre en plus tous les appels de méthodes, les paramètres passés à ces méthodes, les valeurs de retour. Ce mode complet aura évidemment un effet plus important au niveau des performances.

Au niveau de Visual Studio 2010 Ultimate, la configuration de IntelliTrace se fait au niveau des options. Les options vous permettront de saisir les options suivantes :

- activer ou non le mode dé débogage IntelliTrace ;

- enregistrer les événements avec en option les appels et leur contexte ;

- définir le répertoire dans lequel les fichiers de la session de débogage sont enregistrés ;

- définir les types d'événements que vous voulez que IntelliTrace enregistre (ASP.NET, WPF, ADO.NET, etc.) ;

- définir les modules ou interdire les modules pour lesquels IntelliTrace collectera des données lors de la session de débogage

En mode débug, une nouvelle fenêtre destinée au mode de débogage IntelliTrace vous permet d'avoir la liste des événements et des appels effectués.

L'éditeur de code a aussi été adapté pour proposer un nouveau jeu d'icônes dans la barre verticale de gauche pour naviguer entre les différents événements enregistrés par IntelliTrace. Dans l'exemple ci-dessous, vous pouvez observer que suite à une exception non interceptée, il a été possible de remonter dans les appels successifs de méthodes et de voir que le contexte d'exécution change en conséquence (voir la variable « i » qui reprend sa valeur d'origine).

Pour l'instant, le mode IntelliTrace est disponible pour les langages C# et VB.NET avec les .NET Framework 2.0, 3.0, 3.5 et 4. Il n'est donc pas possible d'utiliser ce mode avec C++, des scripts ou d'autres langages. En ce qui concerne F#, le mode IntelliTrace n'est disponible qu'en version basique. Au niveau des applications, vous pouvez déboguer les applications utilisant ASP.NET, Win Forms, WPF, WCF et WF. IntelliTrace ne supporte pas le débogage des applications Silverlight, Xbox, SharePoint et Windows Mobile.

III-F - Le nouveau système d'extension de Visual Studio : Extension Manager

Pour la plupart des développeurs, Visual Studio est un éditeur de code, riche en fonctionnalités diverses et variées dont nous avons beaucoup parlé précédemment rien que pour cette mouture 2010, mais ça ne reste qu'un éditeur de code.

Une des grandes nouveautés sur laquelle Microsoft s'est penché avec Visual Studio 2010 est de ne plus considérer Visual Studio comme un éditeur de code, mais plutôt comme une plateforme facilement extensible. Le but est d'apporter une nouvelle expérience aux développeurs pour qu'ils puissent configurer et améliorer leur Visual Studio comme bon leur semble.

Tout commence dans le menu « Tools » de Visual Studio 2010 où vous allez pouvoir lancer l'outil Extension Manager. Cet outil va vous permettre de télécharger et installer des extensions disponibles en ligne. Vous pouvez dès à présent trouver des extensions proposées par Microsoft ou bien tout simplement par des utilisateurs de Visual Studio. Ces extensions vont du contrôle (ASP.NET, Silverlight, WPF…) aux templates en passant par des outils de déploiement, documentation ou encore de test.

IV - Nouveaux outils de gestion de projet

Dans cette partie, vous allez voir que Microsoft a introduit une suite d'outils de modélisation et visualisation au sein de Visual Studio Ultimate centrés sur l'architecture de vos applications. Si vous êtes un utilisateur de la version Architecture de Visual Studio Team System 2008, vous devriez retrouver pas mal d'outils que vous connaissiez déjà.

Dans la liste des projets disponibles avec Visual Studio 2010 Ultimate, un nouveau type de projet a fait son apparition sous le nom de « Modeling Project ». À la création, le projet est presque vide.

Le projet étant vide, nous pouvons y ajouter un nouveau diagramme en passant par le menu contextuel « Add / New Item… » via notre projet dans le la fenêtre « Solution Explorer » ou grâce au raccourci « ctrl + shift + A ». Lors de la création d'un nouveau diagramme, vous allez pouvoir créer des diagrammes de classes, de séquences, « use case », d'activités et de composants, sans oublier le « Layer » diagramme et le « Directed Graph Document ». Vous l'avez compris, Microsoft a introduit le support du langage UML (Unified Modeling Language) directement dans Visual Studio Ultimate.

Comme vous pouvez le voir dans la capture d'écran ci-dessus, différents types de diagrammes (entre autres UML) sont disponibles :

- UML Class Diagram ;

- UML Sequence Diagram ;

- UML Use Case Diagram ;

- UML Activity Diagram ;

- UML Component Diagram ;

- Layer Diagram ;

- Directed Graph Document.

Pour chaque diagramme, la fenêtre « ToolBox » propose une liste spécifique d'objets que vous pouvez glisser-déposer sur votre diagramme.

Une nouvelle fenêtre nommée « UML Model Explorer » dans laquelle vous pourrez y retrouver tous les objets liés à vos digrammes.

Vous trouverez ci-dessous quelques exemples d'utilisation des diagrammes directement dans Visual Studio 2010 Ultimate :

V - Améliorations du développement web

Comme dans chaque nouvelle édition de Visual Studio, cette version contient de nombreuses améliorations pour les développeurs d'applications sur le web.

Dans ce chapitre, on va voir qu'au contraire de ce qu'ont pu penser un certain nombre de développeurs, ASP.NET MVC et Silverlight n'ont pas « tué » les formulaires web ou Ajax, mais que toutes les briques logicielles du développement web orienté HTML ont vu leur lot d'améliorations.

V-A - Dernières versions des différents frameworks

Visual Studio 2010 permettra dès sa livraison à la fois le développement de formulaires web avec la version 4 du framework ASP.NET Webforms, mais contiendra aussi tout le nécessaire pour développer des applications avec le framework ASP.NET MVC. De plus, il contiendra la dernière version du framework AJAX de microsoft, récemment rebaptisé Microsoft Ajax Library.

V-A-1 - ASP.NET Webforms version 4

Le framework Webform a été un certain nombre de fois annoncé comme étant abandonné par Microsoft au cours des derniers mois, suite à la mise à disposition du Framework MVC, de nombreux développeurs craignant (ou espérant) que MVC allait prendre la place de Webform au même titre que WPF a graduellement grignoté WinForm.

La sortie de la version 4 du Framework prouve qu'il n'en est rien, cette version apportant un beau nombre de nouveautés.

- La gestion du routage natif : le routage permet de définir des URL plus faciles à utiliser et à retenir pour les utilisateurs. Ces URLS construites sont plus descriptives du contenu, et permettent donc un meilleur référencement.

- Un contrôle plus fin du ViewState : le Viewstate propose l'avantage de persister un ensemble d'informations du côté client. Cependant, les versions précédentes de Webform ne permettaient pas un contrôle très fin du Viewstate. Désormais, l'activation ou la désactivation du ViewState peut se gérer individuellement au niveau de chaque contrôle

- Le support de nouveaux navigateurs : Webform 4 gère le support natif, entre autres, de Chrome, des BlackBerry et de l'iPhone. De plus, il est désormais possible de facilement customiser le support de ces navigateurs, voire de définir de nouveaux navigateurs.

- Un meilleur contrôle des Id côté client : historiquement, pour assurer l'unicité des ID côté client, Webforms les redéfinissait, en les préfixant par l'ID des conteneurs parents s'il en existait. Il est désormais possible d'indiquer que les ID doivent rester les mêmes côtés client que côté serveur, ce qui simplifie le développement de Javascript.

- Capacité d'affecter les balises Meta : on peut désormais modifier les balises Méta depuis le code-behind, grâce aux propriétés Page.MetaKeywords et Page.MetaDescription.

- Plus de contrôle sur le HTML généré par certains contrôles web.

- Un support amélioré des standards du web.

- Un nouveau moyen de filtrer les sources de données.

V-A-2 - ASP.NET MVC Version 2

Visual Studio sera la première version de Visual Studio à proposer en standard le framework ASP.NET MVC. La version 2 du framework sera en effet incluse dès l'installation.

Cette version contient entre autres les nouveautés suivantes :

- Areas : les Areas (zones ?) permettent de regrouper les contrôleurs et les vues d'une application MVC, de façon à construire des « sous-sites » dans le site, sans avoir besoin de créer de sites supplémentaires ;

- Helpers fortement typés : le framework propose de créer des liens d'actions et des champs de formulaire de façon fortement typée, ce qui permet une vérification à la compilation ;

- Modèles d'édition (Templated Helpers) : il est désormais possible de définir des modèles d'édition et d'affichage pour des types donnés, et de les utiliser grâce aux fonctions Html.EditorFor et Html.DisplayFor ;

- Actions de contrôleur asynchrones : permet d'utiliser un modèle de programmation asynchrone pour les actions de contrôleur ;

- Support des DataAnnotations : il est désormais possible d'utiliser les annotations originellement issues de Dynamic Data et RIA Services. Ces annotations peuvent, de plus, être facilement propagées jusqu'au niveau client si nécessaire.

V-A-3 - Dynamic Data

Dynamic Data à été introduit avec le SP1 du framework 3.5. Ce framework a pour but de faciliter la création d'applications web basées sur des bases de données avec ASP.NET de façon simple, en convertissant l'exécution du modèle de données en un ensemble de contrôles. Il est ainsi facile de générer une interface de gestion de base de données sans code, ou en retravaillant très peu d'éléments.

Les versions précédentes de Dynamic Data présentaient un certain nombre de limitations, lesquelles ont été réduites avec la version qui sera fournie avec Visual Studio 2010. De nouvelles fonctionnalités font aussi leur apparition.

V-A-3-a - Activer Dynamic Data pour un projet existant

Entre autres restrictions, utiliser Dynamic Data avec le SP1 du framework 3.5 nécessitait que le projet ait été créé à partir d'un modèle de projet spécifique (Dynamic Data Web Application ou Dynamic Data Entities Web Application ). Il était de plus nécessaire d'utiliser Entity Framework ou LINQ to SQL, et de n'utiliser, comme source de données, uniquement les contrôles EntityDataSource ou LinqDataSource.

La nouvelle version du framework permet désormais d'ajouter Dynamic Data à une application existante simplement, en utilisant la méthode d'extension EnableDynamicData sur un contrôle de données. Concrètement, cela veut dire que, pour un contrôle d'affichage de données, une GridView par exemple, on pourra utiliser les fonctionnalités de validation automatique simplement en faisant :

GridView1.EnableDynamicData(typeof(Product));

On pourra, de plus, fournir des valeurs par défaut en passant un objet préinitialisé en second argument de la fonction.

V-A-3-b - Nouveaux modèles

Deux nouveaux modèles sont inclus, l'un permettant de gérer des champs de « type » URL et adresse e-mail. En pratique, si on ajoute un attribut [DataType(DataType.EmailAddress)], ou [DataType(DataType.URL)], les champs en question seront respectivement rendus côté serveur en utilisant les modèles contenus dans les fichiers EmailAddress.ascx ou Url.ascx.

V-A-3-c - Syntaxe déclarative du contrôle DynamicDataManager

Le contrôle DynamicDataManager a été amélioré, de façon à ce qu'il puisse être défini déclarativement, dans le code XHTML de la page.
Les balises à utiliser pour ce faire sont les suivantes :

<asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
AutoLoadForeignKeys="true">
<DataControls>
<asp:DataControlReference ControlID="lvwClient" />
</DataControls>
</asp:DynamicDataManager>
<asp:ListView id="lvwClient" runat="server"
</asp:ListView>

Ce code permet de définir que le comportement du contrôle GridView1 est géré par Dynamic Data.

V-A-4 - ASP.NET Chart Control

La bibliothèque de génération de graphiques ASP.NET Chart Control est désormais incluse en standard. Cette bibliothèque permet de générer facilement des graphiques au look très professionnel, et des comportements dynamiques.

V-B - Améliorations de l'éditeur

Le Concepteur web, comme les autres éditeurs de la version 2010, profite de nouvelles améliorations par rapport aux versions précédentes.

V-B-1 - Amélioration de l'Intellisense Javascript

La gestion de l'Intellisense Javascript a été grandement améliorée avec Visual Studio 2010. En effet, en plus de proposer les variables et fonctions javascript redéfinies par l'utilisateur, l'Intellisense reconnait désormais les objets générés dynamiquement.

En interne, de gros efforts ont été faits sur la performance, de façon à pouvoir analyser rapidement les scripts disponibles depuis une page donnée. La compatibilité du moteur d'analyse a été revue, de façon à ce que la plupart des bibliothèques Javascript du marché puissent être supportées.

Enfin, comme c'est le cas dans le code-behind, les commentaires Javascript sont désormais pris en charge dans l'Intellisense.

V-B-2 - Support des Code Snippets

La gestion des « Code Snippets » est une fonctionnalité améliorant beaucoup la productivité des développeurs pour des tâches répétitives, telles que, par exemple, compléter le squelette d'une boucle For/Foreach dans le code behind.

Cette fonctionnalité n'était auparavant disponible que dans l'éditeur de code C# ou VB.NET, mais a, dans Visual Studio 2010, été étendue au code HTML/ASP.NET et même Javascript. Non seulement il est possible de définir de Snippets, mais Visual Studio 2010 contient plus de 200 Snippets spécifiques au développement web.

V-B-3 - Compatibilité CSS accrue

La compatibilité avec la norme CSS 2.1 a été améliorée dans la vue conception de l'éditeur web.

Pour permettre le respect de cette norme, l'architecture du concepteur a été revue, ce qui rendra à l'avenir les évolutions plus simples (qui a demandé la date de gestion de HTML 5 ?), tout en améliorant la robustesse et le respect du code HTML.

V-C - Nouveaux modes de déploiement

Le déploiement de sites web en production a souvent été un peu problématique, car pas assez souple. Pour pallier cet état de choses, de nouveaux modes de déploiement spécifiquement conçus pour le web ont été intégrés à Visual Studio.

V-C-1 - Paquetages web

Les paquetages web (web Packages) sont en fait des fichiers zip générés depuis l'utilité de déploiement de sites web de IIS, MsDeploy. Ils contiennent, en dehors du site web compilé, les bases de données SQL nécessaires, les paramètres du serveur IIS, ainsi que tous les composants à déployer dans le GAC, et autres paramètres de sécurité.

Ces paquetages peuvent facilement être déployés sur n'importe quelle machine, et se génèrent directement depuis Visual Studio.

V-C-2 - Transformation de Web.Config

Un des défis de la mise en production est de ne pas oublier de modifier le Web.Config après publication. Cette tâche, après avoir longtemps été manuelle, est souvent plus ou moins automatisée par des outils tiers.

Il est désormais possible de définir des « profils » de Web.Config, et de les utiliser pour transformer automatiquement les Web.Config de l'application durant la livraison.

V-C-3 - Publication en un clic (One-Click Publishing)

Visual Studio propose désormais de s'interfacer directement avec les outils de gestion distante d'IIS, afin de déployer le site web sur un serveur distant de façon automatique.

En pratique, cette fonctionnalité ressemble à la fonctionnalité de publication existante depuis quelques versions, mais sous le capot, elle prépare en fait une vraie migration, incluant toutes les dépendances nécessaires.

Il est de plus possible de publier sur plusieurs serveurs de façon simultanée, avec toutefois la limite de 50 profils de déploiement dans un projet…soit 50 serveurs publiés simultanément…

V-D - Autres nouveautés

V-D-1 - Web.Config allégé

Le Web.Config a subi un sérieux régime entre deux versions. En effet, le Web.Config par défaut d'une application ASP.NET utilisant le framework 3.5 SP1 atteignait…188 lignes, lui permettant d'ajouter à la CLR 2.0 le support de toutes les nouvelles fonctionnalités apportées par les versions 3.0, 3.5 et 3.5 SP1. La faux en revenait au besoin de ne pas modifier le fichier Machine.Config, lequel règle la configuration par défaut au niveau de la machine.

Avec la sortie de la CLR version 4, toutes les fonctionnalités des versions précédentes, dont celles incluses dans Visual Studio 2010, ont été ajoutées au Machine.Config utilisé par la CLR 4, situé dans le répertoire C:\Windows\Microsoft.NET\Framework\v4.0.21006\Config.

En conséquence, le nouveau Web.Config par défaut a été réduit à 12 lignes, décrites ci-dessous.

<?xml version="1.0"?>
<configuration>

<system.web>
<compilation debug="true">
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>

<configuration>

V-D-2 - Nouveaux modèles de projets

Les modèles de projets web ont été repensés pour permettre à chaque développeur de commencer un projet de la façon dont il l'entend. En effet, si certains préfèrent partir d'un projet minimaliste, de nombreux développeurs préfèrent commencer avec un squelette d'application sur laquelle bâtir de nouvelles fonctionnalités.

C'est avec ces différentes façons de commencer un projet qu'ont été pensés les modèles de projet de Visual Studio 2010. Désormais, lorsque l'on démarre un nouveau projet visant le framework 4.0, il nous est proposé deux types de projets web, à savoir une application web standard (ASP.NET web Application), ou une application web vide (Empty ASP.NET web Application).

Si on crée un projet pour chacun de ces types d'application, on voit tout de suite les différences entre les deux.

Dans le premier cas, on a une application vide, tandis que dans le second cas, on a une application déjà fonctionnelle, incluant JQuery, une page maître, et un ensemble de pages pour gérer les comptes utilisateur.

V-D-3 - Vue optimisée pour le code

Tout comme certains développeurs aiment partir d'un projet vide, certains préfèrent se passer des différents assistants, fenêtres, concepteurs ou autres aides que peut fournir Visual Studio. Pour ces développeurs, un nouveau profil de développement a été développé, à savoir le profil web development (Code Optimized).

Cette vue permet en fait de masquer, entre autres, le concepteur graphique, les fenêtres de propriétés, de boîte à outils, et toutes les barres d'outils.

Cette configuration n'est évidemment pas irréversible, et on peut décider finement quels outils on va pouvoir utiliser et voir apparaître.

VI - Améliorations du développement d'applications riches

VI-A - WPF 4.0

WPF étant désormais la technologie Microsoft de référence pour la création d'interfaces graphiques riches, il était attendu que sa version 4 apporte un lot de nouveautés. Et les nouveautés sont bien là, avec en particulier une attention particulière pour Windows 7.

VI-A-1 - Améliorations du designer

LMe designer de WPF est désormais plus rapide, et plus stable que la version précédente.

VI-A-2 - Support de Windows 7

Windows 7 étant désormais disponible, il fallait s'attendre à ce que la version suivante de WPF puisse tirer pleinement parti des nouveautés apportées par cette version de Windows.

Dans ces nouveautés, on peut trouver :

- le support du multitouch : Windows 7 permettant désormais la gestion du multitouch en natif, WPF peut utiliser les API mutlitouch de 7, ainsi que tous les événements qui s'y rapportent ;

- intégration avec le Shell : les Jump List, ainsi que toutes les fonctionnalités de la barre de tâches peuvent être manipulés par WPF. Ces fonctionnalités incluent les contrôles embarqués sous forme de miniatures, les barres de progression et les icônes en juxtaposition.

VI-A-3 - De nouveaux contrôles

De nouveaux contrôles orientés développement d'applications métiers sont apparus dans WPF 4. Ces contrôles, pour la plupart issus du WPF Toolkit, On trouvera entre autres une grille (DataGrid), et des composants de sélection de dates (DatePicker et Calendar).

De plus, deux téléchargements complémentaires seront disponibles, à savoir le WPF Bag O'Tricks (comprenant les contrôles suivants : AnimatingTilePanel, ColorPicker, InfoTextBox, ListPager, NumericUpDown, Reveal, TransitionsPresenter, TreeMapPanel), et le contrôle de Ruban, qui n'a pas pu être intégré dans le jeu de contrôles livrés avec Visual Studio.

Toujours du point de vue graphique, il est désormais possible, dans une zone de saisie, de customiser la couleur et l'opacité du texte sélectionné (SelectionBrush et SelectionOpacity), ainsi que la couleur du curseur (CaretBrush).

Un contrôle moins « graphique » est inclus, sous la forme d'un correcteur orthographique personnalisé.

VI-A-4 - Améliorations du rendu graphique

Le moteur de rendu graphique de WPF est un peu le cœur de la technologie, et c'est donc sans surprise que le passage à la version suivante apporte un lot de nouveautés.

- Cached Composition : ce mécanisme permet de mettre en cache tous les éléments graphiques rendus par une application sous forme de bitmap, qui peuvent même être manipulés sans être re-rendus. Chaque élément caché peut être rendu de nouveau si son statut change, ce qui permet une augmentation de performances non négligeable.

- Layout Rounding : lorsqu'un élément graphique est rendu, il peut arriver que le moteur de rendu donne à un élément une position calculée en fraction de pixel. Lors du rendu, un algorithme de diffusion est appliqué pour conserver l'aspect graphique de ces éléments, ce qui peut induire des zones floues, ou des artefacts de rendu. Le Layout Rounding permet de forcer le positionnement des contrôles sur des valeurs de pixel entières, ce qui corrige ces artefacts.

- CleartypeHint : ClearType est une technologie de rendu permettant de simuler des courbes sur des écrans à alignement de couleur fixe. Dans les versions précédentes de WPF, dans certaines conditions, le système désactivait ClearType. Désormais, utiliser RenderOptions.ClearTypeHint=« Enabled » permet de forcer l'activation de ClearType dans tous les cas.

- Easing Functions : les fonctions de Easing permettent de créer des animations plus fluides et réalistes. Ces fonctions sont originaires de Silverlight 3, sont au nombre de 11, et des fonctions supplémentaires peuvent être définies si le besoin s'en fait ressentir.

- Pixel Shader 3 : la version 3 du Pixel Shader augmente encore le jeu d'instructions disponibles, le rendant plus souple (et plus compliqué à maitriser ;) )

VI-A-5 - Autres améliorations

Le binding a encore été amélioré pour la version 4 de WPF, et un certain nombre de petites améliorations ont été apportées. Entre autres, le parseur de XAML a été réécrit pour tirer parti de la nouvelle dll System.Xaml.dll. De nombreux bugs ont été corrigés, et de nouveaux scénarios de développement ont été rendus possibles par cette nouveauté.

Avec l'apparition des objets dynamiques et de la DLR, il devient désormais possible d'utiliser le binding sur des objets dynamiques,définis à l'exécution grâce aux objets DynamicObject et à l'interface IDynamicMetaObjectProvider.

Il est désormais possible, grâce au Visual State Manager (VSM), d'appliquer simplement des états aux contrôles, dans le sens état visuel. Le Visual State Manager permet en effet de gérer le look & feel en le définissant dans un modèle.

Enfin, de nouveaux modèles de contrôle ont été ajoutés à WPF 4. Ces modèles sont les suivants :

- ItemsContainerPattern : ce pattern permet de trouver et d'accéder à des contrôles virtualisés ;

- VirtualizedItemPattern : ce pattern permet de forcer la création ou l'apparition d'un contrôle virtualisé ;

- SynchronizedInput : ce pattern permet de vérifier si un événement de saisie est dirigé vers le bon élément.

VII - Silverlight

VII-A - Designer Silverlight

Tous les développeurs SilverLight l'attendaient, c'est désormais chose faite, Silverlight bénéficie enfin d'un vrai concepteur intégré à Visual Studio (fini XamlPad). Le designer SilverLight tire lui aussi parti de toutes les améliorations du designer WPF.

VII-B - Intégration de Silverlight 3

Visual Studio 2010 sera la première version de Visual Studio à permettre le développement Silverlight dès l'installation. Les versions supportées par Visual Studio 2010 seront les versions 2 et 3.

Le Silverlight Toolkit et .NET RIA Services ne seront pas fournis directement dans Visual Studio, mais resteront proposés comme des téléchargements supplémentaires.

Au jour où sont écrites ces lignes, soit avant la PDC 2009, la Roadmap RIA Services n'est pas 100 % claire. Il est possible que cette partie du document change avant la version finale de Visual Studio.

VIII - Développement d'applications Sharepoint

Sharepoint ayant été un franc succès ces dernières années, c'est assez logique que la dernière version de l'IDE comporte des améliorations pour le portail de Microsoft.

VIII-A - Déploiement, Package et Features

Une des principales difficultés des développeurs Sharepoint est le cycle de vie et de déploiement des développements. Cette difficulté devrait être nettement atténuée dans Visual Studio 2010.

En effet, il sera dorénavant possible de déployer facilement les applications, ainsi que de gérer des commandes de pré ou post déploiement, de gérer les pools d'application, mais aussi de créer des étapes personnalisées en étendant Sharepoint

Il est aussi désormais possible d'analyser visuellement le contenu d'une Feature ou d'un Package, grâce respectivement au Feature Designer et au Package Designer.

VIII-B - SharePoint Explorer

Sharepoint Explorer est une nouvelle fenêtre permettant d'avoir une vue du contenu d'un serveur Sharepoint. Cette fenêtre ressemble beaucoup à celle qui était disponible dans Sharepoint Designer, mais permet de visualiser le serveur sans sortir de Visual Studio.

VIII-C - Modèles de projet et de fichiers

De nombreux modèles de projets et de fichiers ont été ajoutés à Visual Studio, pour les deux versions de Sharepoint

On trouve les modèles de projets suivants :

- Sequential Workflows ;

- State Machine Workflows ;

- Event Receivers ;

- Modules (Files) ;

- Business Connectivity Services Model ;

- Content Type ;

- List Definition ;

- Site Definition ;

- Visual web Part ;

- Import SharePoint Solution (WSP) Package ;

- Import Reusable Workflow.

Et les types de fichiers suivants :

- List Instance ;

- web Part

- Application Page ;

- Workflow Association Page ;

- Workflow Instantiation Page ;

- Global Resource.

Les développeurs Sharepoint auront noté avec un certain plaisir le projet de type Visual web Part, qui propose de développer des web parts en mode visuel, ainsi que les templates de pages de workflow.

IX - Support des nouvelles fonctionnalités du langage

De nombreuses nouveautés sont apparues dans la BCL (Base Class Library, ensemble des classes du framework). Deux de ces nouveautés ont déjà été amplement discutées depuis les techdays, à savoir les Code Contracts, qui permettent de définir des contrats et des hypothèses dans le code, dont des pré et postconditions, ou des invariants. La seconde est l'ajout des extensions parallèles, à savoir la TPL (Task Parallel Library), PLinQ (pour Parallel LinQ), permettant de simplifier les développements d'applications basées sur des traitements en parallèle.

De façon plus discrète, on a vu l'apparition de classes utilitaires visant le développement d'applications scientifiques, et gérant entre autres les grands nombres (classe BigInteger), les nombres complexes (classe Complex), ou encore une classe permettant de supporter les systèmes de géolocalisation de Windows 7, CivicAddress, qui présente l'avantage de contenir tous les éléments permettant de gérer une adresse.

Enfin, les algorithmes de compression ont été optimisés, permettant entre autres une compression de meilleure qualité, et offrant désormais la possibilité de compresser des streams de plus de 4 Go.

X - Liens Utiles

- Documentation MSDN du .NET Framework 4

- VS 2010 and .NET 4 Series de Scottgu

- Visual Studio 2010 Beta2 Performance

- Visual Studio 2010 and .NET Framework 4 Training Course

- Download Visual Studio 2010 bêta 2 Express editions

- What's New in the BCL in .NET 4 Beta 2

- VS 2010 and .NET 4.0 Beta 2

- Visual Studio 2010 beta 2 is now available (Public availability)… Get Your Copy!

- VS2010 and .NET Framework 4 Beta 2 Announced!

- Visual Studio 2010 to launch in March

- Features Visual Studio en Silverlight

- Visual Studio 2010 : Intellisense Suggestion Mode on MSDN

- Visual Studio 2010 Extension Manager

- Vue deepzoom du framework 4.0

XI - Téléchargements

- Téléchargez les différentes versions de Visual Studio 2010 bêta 2

- Téléchargez le Training Kit de Visual Studio 2010 et du .NET Framework 4 (October Preview)