Retour sur la Release Candidate de Visual Studio 2012

Après une beta déjà bien avancée, mais lourde à installer et très austère, nous avons depuis le 31/05/2012 l’occasion de tester une version quasi-finale de Visual Studio 11, qui se prénommera sans surprise Visual Studio 2012.

Vous pouvez la télécharger librement ici.

Arrêtons-nous d’abord sur l’interface. Après des versions 2003, 2005 et 2008 très homogènes de ce point de vue, Visual Studio a introduit une réelle rupture graphique, avec une refonte en WPF/XAML. Et en voici une seconde, à peine 2 ans plus tard. Cette fois, l’interface graphique s’inscrit dans la droite lignée du modèle Metro, que l’on verra dans chaque produit Microsoft pour les quelques années à venir.

La Release Candidate est néanmoins un peu plus colorée que la Beta. Ca reste très gris et sobre, mais l’interface gagne tout de même en vie. Il est d’ailleurs prévu que la version RTC apporte de nouveaux changements à l’UI.

Un mot rapide sur l’installation… Espérons qu’elle soit plus rapide sur la version finale, parce qu’actuellement, elle est tout bonnement interminable. L’installation de la RC, bien qu’un peu plus rapide que sur la beta, reste looooooooongue. On parle ici de 2 bonnes heures sur une machine récente. Ce n’est pas une opération fréquemment répétée, mais tout de même. Sachant qu’un redémarrage est requis, à cause de l’installation du Framework .NET 4.5.

Voyons maintenant ce que nous réserve la cuvée 2012 de Visual Studio.

Développement d’applications Metro

Avec l’arrivée de Windows 8 prévue pour cette fin d’année, il devenait nécessaire de mettre à disposition un environnement de développement permettant de remplir un peu le Windows Store.

3 alternatives s’offrent à vous, à choisir principalement en fonction des compétences des développeurs :

  • XAML + C#/VB.NET/C++ : ce sera l’approche la plus simple pour des développeurs .NET
  • HTML5 + Javascript + CSS : très adaptée si vous avez des compétences en développement Web
  • DirectX + C++ : ce genre de développement sera sans doute marginal, mais vous avez la main complète sur la carte graphique

L’éditeur intègre désormais des possibilités de visualisation plus poussées des interfaces en développement : portrait, paysage, split. Le debugger a été largement amélioré, et ce quel que soit le mode de développement retenu.

Autre point important, un ensemble de métriques (une intégration directe de StyleCop et FxCop ?) sur la qualité du code est disponible. En revanche, il n’est fonctionnel qu’avec C#, VB.NET et C++ mais pas avec Javascript.

Logiquement, le développement d’applications Metro n’est possible que sur la preview de Windows 8.

Améliorations de l’IDE

Les solutions VS2010 et VS2012 sont totalement intercompatibles. Pratique à court terme, mais si on pouvait un jour avoir une vraie structure propre des SLN, ça faciliterait quelques merges.

L’explorateur de solutions intègre désormais les fonctionnalités de l’explorateur de classes. Il est donc possible de faire du drill down de façon plutôt rapide et efficace. C’est devenu un outil d’exploration du code dynamique : affichage de la structure du code, navigation dans les couches d’héritage et d’appel, etc. Nous apprécions fortement.

Il est également possible de gérer son Visual Studio sur plusieurs écrans, façon PhotoShop. Pratique. De plus, il est désormais possible de consulter le code d’un fichier sans avoir à l’ouvrir avec une forme de popup. Et enfin, quelques raccourcis ont été ajoutés vers les fichiers les plus fréquemment utilisés, via un système d’épinglage. Cela existait déjà dans VS2010, mais la fonctionnalité est un peu plus ergonomique et mieux mise en avant.

La recherche a également connu quelques améliorations : rechercher/remplacer avec des expressions régulières et lancement rapide via des raccourcis.

La version Architecture, elle, gagne quelques fonctionnalités d’exploration du code sous forme de nouveaux diagrammes.

Langages et Framework .NET 4.5

