Let There Be Code RSS 2.0
# Tuesday, March 09, 2010

image

Depuis 4 ans Bewise organise à Toulouse la BDC, le plus grand événement IT Microsoft de la région Sud Ouest.

Venez découvrir les innovations technologiques et échanger avec des experts Bewise et Microsoft, le tout dans un cadre local, au stade Toulousain Ernest Wallon.

Une plénière, 8 sessions et 25 espaces de démonstration pour découvrir les dernières nouveautés : Visual Studio 2010, Team Foundation Server 2010, Sharepoint 2010, Azure, framework 4.0, développement Surface…

image

Cette année j’aurai la chance d’être au coté de David Catuhe et Mitsu Furuta lors de la session plénière. Je co-animerai, avec Alain Marty, une session sur les tests avec VSTS 2010. Vous me retrouverez également sur l’espace de démonstration Accès aux données où nous parlerons notamment d’Entity Framework 4.0.

N’attendez plus et inscrivez-vous!!

Tuesday, March 09, 2010 1:04:25 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
BDC 2010
# Monday, February 15, 2010

Hier je me suis attaqué à l’upgrade de BOWIE sur la version RC de TFS 2010, qui sera disponible sur Codeplex en fin de semaine.

Pour cette occasion, voici une interview menée par Patrice Lamarche et qui présente les fonctionnalités de BOWIE 2010.

Si vous ne connaissez pas encore cet addin TFS pour Outlook c’est l’occasion de le découvrir en images!

Monday, February 15, 2010 7:11:36 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Interview | Outlook Work Items Extension | TFS | TFS SDK | VSTO
# Friday, February 12, 2010

Si vous avez suivi l’actualité de la semaine, vous savez certainement que VS 2010 et TFS 2010 sont disponibles en version Release Candidate pour les abonnés MSDN. L’information a été annoncée par plusieurs Microsoftees, dont notamment Cameron Skinner et Brian Harry.

A la suite de cette annonce, plusieurs informations importantes sont à noter. Tout d’abord concernant le support de la RC, qui comme la Beta 2, est une version “go live”.

Martin Hinshelwood fourni un témoignage intéressant sur la migration (ou plutôt sur la désinstallation) de TFS 2010 Beta 2 vers la RC.

Une autre annonce très importante de Brian Harry sur la sortie des Power Tools de TFS pour la version RC. Ces Power Tools étaient disponibles en version Beta 2 et devraient normalement être disponibles d’ici le 19 février, c’est à dire dans une semaine.

Concernant l’installation de Visual Studio 2010 RC, si vous avez installé la version Beta 2 ainsi que les Power Tools Beta 2, sachez qu’ils vous faudra les désinstaller pour installer la RC.

Petite nouveauté sur l’installation de Visual Studio 2010 : Team Explorer et VS 2010 ne font qu’un. Plus besoin d’installer VS 2010 puis Team Explorer. Team Explorer est directement inclus à VS 2010. Cependant une version standalone de Team Explorer existe toujours, pour les personnes qui n’ont pas besoin des fonctionnalités de Visual Studio.

Attention aux projets de modélisation. Si vous avez utilisé les projets de modélisations dans la Beta 2, sachez qu’ils ne sont pas supportés tel quel dans la RC. Cameron Skinner nous propose un outil en ligne de commande permettant de migrer les projets de modélisation ainsi que les diagrammes UML développé en Beta 2 vers la RC.

Le Visual Studio Visualization and Modeling SDK RC est également disponible en téléchargement et pas seulement pour les abonnés MSDN. Ce SDK, en plus du DSL SDK, permet notamment d’étendre les fonctionnalités des diagrammes UML.

Enfin quelques changements (non exhaustifs) dans le TFS SDK comme nous l’indique Buck Hodges. Dans ces changements, à noter que la classe TeamFoundationServer devient obsolète et est remplacée par la classe TfsTeamProjectCollection.

 

Bons téléchargements !!

Friday, February 12, 2010 4:55:11 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
TFS | Visual Studio
# Thursday, February 11, 2010

Les Techdays 2010 sont terminées. Pas mal de stress en arrivant puisque :

  • je n’étais pas sur la liste des speakers,
  • sur mon badge exposant le nom de la société n’était pas Bewise mais le nom d’un concurrent,
  • impossible de retrouver ma session sur le planning général, elle avait changé de nom…

Mais finalement tout s’est arrangé et ma session sur l’architecture avec Visual Studio 2010 a eu pas mal de succès avec pas moins de 250 personnes présentes.

Merci à :

  • Sacha de l’avoir co-animé avec moi
  • Alain de m’avoir fait confiance ;)
  • Pat, David, JP et les autres de m’avoir supporté pendant cette longue journée.

Et pour terminer merci aux hôtesses Bewise d’avoir pris la pose ;)

P1010188

Thursday, February 11, 2010 11:05:00 AM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Techdays 2010
# Wednesday, February 03, 2010

bowie2010

Comme l’indique clairement le titre, la version 2010 de mon addin TFS pour Outlook est disponible en version beta. Il fonctionne pour Outlook 2007 et 2010 et TFS 2008 et 2010 beta 2. Quelques uns de mes collègues me servent actuellement de beta testeur (merci Lio et Io).

Vous retrouverez sur la page d’accueil du projet codeplex la liste des fonctionnalités disponibles.

Pour le télécharger, ça se passe par là ---> http://bowie.codeplex.com

N’hésitez pas à m’envoyer vos remarques, suggestions, bugs…

Wednesday, February 03, 2010 2:38:00 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Outlook Work Items Extension | TFS | TFS SDK | VSTO
# Friday, January 29, 2010

Depuis quelques temps je me suis remis au développement de BOWIE. Voulant absolument découvrir l’API de gestion des Builds du SDK de TFS, je me suis creusé les méninges afin de trouver une fonctionnalités intéressantes pour pouvant s’intégrer de façon originale dans Outlook.

Sachant qu’une Build :

  • s’exécute à un temps T1
  • se termine à un temps T2
  • et possède un certain status (Accepted, Failed…),

une Build peut donc être représentée dans un calendrier Outlook par un rendez-vous avec :

  • une date de début
  • une date de fin
  • une catégorie représentant le status
  • une zone permettant d’afficher le détail de la Build, comme dans Visual Studio

On peut également aller plus loin en représentant dans le calendrier les définitions de Build. Dans certain cas, nous créons des définitions de Build récurrentes. Ces définitions de Build récurrentes définissent :

  • un pattern de récurrence (journalier, hebdomadaire…)

Ce type de définition de Build peut donc être représentée par un rendez-vous récurrent dans un calendrier Outlook. Nous pourrions par exemple en ouvrant le rendez-vous, proposer une interface permettant d’éditer la définition, ou encore de démarrer une nouvelle Build.

Après avoir mis à plat toutes ces idées, il ne reste plus qu’à trouver les points d’entrées dans le TFS SDK. Tout d’abord nous avons besoin des références suivantes :

  • TeamFoundation.Client
  • TeamFoundation.Build.Client
  • TeamFoundation.Build.Common

La récupération de toutes les Builds d’un projet nécessite une instance de la classe TeamFoundationServer que l’on obtient à l’aide de la classe TeamFoundationFactory.

Ensuite il faut récupérer l’API du serveur de Build via la méthode GetService<IBuildServer>(). Enfin il ne reste qu’à appeler la fonction QueryBuilds(string projectName) en lui spécifiant un nom de Team Project :

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://ServerUri");
IBuildServer bserver = tfs.GetService<IBuildServer>();
IBuildDetail[] details = bserver.QueryBuilds("TeamProjectName");

Maintenant que nous avons nos Builds, il nous faut les parcourir et créer des rendez-vous dans le calendrier pour chacune d’elle… et ne pas oublier de stocker l’Uri de la Build dans les UserProperties de l’Appointment :

AppointmentItem appt = folder.Items.Add(OlItemType.olAppointmentItem) as AppointmentItem;
appt.Start = item.StartTime;
appt.End = item.FinishTime;
appt.Subject = item.BuildDefinition.Name + " - " + item.Status.ToString();
appt.ReminderSet = false;
appt.UserProperties.Add("BuildUri", OlUserPropertyType.olText);
appt.UserProperties["BuildUri"].Value = item.Uri.ToString();

Après quelques petits efforts on arrivera facilement à faire un petit formulaire dans ce style :

image

Pour l’affichage du rapport d’exécution d’une Build on peut utiliser une FormRegion dans le formulaire d’un Appointment.

On récupère l’Uri de la Build dans les UserProperties de l’Appointment. Puis toujours avec l’API du serveur de Build on récupère les détails d’exécution via la méthode GetAllBuildDetails(Uri buildUri) :

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://TeamServerUri");
IBuildServer bserver = tfs.GetService<IBuildServer>();
IBuildDetail details = bserver.GetAllBuildDetails(new Uri("BuildUri"));
Un objet BuildDetail, comme son nom l’indique, contient toutes les informations d’une Build : l’heure d’exécution, le temps d’exécution, le numéro de build, les étapes de la build, le work item

éventuellement créé, le status, le chemin du fichier de log, la liste des erreurs, des warnings, la configuration… bref vraiment toutes les infos.

Le code ci-dessous nous montre comment récupérer certaines de ces informations :

// Numéro de la Build
lblBuildNumber.Text = details.BuildNumber;

// Emplacement du Log
lnkLogPath.Text = details.DropLocation;

// Dernière Modification
lblSummary.Text = string.Format("Build last modified by {0} {1:0.0} hours ago \r\n", details.LastChangedBy, (DateTime.Now - details.LastChangedOn).TotalHours);

// Plateforme
lblErros.Text += configuration.Fields[InformationFields.Platform] + " | " + configuration.Fields[InformationFields.Flavor] + "\r\n";

// Nombre d'erreurs et de warnings
lblErros.Text += configuration.Fields[InformationFields.TotalCompilationErrors] + "error(s), " + configuration.Fields[InformationFields.TotalCompilationWarnings] + "warning(s) \r\n";

// WorkItem créé
foreach (IBuildInformationNode node in details.Information.GetNodesByType(InformationTypes.OpenedWorkItem, true))
{
	lnkBug.Text = string.Format("Bug {0}", node.Fields[InformationFields.WorkItemId]);
    lblState.Text = string.Format("Current state is {0}, currently assigned to {1} \r\n", node.Fields[InformationFields.Status], node.Fields[InformationFields.AssignedTo]);
}

// Le détail des erreurs (fichier, numéro de ligne, message)
foreach (IBuildInformationNode item in details.Information.GetNodesByType(InformationTypes.BuildError, true))
{
	lblErros.Text += "    " + item.Fields[InformationFields.File] + " (" + item.Fields[InformationFields.LineNumber] + "): " + item.Fields[InformationFields.Message] + " \r\n\r\n";
}

Le code précédent donne le résultat suivant :

image

Friday, January 29, 2010 5:40:00 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Outlook Work Items Extension | TFS SDK
# Wednesday, January 27, 2010

Je vous invite à vous inscrire au plus grand événement Microsoft de l’année, les Techdays, qui aura lieu les 8, 9 et 10 février au Palais des Congrès de Paris.

J’y ferai une apparition, le mardi 8 à 17h30 sur le parcours ALM pour présenter les nouveautés de Visual Studio 2010 Architecte au côté de François Merand.

La session:

Architecture : quoi de neuf avec Visual Studio 2010

Le mardi 9 février 2010, 17:30 - 18:30

UML, explorateur d'architecture, diagrammes de couches... Visual Studio 2010 a été pensé comme un outil d'architecture complet à la portée de tous. Au cours de cette session, nous explorerons les possibilités de cet outil pour les phases d'architecture de vos développements, et au delà.

 

 

N’attendez plus, inscrivez vous!!

Wednesday, January 27, 2010 8:55:00 AM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Techdays 2010
# Friday, January 22, 2010

Pour ce dernier lab j’ai choisi de montrer ce qu’il est possible de faire avec les templates de génération de code T4 et Entity Framework :

L’atelier se découpe en 2 parties :

  • Créer son premier template T4
  • Utiliser le template de génération de code Entity Self Tracking pour EF 4.0

Toutes les ressources pour ce lab sont disponible ici :

Friday, January 22, 2010 5:16:00 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Entity Framework 4.0
# Sunday, January 17, 2010

Voici le 3ème épisode de la série d’ateliers sur Entity Framework 4.0. Dans ce lab je vous propose de découvrir les bases d’ADO.NET Data Services et notamment :

  • Exposer un modèle Entity Framework ou une partir du modèle avec ADO.NET Data Services
  • Interroger le service via REST
  • Créer et utiliser un proxy ADO.NET Data Services afin de récupérer des données

Le starter et la solution sont disponible ici :

Sunday, January 17, 2010 6:18:53 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
ADO.NET Data Services | Entity Framework 4.0
# Monday, December 21, 2009

Pour continuer la découverte du TFS SDK, je vous propose de découvrir comment retrouver l’adresse du Team System Web Access (TSWA) d’un serveur Team grâce au TFS SDK. Pour info je n’ai trouvé aucune documentation concernant cette partie du SDK sur la MSDN.

Pourquoi avoir besoin de récupérer les URL ? Tout simplement lorsque l’on étend les fonctionnalités de TFS vers d’autres outils tiers. Par exemple, dans une fonctionnalité de BOWIE 2010 d’envoie de Work Items par mail, je voulais, pour chacun des work items, avoir un lien qui pointe vers la page d’édition du work item comme indiqué ci-dessous :

image

Pour cela nous avons besoin d’une instance de la classe TeamFoundationServer que l’on trouve dans l’assembly Microsoft.TeamFoundation.Client.dll. Il faut ensuite récupérer une instance de la classe TswaClientHyperlinkService via la méthode GetService de l’objet TeamFoundationServer :

TeamFoundationServer server = TeamFoundationServerFactory.GetServer("http://localhost:8080/tfs/DefaultCollection");
TswaClientHyperlinkService tswa = server.GetService<TswaClientHyperlinkService>();
Grâce à cette classe nous allons pouvoir récupérer les url du Team System Web Access. Dans mon cas, pour récupérer l’url d’un work item à partir de son Id, il suffit d’utiliser la méthode GetWorkItemEditorUrl(int id) :

int wiId = 3;
Uri wiUri = tswa.GetWorkItemEditorUrl(wiId);

On obtient une URL du style : http://localhost:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&id=3

Cette URL permet d’accéder à la page suivante :

image

Voici quelques unes des méthodes de la classe TswaClientHyperlinkService permettant de récupérer les url d’objets TFS:

  • GetChangesetDetailsUrl(int changeSetId)
  • GetHomeUrl(Uri projectUri)
  • GetShelvesetDetailsUrl(string shelvesetName, string shelvesetOwner)
  • GetSourceExplorerUrl(string serverItemPath)
  • GetViewBuildDetailsUrl(Uri buildUri)
  • GetWorkItemQueryEditorUrl(Uri projectUri, string queryPath)

La prochaine fois je vous ferai découvrir l’API de Build du TFS SDK, via le type IBuildServer.

Monday, December 21, 2009 8:17:37 PM (Paris, Madrid, UTC+01:00)  #    Voir Commentaires
Outlook Work Items Extension | Team System Web Access | TFS SDK
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Benoît Laut
Sign In
All Content © 2010, Benoît Laut
DasBlog theme 'Business' created by Christoph De Baene (delarou)