Intellisense et JavaScript dans Visual Studio Orcas
L'une des principales innovations de Visual Studio Orcas est le support de l'IntelliSense pour JavaScript. Scott Guthrie ainsi que l'équipe de développement web en ont déjà parlé ici Javascript Intellisense in Visual Studio "Orcas" et là JScript IntelliSense in Visual Studio Orcas
J'ai voulu tester ce que cela donne sur un gros projet sur lequel je travail actuellement et qui contient une bonne 40aine de classes donc autant de fichiers et donc plusieurs milliers de lignes. Je suis agréablement surpris du résultat.
Création d'un objet :
On connait les propriétés de l'objet :

On connait aussi le type de la propriété :
Bien sur l'IntelliSense nous propose la liste des types disponibles :

Dans le cas d'une enum on a même le droit aux valeurs possibles :
Les événements sont aussi présents :
On connait les arguments et le type des méthodes :

Les objets retournés par les différentes méthodes sont eux aussi typés on a donc accès à l'intelliSense de ces objets :
Comment est-ce que cela fonctionne ? Tout d'abord il faut que l'on utilise le formalisme Object apporté avec Microsoft Ajax Library, c'est à dire utilisé les méthodes registerNamespace, registerClass, etc... On doit aussi créer les types en utilisant le style prototype plutôt que le style closure ou d'autres choses hybrides provenant de divers frameworks. Ceci vous permettra seulement d'avoir une liste des types et des méthodes disponibles, si vous voulez en plus les informations sur les types des arguments d'une méthode ainsi que la description de la méthode, il faut utiliser les commentaires XML décrit par Bertrand Leroy dans ce post : The format for JavaScript doc comments.
Ma méthode moveTo sera donc déclaré ainsi :
moveTo : function(centerPoint, zoomLevel, preventEvent){
/// <summary>
/// Move the map to the specified point at the specified zoomLevel.
/// </summary>
/// <params name="centerPoint" type="Itelios.Geo.Point"></params>
/// <params name="zoomLevel" type="Number" mayBeNull="true"></params>
/// <params name="fireEvent" type="Boolean" mayBeNull="true">true if we doesn't want to fire the raiseMoving event</params>
Pour l'instant Visual Studio CodeName Orcas en est au stade beta 1, le support de l'IntelliSense est très capricieux, en tout cas cela promet de très bonnes choses pour la version finale. En effet JavaScript oups AJAX devient de plus en plus important dans la vie des développeurs Web l'IntelliSense leur permettront d'utiliser des composants JavaScript plus facilement. Cela entraine cependant quelques limitations à l'utilisation de JavaScript, on ne peut plus utiliser d'objet anonyme, des méthodes avec signatures multiples, de prototype dynamique et bien d'autres choses sympathiques que JavaScript permet, dans ces cas l'IntelliSense sera présente mais ne correspondra plus à grand chose.
Vous pouvez télécharger gratuit Visual Studio Orcas ici : Visual Studio Code Name "Orcas" Downloads (je vous conseille vivement les VPC)