La principale nouveauté du framework .NET 4.5 et des langages qui vont avec est l’ajout des 2 nouveaux mots-clés async et await pour c# et VB.NET. La complexité de la problématique adressée, à savoir la programmation asynchrone, nécessitera un article à part entière. Notons néanmoins que ce type de programmation prendra une place conséquente dans les développements d’application, que ce soit dans une architecture orientée services ou dans la gestion des applications fast & fluid, très fortement mises en avant par Microsoft pour Windows Phone et Windows 8.

Un apport intéressant pour les développeurs est l’ajout d’informations sur l’appelant : chemin vers le code source, numéro de ligne et nom de la méthode. De quoi alimenter des fichiers de logs avec des données qualitatives.

VB.NET bénéficie de quelques ajouts permettant de rattraper une partie de son retard sur C# : un itérateur For Each, un accès direct aux appelants et appelés d’un membre donné, et un namespace particulier : Global, permettant de définir un espace de nom en dehors de l’espace de nom racine du projet.

Le framework lui-même bénéficie de plusieurs changements intéressants :

  • un nouveau type de projet Portable Class Library, portable sur différents environnements : WIndows Phone, XBox 360, Silverlight, .NET.
  • la simplification du développement et du déploiement d’applications WCF (enfin !), avec notamment des fichiers de configuration fortement simplifiés.
  • apport de l’asynchronisme à WCF en vue de rendre les plateformes plus scalables
  • WF gagne, lui, un designer amélioré, des modèles (ex : StateMachine) et de nouveaux types d’activités
  • WPF bénéficie d’un nouveau composant graphique Ribbon et des améliorations dans l’affichage de larges volumes de données groupées.
  • Deux nouveaux namespaces System.Net.Http et System.Net.Http.Headers font leur apparition, apportant de nouvelles possibilités dans le développement d’applications basées sur Http.

Application Lifecycle Management

La nouvelle mouture de Team Foundation Server fait un gros pas supplémentaire vers l’agilité et Scrum, en intégrant des fonctionnalités uniquement disponibles avec le plugin Urban Turtle de Pyxis : un backlog ergonomique avec gestion des priorités en drag & drop et un Scrum Board sobre, mais lui aussi drag & drop.

Microsoft fait aussi le pari de faire de sa plateforme la centrale de gestion de l’application au sens large, en y amenant des profils plus orientés métier, qui pourront ajouter des spécifications (storyboards, PowerPoint, captures d’écran, annotations, etc.), le tout en vue de raccourcir le délai de feedback.

Cette nouvelle version de TFS bénéficie également d’une ENORME nouveauté : TFS Azure. Ceci pourrait radicalement bouleverser les méthodes de travail des équipes de développement. Nous y consacrerons également un article dédié.

ASP.NET 4.5

ASP.NET 4.5 fait la part belle à Javascript : gestion souple et optimisable des fichiers JS via des mécanismes de packaging et minification. Le moteur a également été remanié de façon à intégrer les appels asynchrones. Notons que ASP.NET 4.5 est rétrocompatible avec les versions précédentes du framework.

Les facilités de binding apportées par le moteur Razor ont été apportées aux WebForms.

L’éditeur HTML intègre les dernières balises HTML5 et CSS3. De manière générale, l’IDE vise à offrir une vision complète du rendu d’une page directement pendant le développement : choix du navigateur parmi ceux installés sur le poste pour le débuggage, Intellisense pour tous les langages supportés (JS, HTML, CSS, ASP.NET WebForms) et amélioration de la publication.

ASP.NET MVC4 bénéficie de l’intégration par défaut de Entity Framework 5, et du support de Code First Migrations, l’implémentation par Microsoft des migrations de base de données, dont je vous parlais ici.

Conclusion

Il y en a donc pour tout le monde. Malgré une sortie rapide après Visual Studio 2010 et le framework 4, les fondamentaux sont consolidés, et de belles nouveautés font leur apparition. Comme dit précédemment, la programmation asynchrone et TFS 2012 feront donc l’objet d’articles dédiés. Rendez-vous à ce moment-là !

Pas de commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *