Les architectes de la plate-forme Visual Studio sont confrontés aux mêmes défis que leurs clients développeurs : Comment redynamiser une base de code propriétaire charnière, alors que les systèmes matériels, le Software plus Services (S + S) et de nouvelles approches de la construction d’applications imposent des évolutions.
Visual Studio (VS) 2010, dont la bêta est disponible depuis peu, marque, selon l’éditeur, le début d’une refonte majeure de l’IDE qui se poursuivra sur plusieurs cycles de produits. Dans cette nouvelle mouture, la Developer Division effectuera un acte de foi majeur en proposant sa technologie graphique non éprouvée.
La bêta de VS 2010 introduit un éditeur de code, une interface utilisateur et un shell entièrement nouveaux et bâtis sur WPF (Windows Presentation Foundation), le sous-système graphique .NET 3.x qui a fait l’objet d’appréciations mitigées dans Vista.
«Nous avons expliqué aux développeurs comment créer des applications intuitive, attrayantes et d’aspect moderne pour leurs clients», déclare Matt Carter, directeur produit du groupe Visual Studio de Microsoft.
«Ce que nous essayons de faire est de dire qu’ils méritent un environnement également très facile d’utilisation, intuitif et visuellement attrayant, mais qui exploite également cet attrait visuel pour leur permettre de mieux comprendre ce sur quoi ils travaillent et de voir les associations entre les différentes parties du code et les applications.»
En tant que modèle de programmation tirant parti du nouveau sous-système graphique de Vista, WPF a été conçu afin de moderniser le volet utilisation en permettant aux développeurs de coder sur une infrastructure robuste qui inclut un sous-ensemble de DirectX 3D, des animations, des graphiques vectoriels, ClearType, la programmation déclarative, la liaison de données, le multimédia, les styles et les contrôles.
Les versions initiales de WPF, selon de nombreux développeurs, fournissaient une documentation limitée et ne disposaient pas d’outils suffisants.
«Il est intéressant de voir Microsoft utiliser WPF dans un de ses produits de base, car cela permettra de toute évidence à WPF et aux outils associés de gagner en maturité», déclare Rockford Lhotka, grand gourou des technologies dans le cabinet de conseil Magenic Technologies Inc. (Etats-Unis). «Chaque fois que Microsoft investit de la sorte dans ses propres technologies, tout le monde en profite.»
Vieillot et confus
Ces avancées audacieuses arrivent à un moment où les architectes de VS essaient de définir la feuille de route d’une refonte de l’IDE en mettant l’accent sur cinq domaines :
– l’extensibilité à tout le produit,
– la frugalité avec une meilleure gestion des dépendances et des allocations améliorées des ressources,
– la connectivité avec l’approche S + S,
– l’évolutivité afin de prendre en charge 10 000 projets dans une solution et 50 000 fichiers dans un système,
– et enfin la modernisation globale.
«Le produit 2008 ressemble fortement à la version de 1998 et je ne pense pas que ce soit une bonne chose », a expliqué l’architecte de Visual Studio Rico Mariani dans une interview sur Channel 9 lors de la conférence Visual Studio Extensibility (VSX) en septembre.
«Nous travaillons énormément sur l’évolutivité et la frugalité dans l’IDE, afin que vous puissiez vous payer le luxe de la modernité», dit-il.
«Nous pouvons compenser nos coûts au niveau de WPF en réalisant des économies ailleurs. Notre objectif n’est pas que WPF soit gratuit. » L’évolution au-delà des performances des « applications mono-thread » dans Visual Studio et une architecture du type modèle-vue-contrôleur figurent parmi les arguments de la feuille de route. « Nous avons une pléthore de threads, mais nous n’avons pas beaucoup de concurrence», explique Mariani.
«Et nous pourrions faire beaucoup en séparant les éléments qui doivent être synchrones, ainsi que les éléments à interfacer avec l’utilisateur, ce qui constitue le début des modèles SDK. Il faut retirer l’état de ces objets, le séparer et établir une séparation entre les contrôleurs, qui peuvent être initiés de manière asynchrone, et avoir des modèles de grande qualité en arrière-plan.»
Dans VS 2010, les développeurs sont aux premières loges pour découvrir les prémices de l’évolution de l’IDE : une navigation dans le code, des annotations et une extensibilité rehaussée avec le shell basé sur WPF, des performances et une évolutivité améliorées pour le code natif, ainsi que des améliorations fondamentales dans le débogage et le développement orienté tests.
Une nouvelle interface utilisateur clinquante
Comme de nombreuses équipes chargées de moderniser leurs applications, Microsoft redynamise sa base de code propriétaire avec une couche de présentation .NET.
Les modifications de l’interface utilisateur ont semblé modestes à plusieurs développeurs qui ont assisté à la première démonstration publique de VSLive! en février.
Le ruban de l’interface utilisateur disponible dans Vista et Office 2007 est absent de la refonte.
Dans la nouvelle interface de VS 2010, les menus et commandes sont reliés entre eux dans une grille. Par conséquent, il est facile de coordonner et de trouver les éléments ou d’éliminer l’encombrement, Explique Carter.
Microsoft a effectué un certain travail de conception sur l’utilisation des espaces de couleur et négatifs, et y a supprimé certains des dégradés et dessins au trait nécessaires, afin que l’application soit «plus propre et plus nette que par le passé», indique-t-il.
«Vous pouvez ainsi vous concentrer sur le travail et être moins distrait par d’autres parties de l’environnement.» explique Lhotka, qui a assisté à la présentation de VSLive!, laquelle comprenait une démonstration de l’interface utilisateur assortie d’un discours de Jason Zander, GM Visual Studio chez Microsoft, met en doute l’argument «moins encombré».
«Il est certes sympa de baser Visual Studio sur WPF, mais je n’ai pas l’impression que la présentation et les boîtes de dialogue diffèrent tellement de leur aspect actuel», déclare Lhotka.
Outre le nouvel aspect, WPF vous permet d’étendre l’utilisation de l’application au-delà des possibilités offertes par Microsoft dans l’IDE, par le biais de add-ins tierce partie ou que vous pouvez écrire vous-même.
WPF apporte à l’éditeur de code source une nouvelle extensibilité qu’il a été difficile d’atteindre par le passé, indique Rob Sanfilippo, vice-président des études pour les plates-formes de développement, chez le cabinet d’études américain Directions on Microsoft.
Vous pouvez examiner les méthodes dans votre code et obtenir un pop-up avec l’historique des modifications au fil des étapes du développement.
Vous pouvez aussi exploiter les informations de débogage dans Team Foundation Server, créer une saisie IntelliSense spécialisée ou utiliser les commentaires de documentation XML.
«Microsoft proposera beaucoup de ces extensions», explique Sanfilippo. «Mais il ouvre également un marché pour cet écosystème. Il s’agit d’une avancée concurrentielle intéressante car, s’il existe des fonctionnalités dans des environnements de développement concurrents, il est possible de mettre Visual Studio au niveau des autres ensembles d’outils.»
Lors de la Tech-Ed de Barcelone, Zander a montré un add-on DevExpress qui permet de créer des vues miniatures de code, de sorte qu’il est facile d’utiliser les couches WPF pour sélectionner un mot et effectuer une analyse descendante dans la Document Map Margin.
Le nouvel écran d’accueil basé sur WPF est également extensible, via la configuration et des fichiers XAML.
«J’ai pu voir des extensions de cet écran qui peuvent afficher des éléments comme des faits récapitulatifs», explique Sonder Bjellås, responsable des technologies Microsoft pour Capgemini à Oslo, en Norvège.
«Quelle quantité de code vous avez archivée dernièrement, combien de temps vous avez consacré aux tests, combien de temps vous passez à documenter vos méthodes, etc. Il a pu agréger des données de l’entrepôt Team System et les afficher sous une forme personnalisée pour chaque développeur.»
La refonte WPF de l’IDE constitue la partie de VS 2010 qui impressionne le moins Andrew Brust, responsable des nouvelles technologies chez twentysix New York.
«Ce que j’ai vu ressemble plus à un portage de l’IDE 2008 vers WPF qu’à une réelle refonte. J’espère que Microsoft va apporter plus de modifications fondamentales à l’interface utilisateur de VS 2010 avant la sortie de la version définitive», indique Brust.
«Nous n’adoptons pas WPF pour le seul fait d’avoir une interface graphique à couper le souffle, cette raison ne pourrait pas suffire», a indiqué Mariani dans son blog en novembre dernier.
«Nous sommes à la recherche de flexibilité et d’extensibilité. Par exemple, en basant l’éditeur sur WPF, nous pouvons, pour un coût raisonnable, offrir la possibilité d’ajouter des ornements, des marges, voire des extensions de style du type « affichage tête haute »… Le plus intéressant est que vous ne devrez pas attendre que nous fassions toutes ces choses. Vous souhaitez surimposer des informations d’analyse par-dessus votre texte ? Pas de problème. Vous pouvez le faire. Vous souhaitez la couverture des tests ? Des liens interactifs vers la documentation ? Des indicateurs de présence en ligne basés sur les noms de messagerie électronique dans les commentaires ? Toutes ces choses sont à votre portée.»
L’éditeur basé sur WPF s’appuie sur la nouvelle Managed Extensibility Framework (MEF) de Microsoft. Il s’agit d’une bibliothèque .NET 4.0 pour créer des applications extensibles ou pour découvrir des applications.
MEF est disponible en avant-première sur CodePlex.
«Je pense que toute cette modernisation a un caractère un peu ironique», même si c’est une démarche qui va dans le bon sens pour Microsoft, explique Jeff Levinson, responsable de la clientèle ALM chez NorthWest Cadence Corp.
«Les entreprises écrivent des add-ins dans Visual Studio depuis maintenant 16 ans. Ils ne peuvent pas se contenter de tout prendre et de tout jeter. Je pense qu’ils vont modifier l’habillage pour WPF, mais je ne sais pas jusqu’à quel point WPF sera richement doté en termes d’intero – pérabilité», dit-il.
L’architecture VSX actuelle reste intacte, selon l’architecte VS Mariani, mais l’extensibilité doit être plus uniforme.
D’autres questions demeurent : Comment les développeurs peuvent-ils trouver le sous-système approprié et s’y connecter ? Comment déboguer et actualiser ces composants ? Combien d’extensions sont envisageables ?
Un nouveau gestionnaire d’extensions, Extension Manager, dans VS 2010 permet aux développeurs d’accéder aux extensions, de les rechercher et de les télécharger à partir de la galerie VSX, par exemple à partir de Visual Studio sans nécessiter un package VSIP sur leur machine.
La question la plus importante autour de WPF concerne peut-être la manière dont les performances de l’IDE seront affectées. Mariani, qui est le «monsieur performances», a admis qu’il va y avoir une pénalité.
«Je m’attends à un contrecoup au démarrage», a-t-il dit pendant une interview sur Channel 9, en notant que 300 ms seraient acceptables.
Le nouvel IDE ciblera les machines des développeurs.
«Nous avons revenir à XP dans cette version», explique-t-il, mais pour une utilisation optimale, les développeurs doivent avoir un accélérateur graphique (DirectX 9.0).
D’un point de vue pratique, WPF permet aussi aux développeurs d’effectuer des zooms avant et arrière sur le code, de déverrouiller les palettes et de visualiser les fenêtres de code et de designer sur plusieurs moniteurs.
«Il est plus facile de travailler sur des projets différents mais intégrés en utilisant plusieurs écrans, ce indépendamment de leur résolution», déclare Daron Yöndem, directeur régional Microsoft et responsable de l’association INETA pour la Turquie, lequel a décrit la prise en charge de WPF comme «géniale» dans un e-mail.
«Je suis impatient d’arriver au jour exceptionnel où nous pourrons concevoir notre propre interface Visual Studio avec des modèles complets.»