[Retour] PostBuildEvent Visual Studio 2013 Preview
Productivité :
Code Maps :
Cette fonctionnalité est déjà disponible avec un update de Visual Studio 2012, et il sera à priori disponible dans VS 2013.
Cet outil a été demandé par les développeurs, pour répondre à un besoin simple : comment rentrer dans du code qu’on ne connaît pas ? qui plus est un code qui comporte de nombreux fichiers ?
Des diagrammes UML éventuellement déjà présents dans la documentation du projet, ou générés à la demande répondent déjà au début du problème, pourtant ce n’est pas suffisant.
La manipulation usuelle quand on a aucune documentation ressemble souvent à cela :
Une centaine d’onglets ouverts, tous les projets développés dans la solution, et un temps qui paraît infiniment long à lire le code.
Ce que Code Maps nous apporte :
Si on part en exploration dans du code, en suivant un fil rouge d’Ariane par une succession d’appel, on peut matérialiser ce fil en faisant des “Show On Maps” du code qu’on parcourt, du coup, on construit petit à petit une vue personnalisée de ce qu’on veut voir de la structure du code.
Par exemple, si on veut intervenir sur la validation d’une règle fonctionnelle, on peut utiliser notre intelligence pour mettre de côté ce qu’on sait qui n’interviendra pas dans ce process, et un schéma personnalisé à votre besoin se fait petit à petit.
Vous pourrez le sauvegarder pour en faire éventuellement un autre qui mettrait plus en exergue un autre aspect de l’application. Tout cela se fait par des clics, ou des raccourcis clavier, vous avez donc une grande souplesse et simplicité pour vous aider à faire votre schéma pour synthétiser,mémorise votre compréhension du code. On peut imaginer par exemple : présenter à ses collègues, à l’aide de ses schémas qui tiennent à la fois du diagramme de classe et de séquence, la descente d’un Prêt/Emprunt jusqu’en base de données.
Au passage, il est important de souligner que Visual Studio 2013 propose une sauvegarde avec TFS du contexte de travail dans lequel vous travaillez.
Ce contexte contient les choses suivantes : onglets ouverts, leurs dispositions, le codemap éventuellement ouvert avec le schéma CodeMaps qui va bien.
Le coût de passage d’un contexte à un autre est donc minimisé puisque vous pouvez attacher vos tâches sous TFS à vos contexte.
Vous travailliez sous telle anomalie, mais un problème de production surgit… vous sauvegardez le contexte en cours, et si vous avez déjà reconnu le type de problème, vous ouvrez le contexte le plus approprié, avec les points d’arrêt qui vont si possible avec… un confort certain peut donc être apporté aux développeurs.
Code Lens :
Vous pouvez voir au-dessus d’une méthode le nombre de références à cette méthode, qui l’a édité, combien de tests existent pour cette méthode, est-ce qu’il y a des tests qui échouent en utilisant cette méthode ? Vous comptiez modifier cette méthode qui est utilisée par 35 tests unitaires ? Si tous passent après la modification, vous serez déjà un peu plus rassuré que s’il y en avait aucun, s’il n’y en a pas, ce serait peut-être le bon moment pour s’y mettre.
Et maintenant si vous mettez la souris au-dessus, vous pourrez voir plus de détails (voir la bulle sur la figure) sur les appels de cette méthode, et même relancer les Tests unitaires liés à cette méthode.
Une scrollbar style “outil de merging” :
Vous prenez de la distance sur l’ensemble du fichier modifié et vous pouvez donc voir avec du recul où vous avez modifié votre fichier, avec un effet de prévisualisation sur le code quand vous “scrollez” dans le fichier. Attention toutefois, votre serveur TFS sera mis à rude épreuve pour cet usage. Pour ceux qui ne veulent pas attendre la sortie de VS 2013, vous pouvez aussi bénéficier de cette fonction avec VS 2012 via un add-in : “Productivity Power Tools”.
Débuggage Asynchrone :
Pour Visual Studio 2013, avec Windows 8.1 uniquement.
Cas pratique : vous débuggez une application qui pratique de nombreux appels asynchrone, vous voudriez savoir qu’est-ce qui appelle telle méthode, vous mettez donc un breakpoint à l’endroit à examiner, vous lancer votre application, faites le cas de test qui va bien, le débugger s’arrête sur le breakpoint… vous regardez la pile d’appels…Et vous savez que cette méthode a été appelé par… “External Code”, vous voilà bien avancé.
Mais si vous avez Visual Studio 2013 et Windows 8.1, la pile d’appel vous détaillera ce que vous attendiez, quand bien même plusieurs appels asynchrones ont mené à votre méthode.
On peut de la même façon suivre les tâches actives pendant un Debug.
Autres nouveautés moins graphiques, mais aussi essentielles :
Synchronisation des “Settings” :
Edit & Continue :
Que ceux qui en ont assez d’arrêter un débogage pour modifier le code lèvent le doigt…? Chers développeurs d’applications en 64 Bits, Visual Studio 2013 vous autorise enfin à changer votre code en cours de débogage !
Fermeture automatique de ce qui a été ouvert :
Dans Visual Studio 2013 tous les symboles que vous ouvrez…se referment automatiquement : “”, {},().
Réorganisation du Code :
Vous pouvez réorganiser votre code désormais sans la souris… vous sélectionnez le bloc de code comme d’habitude, et pour le bouger, vous faites ALT+Flèche du haut ou bas, et votre code se déplace.
Synchronisation des réglages :
Les réglages concernent les points suivants :
-Les réglages de l’Editeur de texte.
-Le Thème, la police, les couleurs.
-Les raccourcis clavier.
Pour sauvegarder/recharger les réglages, vous aurez juste besoin d’un compte Microsoft.
Visual Studio vous le proposera au premier démarrage, ainsi vos préférences seront automatiquement synchronisées lors d’un démarrage avec Vs2013 sur une autre machine.
Return Value :
Très simplement, quand vous débuggez, sans que vous n’ayez rien à faire, dès qu’une méthode renvoie quelque chose, une variable se crée dans les “locals Variables” pour vous dire ce que la méthode a renvoyé.
Si on considère cet appel :
Five() renvoie 5 et Six() Renvoie 6.
Vous verrez apparaître des variables automatiquement dans les onglets de débuggage.
Le retour est de plus, fortement typé. Cela peut être déterminant si lors d’un débuggage l’une des méthodes utilisée renvoie un résultat qui change à chaque appel.
Peek Definition :
Vous permet de garder “sous le coude”, et sous les yeux dans une sorte d’onglet preview ( un seul par fichier) la définition d’une méthode ou autre.
Ici par exemple, l’utilisateur veut garder un oeil sur la définition de la méthode “MoveAsync” surligné en gris.
Travail en équipe :
Team Room comme IRC de travail :
Vous avez dû souvent avoir des conversations avec collègues sur des bugs, des évolutions, des “nice to have” en citant des fichiers, classes ou en faisant des références à des spécifications, ou anomalies dans le bug tracker, mais une fois la conversation terminée, que se passe-t-il ? au mieux vous enregistrez la conversation de linq, skyppe ou autre, au pire cela se termine sur un “Ah oui, ce serait bien de faire ça, mais on verra plus tard”. Quand vient le “plus tard”, vous risquez fort de recommencer une grande partie du travail fait pendant la conversation.
Ce chat a pour vocation à agréger avec la conversation, des fiches de travail, des documents, changeset, des bugs, afin de conserver dans un état le plus avancé possible, une réflexion qui sera peut-être suivi d’une action, dans un délai souvent inconnu.
Conclusion :
A mon avis, Microsoft a écouté nettement plus les développeurs utilisant Visual Studio pour changer des choses qui améliore notre quotidien.
Cette version n’est encore qu’une “Preview”, on espère que le plus de fonctionnalités possibles seront conservés lors de la sortie du prochain Visual Studio.
Si Microsoft ne devait en conserver qu’une, je choisirai le “Code Maps”.