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. Multi-targeting 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 projet. 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 tout simplement 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. A présent, un système de zoom rapide est intégré dans les fenêtre 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é. A 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. A 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 inclus les noms de classes, d'objets, de variables, méthodes et propriétés.
III-D-6. Call Hierarchy▲
Un problème réccurent lorsqu'on arrive à des projets de grandes envergures 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 ? A 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.