jeudi 13 novembre 2008

Tech Ed 2008 : Windows Azure - Cloud Services

Windows Azure vient compléter la gamme des technologies majeures sur laquelle Microsoft investit avec des moyens colossaux. Rien qu'en investissement Datacenters pour l'hébergement de la plate forme, on parle en Billions de dollars!
Mais que se cache t'il derrière ce concept? c'est ce que nous allons tenter de clarifier dans cet article.
Windows Azure est également appelée "Cloud Platform" ou Plate format dans les nuages (comprendre le nuage internet). Ce principe avant-gardiste s'appuie sur des drivers business interessants :
  • Réduire les couts d'opérations et de capital en terme d'infrastructure
  • Simplifier le déploiement et la gestion d'applications
  • Pomouvoir de la flexibilité pour les applications et l'infrastructure associée.
  • Simplifier le dimensionnement à l'échelle internet
  • Mettre le focus sur les nouvelles fonctionnalités et non l'infrastructure
Microsoft Azure héberge sur cette plate forme des services appelés "Clouds Services" qui sont au nombre de 5 :
  • SQL Services
  • .Net Services
  • Live Services
  • SharePoint Services
  • Dynamics CRM Services
Schématiquement, nous avons la représentation suivante :

Wndows Azure permet donc d'étendre Windows "to the Cloud" en fournissant 3 types de prestations :

  • Le calcul : la mise à disposition d'environnment virtualisés basés sur Windows Server (en fait uneversion optimisée de l'Hyper V avec un coeur physique par machine)
  • Le stockage : Stockage de Blobs, tables de données
  • La gestion / configuration automatisée de Services : une gestion automatisés sur l'ensemble du cycle de vie des services.
  • Un SDK pour les développeurs : C'est du .Net, les développeurs sont donc opérationnels

Au plan de l'architecture, Windows Azure peut être vu comme une fabrique de Machines virtuelles, exploitant des services dont par exemple les .Net Services permettant d'écrire des programmes .Net, mais aussi des Workflows, d'accèder à des données, d'exposer des services, le tout en mode http / Soap et/ou en utilisant la technologie RESTFul.
Grace à Azure, une entreprise pourra exposer une application interne à des partenaires via le Service Bus, ou bien encore un groupe de partenaires pourraient utiliser les Workflows Services pour automatiser leurs Processus métiers inter-organisationels.
Ci dessous le schéma type d'une application hébergée sur la plate forme Windows Azure.

Concernant la Roadmap d'Azure, on a les jalons suivants :

  • Novembre 2008 : CTP + SDK développeur
  • Premier semestre 2009 : Large diffusion de CTPs, des Datacenters additionnels, Pricing & SLA
  • Q4 2009 : Disponibilité commerciale
Un point également interessant sera le cout de la prestation. Aujourd'hui, Amazon, avec l'offre
Amazon Elastic Compute Cloud (EC2) s'impose déjà comme un concurrent agressif avec des couts de l'odre de 10 cents l'heure d'utilisation, cette offre propose des environnements virtualisés sour Linux ou Windows. On note également la présence d'acteurs majeurs tel que Google avec Google AppEngine proposant des applications Web basées sur Python. La politique de prix de Microsoft est donc attendue avec grand intérêt.
En conclusion, les Plate formes Clouds sont là, et Microsoft entend être un acteur de premier plan sur ce créneau, un nouveau monde se découvre, préparons nous à en faire partie.

mardi 11 novembre 2008

Tech Ed 2008 : WF 4.0 - DUBLIN - OSLO => The Power of three

Aujourd'hui, force est de constater que l'utilisation de Windows Workflow Foundation reste marginale dans le domaine du développement d'applications.
Une des raisons à cet situation réside dans le fait que si la création d'un Workflow reste une tache simple, en revanche, le hosting de ce workflow ainsi que l'échange de données entre le workflow et son application cliente est complexe et ne parlons pas de la création de Custom Activities. Et c'est précisément à cette problématique entre autre que répondent Dublin et WF 4.0, une fois le Workflow crée sur ces technologies, "It just works!".
WF 4.0, Dublin et Oslo forment les foundations de la prochaine génération d'applications windows distribuées, dans un monde où la logique applicative sera :

  • Exécuté comme un workflow.
  • Exposé via des services.
  • Défini au travers de modèles.
Pour résumer ces trois technologies on parlera de Workflows, Services et Modèles. Ces technologies peuvent interoperer ou fonctionner individuellement.

Cette nouvelle plate forme technologique répond à un réel besoin issu de feedbacks clients :
  • Avoir des services WF et WCF opérationnels et fonctionnant simplement
  • Pouvoir facilement héberger, monitorer et controler les Services WF et WCF.
  • Avoir une meilleure instrumentation et des possiblités de scripting.
  • Avoir des extensions serveurs built in pour un niveau de service entreprise : stabilité, scalabilité et performance.
WF4.0
Cette technologie va permettre la coordination des taches effectuées par une application. WF 4.0 sera livré avec Visual Studio 2010 et .Net 4.0. Je détaillerai dans un prochain article les nouvelles fonctionnalités qui sont légions au vu des présentations faites lors de cette édition de Tech Ed.


Dublin
Consiste en des extensions de Windows Server (évolution de WAS/IIS) ayant pour role l'exécution et la gestion des Workflows et des services WCF. Dublin permet d'apporter une gamme de services proches de la plate forme Biztalk (mais sans couts de licenses) avec par exemple : Le hosting, la persistence, le monitoring et la partie Messaging plus des outils de scripting avec Powershell. Dublin sera disponible peu après Visual Studio 2010.

Oslo
Il s'agit d'un ensemble de technologies de modélisation (DSL) Oslo est un plate forme de modélisation architecturée sur trois composants :
  • Un repository : Stockage pour les modèles de schémas et d'instances
  • Un langage de modélisation, nom de code "M" : un moyen de définir des schémas et biens plus
  • Un outil de modélisation, nom de code "Visual Studio Quadrant" : un Editeur Visuel pour la création de modèles stockés dans le repository. L'outil permet notamment la création de nouveaux types de workflows plus puissant nommés les FowChart Workflows
En conclusion :
Absolument tous les aspects concernant le Hosting, le monitoring et le controle du Workflow (Activity Tracking) est pris en charge par Dublin, il est même possible d'effectuer du load balancing pour l'exécution de workflows. De plus, WF 4.0 est bien plus performant que la version actuelle (10-100x) et offres une bibliothèque d'activités bien plus étendues ainsi que de nouveaux types de workflows plus puissants, les FlowCharts. L'IDE de développement s'appuie entièrement sur WPF et permet significativement d'accèlérer la création de Workflow en XAML.
L'objectif est clair : améliorer le monde du développement en se basant sur la puissante de 3 nouvelles technologies faites pour travailler ensemble ou de manière complémentaire.





Preview de Visual Studio Quadrant


lundi 10 novembre 2008

Tech Ed 2008 : VSTS 2010 à l'honneur lors du Keynote

Le ton est donné dès le Keynote de cette édition des Tech Ed 2008, VSTS 2010 (Codename Rosario) est le produit mis en avant par Microsoft cette année devant Windows Azure qui est tout de même une des plus grosses nouveautés du moment : Windows Azure est la future solution de Hosting de services surnommées "Clouds Services". Pour information, Windows Azure va mettre à disposition les services suivants :
  • Live Services
  • .Net Services
  • SQL Services
  • Sharepoint Services
  • Microsoft Dynamics CRM Services
Le hosting de développements va permettre de nouveaux Mode de développement et mise à disposition de ces applications. Ci dessous la big picture de la future plate forme "dans les nuages"

Pour en revenir à VSTS 2010 ( Nom de code Rosario), cette mise en exergue lors du Keynote est largement justifiée tant les nouveautés apportées par cette nouvelle plate forme sont nombreuses (Voir les autres articles sur ce blog pour plus de détails). Lors du keynote, Jason Zander (General Manager Visual Studio Team Developer Division) a effectué une demonstration à couper le souffle présentant les fonctionnalités à venir, et notamment la partie TeamLab pour la mise à disposition d'environnement virtuels de tests ainsi que les dernières nouveautés concernant l'implémentation du support de WPF au niveau de l'IDE de développement avec une large palettes de nouvelles fonctionnalités, apportant une nouvelle expérience utilisateur aux développeurs.
Pour résumer, on notera dans les grandes lignes :

Coté IDE Visual Studio
Le support de WPF dans l'intégralité de l'IDE de VSTS, enrichissant l'expérience du développeur et du testeur. On voit ci dessous, l'historique pour une portion de code affichant des informations sur les développeurs ayant modifié un bloc de code, l'historique graphique sur la couverture de code par les tests unitaires et au bas de la fenêtre WPF diverses information.

On est capable très facilement à partir d'une fonction ou méthode donnée d'avoir la liste des callers / callees et de s'y déplacer, Un nouvel outil de Quick search permet de repèrer et accèder à tous types d'artefacts projet, et permet de localiser des mots clés dans une page de code avec une prévisualisation en WPF des résultats trouvés dans la barre de défilement! A voir absolument.

Sharepoint enfin!
L'intégration tant attendue d'un environnement de développement pour SharePoint, s'apparentant à l'approche faite avec le module Database for Professional, sauf qu'au lieu de se connecter à une base de données, on se connecte à un serveur Sharepoint, et à partir de là , on a tout loisir de créer de nouveaux objets via les nouveaux templates de développement, y compris des Webparts en mode graphique, évidemment, l'intérêt de cela étant la facilité du déploiement des nouveaux objets.

La simplification de la complexité à l'aide des modèles visuels : L'Architecture Explorer
Les outils tel que l'architecture Explorer permettent de comprendre bien plus rapidement du code que l'on reprend, cet outil permettra également de créer des Work Items, des diagrammes de séquences. On aura également la possibilité d'explorer les dépendances entres les différents composants ou classes de notre système avec des liens dessinés en tenant compte du niveau de dépendances entre les objets : Plus la dépendance est importante, plus le tracé est épais. Le diagramme est évidemment interactif et permet par un simple double clic d'accèder au code.

Le Module Testeur : Camano et TeamLab
Le module Team Lab avec la capacité de faire mieux collaborer développeurs et testeurs, donner accès à l'environnement de test par un simple lien dans un Work item pour accèlérer l'activité de reproduction du bug, on a également, le recording d'une video de la phase de tests ayant mis en évidence le bug, cette video est rattachée au Work item de type bug transmis par le testeur au développeur et nouveauté, on a égalemnent le splittage de la vidéo étapes par étapes dans la restitution des étapes d'un test permettant au développeur de ne voir que la séquence de la video qui l'interesse pour résoudre un bug (encore un gain de productivité). Ci dessous l'interface récupérée par le développeur après avoir cliquer sur le lien inclus dans son Work item de bug lui donnant accès à l'environnement de test ou s'est produit le bug. :


Test Driven Development
VSTS 2010 permet véritablement l'écriture en mode TDD simplement à l'aide d'un raccourci de touche magique, Ctrl . qui va permettre de créer à la volée, les membres et méthodes non encore implémentés que le développeur invoque à partir de son test

Développement Web
Les développeurs Web trouveront également une fultitude de nouveautés pour accèlérer leur développement. Ce dessous la slide résumant les points nouveaux :

lundi 13 octobre 2008

Step By Step : Déverouillage de fichiers dans le Controle de Code Source TFS

Un problème rencontré de manière récurrente sur projet est le verrouillage d'un ou plusieurs fichiers suite à une opération de check out, souvent cumulé à l'absence de son auteur. Conséquence, il devient impossible de continuer à travailler sur ce fichier, à moins de procéder administrativement à son déverouillage.

Malheuresement, jusqu'à la version 2008, il n'existe pas de méthode utilisant l'interface graphique, en revanche il est extrêmement simple de le faire à l'aide de l'invite de commande Visual Studio tel que démontré ci dessous ou encore d'utiliser l'utilitaire Sidekick. Nous allons donc décrire les deux méthodes.

Méthode 1 : Exécution en mode ligne de commandes
Dans notre scénario, un développeur nommé John Doe a laissé en check out des fichiers projets dont notamment un fichier csproj, bloquant donc toute modification de ce projet (Ajout ou suppression de fichiers).
Pour débloquer une telle situation, il suffit de procéder comme suit :
La fenêtre du Source Control Explorer permet de visualiser les fichiers verrouillés, avec le nom du développeur dans la colonne user :

On lance l'invite de commande Visual Studio 2008 à partir du menu Démarrer

Tout d’abord, on liste les Workspaces gérés par le serveur TFS, ce qui permettra de copier coller dans la commande finale le nom du Workspace ainsi que le nom de l’owner du Workspace, pour cela il suffit de taper la commande :

tf workspaces /server:NomServeur /owner:*

soit dans le cadre de notre exemple :

tf workspaces /server:Avanade_TFS2008 /owner:*

L’output de la console sera le suivant, il suffit alors de localiser le Workspace concerné, dans notre exemple ici le 2° :

On utilise le marqueur de la console pour copier / coller le nom du Workspace et son owner

On colle le contenu pour obtenir la commande suivante :

tf workspace /delete /server :NomServeur NomWorkspace ;NomOwner

soit dans le cadre de notre exemple :

tf workspace /delete /server :Avanade_TFS2008 CPU_TeamDev02 ;Avanade_TFS2008\John_Doe

Après validation, l'invite de commande affiche le nombre de fichiers en cours de modification dans le Workspace ciblé, puis une confirmation est demandée, Taper simplement Y pour valider

Pour vérification, un simple refresh de la fenêtre du Source Control Explorer permet de constater le déverrouillage des fichiers du Workspace du développeur John Doe

Méthode 2 : Utilisation de SideKicks

Dans ce scénario, le pré-requis est l'installation de Sidekick sur le poste d'intervention. Cet outil est en téléchargement gratuit sur internet.

Tout d'abord, on localise les fichiers lockés dans le source Control

Puis utiliser le menu Tools, Team Foundation Sideckics / Workspace Sidekick

La fenêtre suivante apparait, il suffit de filtrer sur le nom du développeur, entrer le nom de la machine du développeur puis cliquer sur le bouton Search

Le Workspace apparait ainsi que les dossiers apparaissent dans les listes résultats, il suffit de cliquer sur le bouton supprimer pour détruire ce workspace au niveau de TFS, puis refermer cette fenêtre.

Pour vérification, un simple refresh de la fenêtre du Source Control Explorer permet de constater le déverrouillage des fichiers du Workspace du développeur.

jeudi 25 septembre 2008

Roadmap et Chemin de migration vers Rosario

L’idée du présent article est de fournir de l’information pour planifier et faciliter le passage vers la future plate forme de TFS : ROSARIO dont la release est prévue pour Q4 2009.
L'objectif est d’anticiper les problèmes potentiels de migration ou d’installation mais aussi de planifier et budgéter les actions à engager par avance. En principe, la Beta 1 devrait être une version installable du produit et non une VPC permettant ainsi de jouer par avance les scénarios envisagés pour validation. Les informations sont présentés par sujet, en commençant par la plate forme serveur :
OS Serveur
Rosario supportera Windows 2003, 2008 et toute version future des OS Serveur de Windows. La recommandation est tout de même d’adopter la plate forme serveur Windows 2008, vu que les versions futures risquent de ne plus supporter Windows 2003.
64-bit
Enfin la nouvelle release de Team Foundation Server Rosario va supporter le 64 bit. En revanche dans les versions futures, le support du 32 bit sera supprimé. Pour cette raison, il est recommandé de penser à migrer ses plate formes vers du 64 bits
Virtualisation
Le test et le support des environnements de Virtualisation reste plus que jamais d’actualité. Dans le cas de l’utilisation de Virtual Server, il fortement recommandé d’installer le Data Tiers de TFS donc SQL sur une machine physique. En revanche dans le cas d’un Virtualisation sous Hyper V, l’installation en tout virtuel restera un scénario tout à fait viable
SQL Server
Sans aucun doute la décision la plus importante prise par les équipes de Rosario : la suppression du support de SQL 2005 !!! Cette décision a été très controversée mais finalement actée. Le fondement de cette décision réside dans les nouvelles fonctionnalités apportées par le module Reporting Services de SQL 2008, module qui a été tellement amélioré par rapport à la version précédente qu’il a été jugé impossible de ne pas en tirer profit : De nouveaux rapports ont été crées avec des looks très attrayant. D’autres raisons également tel que l’amélioration de l’indexation Full Text, la compression des index dont TFS va réellement tirer profit, la compression des données pour les Back up. Pour information, ci-dessous les principales améliorations apportées par la plate forme SQL 2008 :

1. Développement
  • Nouveau type HierarchyID facilitant la modélisation d'arborescences dans les bases de données (méthodes GetAncestor GetDescendant ou encore GetRoot pour manipuler efficacement les données hiérarchiques).
  • Nouveau type Filestream (Avec cet attribut, le serveur de base de données autorise le stockage des données de type blob sur le système de fichiers permettant de réduire considérablement la taille des bases de données et des Backups).
  • Nouveau type Table ( permettant de passer directement une table à une procédure stockée ou fonction)
  • Paramétrisation du nom de tables pour les requêtes (exemple : SELECT * FROM @MaTable)
  • Ordre SQL MERGE (Combinaison de INSERT et UPDATE)
  • Intégration de LINQ
  • Module de Géo localisation spatial (SIG) avec le type Geography

2. Stockage

  • la compression des données permettant à SQL Server de se positionner sur le créneau multi TeraBytes.
  • Backups compressés

3. Reporting

  • Déploiement Reporting Services ne nécessitant plus IIS.
  • Report Builder 2.0

4. Sécurité

  • Traçabilité des données (accès asynchrone au données modifiées dans les tables)
  • Possibilité d'implanter des règles de sécurité (par exemple respect d'une police de nommage - à l'instar des GPO de Windows)

5. Divers

  • Intégration plus forte avec Office

Le support de SQL 2005 étant supprimé, il va falloir dans un premier temps opérer une mise à jour vers SQL 2008 puis mettre à jour TFS. Ces migrations seront à planifier dans les prochains mois. Une migration de TFS vers TFS 2008 SP1 sur SQL 2008 est sans contexte une bonne approche pour anticiper et faciliter le chemin de migration vers Rosario. Une stratégie de migration pourra également de procéder à des détachement / rattachement de bases de données.


SharePoint
Dans TFS "Rosario", le support de WSS 2.0 sera abandonné, le pré-requis sera au minimum SharePoint 3.0 (2007) pour le module portail. MOSS 2007 reste un option importante comme plate forme de Reporting. MOSS ne sera pas un pré-requis, mais néanmoins, les fonctionnalités et le Look des portails projets seront nettement améliorés dans le cas de l’utilisation de MOSS, nécessitant en contrepartie l’acquisition de licences en plus de celles de TFS. Il sera possible de s’appuyer sur un portail MOSS existant. Néanmoins pour certains clients, le module portail n’est pas une priorité et ils ne souhaitent pas l’utiliser. Pour répondre à ce cas de figure, le module portail n’est plus une étape obligatoire dans l’installation de TFS, la fonctionnalité de portail devient optionnelle.

Project Server
TFS "Rosario" va inclure en standard l’intégration avec Project Server. Cette intégration va permettre une utilisation PMO de TFS et fournir une multitude de Dashboard avancés pour le suivi de projets. L’utilisation de Project Server nécessitera l’utilisation d’un client Project 2007 ou plus au minimum. Ce processus d’intégration doit également être pris en compte par avance, le modèle de licences ne dépendant pas des équipes de TFS.

Serveurs de Build
Comme pour les versions précédente de TFS, le module de build est dépendant de la version du serveur TFS. Par conséquent , il sera nécessaire de migrer tous les serveurs de builds existants en même temps que la plate forme TFS. La capacité à builder des applications basées sur différentes versions du Framework .net va incontestablement faciliter cette migration. Cela devrait tout simplement fonctionner.

Versions Client Visual Studio
Une des plus grandes préoccupations, reste la compatibilité avec les versions précédentes de Visual Studio. Ce point a souvent été un frein à la migration de la plate forme TFS, par exemple la migration de TFS 2005 vers 2008 obligeait la conversion des solutions (fichiers sln), qui ne pouvaient alors plus être ouverts à l’aide de Visual Studio 2005. Pour Rosario, en tant que release majeure de TFS, le maintien de compatibilité est impossible. La démarche sera de fournir des patches ou SP pour toutes les versions précédentes (Team Explorer 2005 et 2008 et les providers MSSCCI), permettant de se connecter et inter opérer avec un serveur TFS Rosario. En revanche, le client Rosario permettra de se connecter à des serveurs TFS 2005 et 2008.

Office
Dans TFS "Rosario", Office 2007 et supérieur sera supporté, ce qui sous entend que le support d’office 2003 sera supprimé. Ceci a été motivé par l’implémentation de la fonction Undo dans Project ainsi que des nouvelles fonctionnalités d’Excel 2007.

Les informations contenues dans cette articles font référence à un article de Brian Harry, Product Unit Manager pour Team Foundation Server chez Microsoft.

jeudi 4 septembre 2008

ROSARIO : Quoi de neuf?

La dernière version de la plate forme ALM de Microsoft arrive. On s'attendait à une plate forme présentant des évolutions compte tenu du haut niveau de services déjà proposés dans les versions précédentes (2005 et 2008), le résultat est en fait plus proche d'une révolution tant la plate forme propose de nouvelles fonctionnalités et de nouveaux outils.
Dans cette série d'articles, nous allons donc nous interesser module par module aux nouvelles fonctionnalités et innovations apportées par cette release majeure de TFS dont le nom de code est ROSARIO.
Le présent article constitue une vue synthétique de l'ensemble des innovations apportées à la plate forme ALM de Microsoft, pour avoir une description détaillée de ces innovations avec des exemples de mise en oeuvre, les articles suivants sont accessibles en utilisant les liens suivants :
Pour Rappel, TFS est la plate forme ALM (Application Lifecycle Management) proposée par Microsoft, c'est une plate forme serveur orientée services accompagnée d'une partie cliente Visual Studio Team System.
Ces différents services sont au nombre de 6 et se décomposent de la manière suivante :
  • Project Management
  • Work Item Tracking
  • Reporting
  • Build
  • Source Control
  • Document Repository
Ces différents services sont adressables de manière extensible, au travers de multiples clients comme le montre le schéma ci dessous, Microsoft a dans Rosario non seulement enrichi les fonctionnalités des clients existants et a de plus créer de nouveaux clients.


Vue synthétique de la plate forme TFS
(cliquer pour agrandir)

Ces différents services sont mis à disposition de différentes catégories de personnes adressées par des rôles . Les différents rôles adressés par la plate forme sont :
  • Project Manager
  • Architecte (logiciel et infrastructure)
  • Développeur
  • Développeur Bases de données et DBA
  • Testeur
Le schéma ci dessous illustre l'accès aux services par les différents rôles. Rosario fournit une gestion de la sécurité très fine permettant de définr les droits et permissions de chaque intervenant sur un projet et ce service par service.


Roles et Services dans TFS

Nous allons aborder la présentation de l'ensemble des nouveautés module par module. Les points présentés ne sont pas exhaustifs sachant que la plate forme est toujours en cours de développement. L'édition 2008 des Tech Ed à Barcelone sera sans doute le rendez vous permettant de faire un point précis de la version finale de Rosario.
Les nouveautés du module Project Management
L'activité de Program Management est une des activités les mieux loties en terme d'améliorations. On notera tout d'abord le très attendu support d'une structure WBS pour les phases de préparation et de pilotage des projets dans TFS, cette structure hiérarchique pourra être gérée en affichage et modification à partir de tous les clients proposés : Visual Studio, Excel, Project et même Team System Web Access ainsi qu'un tout nouveau client : Team Tracker.
Les Program Managers et Project Lead bénéficieront d'une multitude de nouveaux rapports et dashboards disponibles via Reporting services, Excel mais aussi le client Web Team System Web Access ainsi que le client Project PortFolio fourni avec Project. Ci dessous quelques captures illustrant ces nouveaux outils de reporting, les connaisseurs s'apercevront au traverss de ces snapshots que nous entrons dans une nouvelle ère du reporting projet, avec une véritable approche dashboard, de la Business Intelligence et des KPIs :







L'intégration avec Project Server est maintenant incluse en standard permettant de ce fait une approche PMO pour les projets gérés à l'aide de TFS.
Pour plus de détails sur ces nouveautés, se référer à l'article : Module Project Management

Les nouveautés du Module Team Architect

Avec ROSARIO Team Architect, Microsoft se fixe les objectifs suivants :

  • Gérer la complexité à l'aide de modèles visuels
  • Comprendre, Manipuler et faire évoluer des applications existantes.
  • Améliorer la maintenabilité, la modularité et la réutilisation de composants des applications.
Pour atteindre ces objectifs, les fonctionnalités suivantes ont été implémentées :

L'Architecture Explorer : L'architecte possède maintenant un couteau suisse sous la forme d'un outil avec une interface en WPF, lui permettant d'explorer une solution existante afin de recueillir des informations sur l'ensemble des artefacts d'un projet ainsi que leur dépendances et la possibilité d'exécuter des actions sur les éléments selectionnés.
Le Support de l'UML : Après la modélisation physique avec les DSL , Microsoft a décidé d'intégrer la modélisation logique avec le support du langage UML via des designers pour réaliser les types de graphiques suivants :
  • Diagrammes de Use Case
  • Diagrammes d'activité
  • Diagrammes de classes
  • Diagrammes de composants
  • Diagrammes de séquence
A noter que les diagrammes de séquence permettent même d'effectuer des actions de rétro-conception sur du code existant, ou encore de la génération de code à partir d'un modèle.
L'intégration des software factories via DSL : Issu d'un rapprochement des équipes de Rosario et de Patterns & Practices, les architectes pourront aller jusqu'au Design en mode graphique de services WCF par exemple avec génération du code associés : implémentation, contrat et host. Le concept WSSF exploitant GAX est maintenant intégré au Diagramme Application Designer.
Pour plus de détails sur ces nouveautés, se référer à l'article :Module Architecte

Les nouveautés du Module Team Developer
Les développeurs vont également découvrir 4 nouveautés leur permettant d'améliorer la qualité de leur code ainsi que leur productivité :
  • Le Standalone Debugger : pour effecuer des opérations de débogage sur des stations non équipées de Visual Studio.
  • Le History Debugger : Une nouvelle expérience F5 avec un processus d'enregistrement en tache de fond des évènements et erreurs ayant lieu durant une session de debug. Le développeur peut alors revenir par la suite et consulter les informations recueillies en parcourant le stack des appels.
  • La gestion des tests unitaires impactés : Après chaque modification de code, le développeur est informé des tests unitaires impactés par les modifications de code apportées, et peut donc rejouer ces tests afin de pallier à tout phénomène de regression.
  • La gestion de l'analyse statique de code par groupe de règles paramétrables : Cette nouvelle fonctionnalité permet au développeur de cibler les règles à corriger gràce au paramétrage de groupe de règles. Le développeur peut donc réduire le bruit généré par l'application des 206 règles et cibler plus précisément les corrections à effectuer en fonction d'un contexte donné.

Pour plus de détails sur la mise en oeuvre de ces 4 nouveautés, se référer à l'article : Module Développeur

Les nouveautés du Module Team Tester
Les testeurs sont sans contexte les utilisateurs qui seront les plus surpris, tant les nouveautés apportés à ce module sont importantes. Microsoft a entièrement revu son framework de tests et également développé une nouvelle génération d'outils qui vont améliorer grandement la productivité des équipes de test.

Les Principaux objectifs de Team Test sont donc :
  • Aligner l’assurance qualité dans l’organisation du cycle de vie projet
  • Gérer la qualité au plus tôt dans le cycle de vie projet
  • Augmenter la productivité des équipes de Test
  • Eliminer le syndrome de non reproductibilité des bugs
  • Mise à disposition d’outils modernes, et simples à utiliser
  • Capacité de priorisation des tests ( Connaitre les tests impactés par des modifications de code)
  • Capacité de calcul de Taux de couverture des tests (par rapport au WBS Projet)
Ces objectifs ont été atteints par la production des outils et concepts suivants :
  1. CAMANO : Le client de dernière génération pour gérer et exécuter les cas de tests incluant l'ensemble du cycle de vie de l'activité de tests. CAMANO a pour fonction principale la planification, l'analyse et le reporting sur l’activité de test, mais aussi la création et l'exécution des tests ainsi que la transmission des bugs reproductibles aux développeurs encapsulant la trace (Proteus), les captures d'écrans et optionnellement la séquence video du jeu du test ainsi que le détails des étapes du test et les résultats obtenus par le testeur.
  2. Automation Strips : Ce nouveau concept permet de mémoriser les étapes d'un test par une technique de recording pour automatisater le jeu de tests manuels et donc accèlérer les campagnes de tests.
  3. Coded UI Tests : Les tests codés permettent à partir d'un Automation Strip de coder un test afin de produire une automatisation complète du test manuel afin de pouvoir par exemple jouer ce test lors de builds automatisés. Un test codé va jusqu'à controler les valeurs présentes dans des controles d'interface Graphiques et controler la conformité avec la valeur attendue du test. La fonctionnalité est aujourd'hui fonctionnelle pour les clients Web et est attendue très prochainement pour les clients riches.
  4. TEAM LAB : Sans contexte l'innovation la plus spectaculaire de Rosario : avec Team Lab Microsoft apporte une solution à la probblématique récurrente des temps passés à la préparation, la configuration et le déploiement d’environnements de tests entrainant de la perte en productivité des équipes. Team Lab est basé sur une technologie de virtualisation et offre en outre le concept de snapshot, permettant au testeurs de mettre à disposition des développeurs des snapshots d'environnements pour reproduire des bugs identifiés. Team Lab sera intégré à Camano. Team Lab permet de déployer des environnements de tests à la demande en quelques minutes.
Pour plus de détails sur les nouveautés incluses dans ce module, se référer à l'article : Module Testeur

Autres nouveautés apportées par Rosario
Parmi les autres nouveautés, on citera :
  • L'intégration de Windows Workflow Foundation à Team Build permettant de gérer des scenarios complexes de build automatisés.
  • Coté Source Control il est possible désormais d'ajouter des fichiers au contrôle de code source par un simple cliquer glisser de fichier, la gestion des Workspaces est simplifiée et les fonctions de recherche, les affichages d'historique et la navigarion ont également amélioré.
  • Un module de visualisation des branches permettra de suivre graphiquement les activités de brnaching et de merge. Ci dessous une illustration de cette nouveauté :

  • Une nouvelle version de Team System Web Access entièrement relookée

vendredi 29 août 2008

ROSARIO : Module Développeurs

La nouvelle version Team Developer de Rosario apporte elle aussi sa part de nouveautés qui vont permettre au développeur un contrôle plus efficace concernant la qualité du code écrit au travers de nouveaux outils dont :

  • Le Standalone Debugger
  • Le History Debugger
  • La gestion des tests unitaires impactés.
  • La gestion de l'analyse statique de code par groupe de règles paramétrables.
Le Standalone Debugger : Zero Impact Debugging
Ce nouvel outil a pour vocation de permettre à un développeur d'effectuer des opérations de débogage sur une machine cible (pré-production, intégration ou test) sans avoir à installer Visual Studio. Cet outil est simplement généré à partir de la station de développeur sous forme d'un ensemble de fichiers et est simplement déployable suivant une procédure XCopy.

L'outil pourra donc être utilisé soit :
  • à partir d'une clé usb.
  • à partir d'un share réseau.
  • en copiant les fichiers sur la machine cible.
La taille de l'outil généré est de moins de 50 Mo!
Ci dessous les étapes pour générer un Standalone Debugger puis le mettre en oeuvre :

A partir de visual Studio lancer la commande Debug / Create Standalone Debugger

L'assistant suivant démarre, spécifier l'emplacement disque pour la création de l'outil (dossier, clé usb ou encore partage réseau :

Cliquer sur Suivant, le processus de génération est lancé :

Cliquer sur Finish pour finaliser le processus

Si l'on ouvre le dossier cible, on constate la création des binaires de l'outil sous forme de différents exécutables, assemblies et fichiers :

Pour démarrer le Standalone Debugger, il suffit de double cliquer sur le fichier Vsdebug.exe. L'interface graphique se présente comme illustré ci dessous et affiche une page d'accueil permettant de démarrer rapidement sans consulter de fichiers d'aide :

Les taches tels que démarrer un programme, s'attacher à un process, ouvrir un fichier ou une solution sont disponibles directement à partir de la page d'accueil.
Pour démontrer la puissance de cet outil nous allons effectuer une petite démonstration édifiante :
Créons une petite application Winform avec comme unique fonction un bouton affichant une message box.
Déployons cette application sur une station cliente (attention, le fichier pdb doit être présent sur la machine cible). Ci dessous le contenu du dossier de cette application :

Le développeur doit déboguer l'application sur cette station et va donc générer une instance de l'outil sur sa clé usb ainsi qu'une copie des fichiers C# à déboguer, dans notre exemple, il s'agit du fichier form1.cs par exemple.

Etape 1 : Démarrage de l'application sur la machine cible

Etape 2 : Démarrer le Standalone Debugger à partir de la clé USB en cliquant sur VSDebug.exe

Etape 3 : A partir de la page d'accueil du Debugger cliquer sur le lien Attach : Process




Etape 4 : Selectionner le processus de l'application à déboguer puis valider

Etape 5 : A partir de la clé usb ouvrir le fichier form1.cs et placer un point d'arrêt sur l'évènement on_click du bouton



Etape 6 : Le clic sur le bouton "demo" de l'application active le point d'arrêt (mode Debug) comme si le développeur utilisait Visual Studio directement sur son poste de développement.

Il est évident que cette nouvelle fonctionnalité va grandement aider à la résolution des bugs et notamment réduire le fameux syndrome de non reproductibilité des bugs. Le développeur a à sa disposition un outil lui permettant de diagnostiquer de manière efficace les anomalies d'une application directement sur les plates formes cibles réduisant ainsi considérablement les temps d'investigation pour la résolution de bugs

L'History Debugger : Trouver et fixer rapidement un bug (Nom de code Proteus)
L'history Debugger est une nouvelle experience F5 pour le développeur , ce nouvel outil intégré à Visual Studio for Developer Edition enregistre l'ensemble des artefacts produits durant l'exécution d'une application en mode debug et permet de retracer ou rejouer l'execution :
En cas de Bug, il est très simple et rapide de trouver la cause simplement en consultant les information recueillies par l'outil présentées sous la forme d'une structure arborescente.
L'outil augmente la productivité du développeur en réduisant le temps d'investigation sur la cause d'une erreur dans le code ou sa reproduction.
Regardons le fonctionnement de l'outil à travers une démonstration :
Pour cette démonstration nous allons utiliser l'application Patient Monitoring, application de démonstration écrite en WPF fournie avec la VPC Rosario (CTP d'Avril.).
Pour ce scénario de Debug, on démarre l'application à partir de la solution dans Visual Studio en pressant la touche F5

L'application Patient Monitoring s'affiche

Sur activation de l'onglet Details, la photo du patient apparait ainsi que des informations détaillées

Le développeur choisit alors le patient "Aaberg" et constate que pour ce patient, la photo n'apparait pas :


Le développeur va alors lancer à partir du menu Debug / Windows la commande Debug History pour accèder à l'historique des actions effectuées durant la session de debug :

La fenêtre apparait comme illustré ci dessous :

Le développeur clique sur le lien "Break into the Debugger", affichant ainsi l'historique de l'ensemble des évènements survenus lors de la phase de debug sour forme d'une arborescence :

On remarquera l'iconographie placé devant les noeuds de la treeview, et notamment les symboles d'erreurs en rouge, indiquant les erreurs levées lors de l'exécution. Dans notre cas, on remarque que le chargement de l'image du patient a déclenché une erreur qui a été gérée, raison pour laquelle l'application n'a pas planté.
Le développeur va donc pouvoir rapidement corriger l'anomalie en consultant simplement les informations fournies en regard de l'icone Erreur : le message est "cannot locate ressource ..."

Le nouvel outil History Debugger permet également au développeur de naviguer dans le scénario de debug simplement en cliquant sur les noeuds de l'arborescence avec la possibilité par un simple double clic d'afficher le code concerné par l'action enregistrée.
Il est incontestable que cet outil sera d'une aide précieuse au développeur pour l'activité de Bug fixing.
L'outil fonctionne comme un recorder durant les phases de Debug, le niveau d'informations est d'ailleurs paramétrable comme le montre la capture d'écran ci dessous :


Paramétrage de l'outil History Debugger

La gestion des tests unitaires impactés

Il est aujourd'hui largement établi que la qualité d'un développement passe par l'activité de test et que le métier de développeur est bien évidemment d'écrire du code mais surtout de vérifier que le code écrit fonctionne.
A ce titre Le message de Microsoft au travers l'implémentation du module Team Tester est clair : "Du code qui n'a pas été testé ne doit pas être livré!".
Dans les versions précédentes de Visual Studio (2005 et 2008), sur la partie tests unitaires, l'outil permet de générer l'ossature des tests unitaires pour l'ensemble des fonctions écrites dans un projet en quelques clics de souris. Néanmoins, sur des projets de taille importante le développeur se trouve très rapidement en face de centaines de tests unitaires à gérer et dans l'incapacité de savoir pour une modification de code donnée quel test unitaire est impacté. Compte tenu des temps d'exécution des test unitaires, le fait de rejouer l'intégralité est couteux en temps.
C'est exactement à cette problématique que répond la nouvelle version de l'outil : Afficher les tests unitaires impactés par une modificaiton de code.
Regardons dans la pratique à travers un exemple comment cette nouvelle fonctionnalité est implémentée dans l'outil.
Pour gérer les test unitaires impactés, le développeur doit tout d'abord afficher la nouvelle version de la fenêtre "Test View" en lançant la commande Test / Other Windows / Test View.

La fenêtre apparait à priori identique à celle de la version 2008


Le développeur active la fonction Group By en choisissant la nouvelle option "Test Impact Status"

La fenêtre affiche l'ensemble des tests dans la rubrique "Not Impacted"

Le développeur effectue alors des modifications dans le code de son application, (dans notre exemple, 2 lignes de code) puis sauvegarde ses modifications.

Aussitot l'outil detecte les tests unitaires qui ont été impactés par les modifications de code et affichent les tests unitaires impactés dans la rubrique "recommended", ce qui indique au développeur qu'il est recommandé de rejouer ces tests afin de vérifier l'impact des modifications afin d'éviter de potentielles régressions.

Le développeur procède à l'éxécution des tests impactés en utilisatnt le menu contextuel à partir de la fenêtre "Test View".

Lorsque les tests sont rejoués, ils apparaissent dans la rubrique "Verified"

La fenètre sera remise à jour au fur et à mesure des modifications apportées. Le développeur a donc en permanence une vision de l'impact de ses modifications sur la stabilité de l'application au travers des tests unitaires.

La gestion de l'analyse statique de code par groupe de règles paramétrables

Suivant l'adage bien connu "Trop d'information tue l'information", voici une nouvelle fonctionnalité qui va améliorer le contrôle et le focus du développeur sur la mise en conformité de son code par rapport aux règles appliquées par l'outil d'analyse statique de code fourni avec Visual Studio FXCop (206 règles réparties dans 11 groupes : Design, Globalisation, intéropérabilité, maintenabilité, mobilité, Nommage, Performance, Portabilité, Stabilité, Sécurité et Usage). Dans les versions précédentes, le nombre d'erreurs et de warnings générés par cet outil décourageait rapidement les développeurs pourtant plein de bonne intention au départ. Grace à la nouvelle version de l'outil, il est maintenant possible de simplement Créer des groupes de règles en fonction de critères pertinents par rapport à un contexte projet puis choisir les groupes de règles à appliquer. Cela agit comme un filtre qui va permettre de cibler le travail du développeur. Au travers d'un scenario, nous allons voir comment tirer profit de cette nouvelle fonctionnalité. Lançons tout d'abord une analyse de code statique sur un des projets de notre solution en utilisant la commande "Run Code Analysis" du menu contextuel :

Le résultat de l'analyse laisse apparaitre 18 warnings :

Nous allons modifier le paramétrage en utilisant les groupes de règles paramétrables. Pour cela, il suffit d'ouvrir la fenêtre de propriétés du projet et activer l'onglet "Code Analysis" comme indiqué ci dessous :

On remarque que la configuration en cours est "All Rules" et entraine l'applicaiton des 206 règles.Hors en supposant que la livraison d'une release est proche, nous allons sélectionner l'option "Release Criteria CheckList" dans la liste Rule Set. Instantanément, le nombre de règles tombe à 48, ce qui va fortement limiter le nombre de warnings à traiter par le développeur.

Le développeur relance une analyse sur le projet, le nombre de warning est tombé de 18 à 5

Le développeur ou le responsable projet pourra également créer des règles customs et les exporter sous forme de fichiers XML afin de les distribuer à l'équipe de développement.
Dans ce dernier exemple, on personnalise une règle Custom pour n'adresser que les violations concernant les performances.


En relançant l'analyse, le développeur a isolé les warnings concernant les règles de performances.

Encore une innovation qui va contribuer à la qualité des développements, à disposition des développeurs pour une travail avec plus de productivité.