Let There Be Code RSS 2.0
# Sunday, May 02, 2010

logo_bowie[1] Cette semaine j’ai publié une nouvelle version de BOWIE.

La précédente version était une beta qui fonctionnait pour TFS 2010 RC, celle-ci supporte TFS 2010 RTM.

En plus de supporter TFS 2010 RTM, cette nouvelle version corrige les bugs qui avaient été remontés sur la Beta. Au niveau des nouveautés, vous pouvez maintenant gérer vos alertes comme dans Visual Studio :

 ProjectSettings manageProjectAlerts

BOWIE 2010 fonctionne pour TFS 2008/2010 et Outlook 2007. Il est compatible Outlook 2010. Cependant je travaille actuellement sur une nouvelle version qui fonctionnera exclusivement sur Outlook 2010 afin de bien s’intégrer au nouveau Ribbon.

Sunday, May 02, 2010 9:25:44 PM (Romance Daylight Time, UTC+02:00)  #    Voir Commentaires
Outlook Work Items Extension | TFS | TFS SDK | VSTO
# Sunday, April 11, 2010

La semaine dernière j’ai testé la migration d’un serveur TFS 2010 d’une machine A vers une machine B et je vous propose de découvrir ici les différentes étapes pour y arriver.

Cet article aborde la migration des composants suivants :

  • le serveur TFS 2010 et ses collections,
  • le serveur Reporting Services,
  • le site SharePoint
1/ Détacher la collection de projets du serveur A

Lancer Team Foundation Server Administration Console, aller dans Application Tier, puis dans Team Project Collections.

Sélectionner la collection à détacher, puis dans l’onglet général cliquer sur Detach collection :

image

Le wizard suivant s’ouvre et nous invite à cliquer sur Next et Verify :

image

Après avoir cliqué sur Verify, si tout ce passe bien, on est invité à cliquer sur Detach :

image

Le warning m’indique 2 choses :

  • tout d’abord un message d’avertissement indiquant que la collection était attachée à une base de données SQL 2008 Enterprise et de prendre cette information en considération lors de la restauration sur un autre serveur SQL.
  • ensuite un message d’avertissement concernant les services de Builds. Ce message m’indique que si des builds sont en train de s’exécuter alors elles seront stoppées.

Cliquer ensuite sur Detach afin de détacher la collection. Voici le résultat :

image

Le message d’avertissement concernant les services de Build m’indique que le contrôleur et l’agent ont été désactivés.

2/ Récupérer les bases de données du serveur A

Pour restaurer le serveur TFS sur une autre machine, nous avons besoin de plusieurs bases de données. Bien évidemment cela dépend de l’installation qui a été faite. Dans mon cas j’ai installé le serveur TFS avec le portail Sharepoint et le serveur de rapports.

Depuis SQL Server Management Studio effectuer un backup des bases de données suivantes :

  • TFS_DefaultCollection
  • ReportServer
  • ReportServerTmpDB
  • WSS_Content

image 

3/ Backup de la clé de cryptage de Reporting Services

Certaines informations de reporting services, comme les mots de passe ou les chaines de connexion, sont cryptées en base de données. Lorsque l’on veut migrer un serveur Reporting Services il faut penser à effectuer un backup de la clé de cryptage afin de restaurer cette clé sur l’autre serveur.

Ouvrir Reporting Services Configuration Manager, puis aller dans Encryptions Keys :

image

Cliquer ensuite sur Backup, sélectionner une destination ainsi qu’un mot de passe :

image

4/ Restauration de la collection de projet sur le serveur B

Je ne décrirai pas l’installation du serveur TFS sur la machine B, car il suffit de faire une installation (en mode advanced) de TFS 2010.

Une fois TFS 2010 installé sur la machine B, restaurer la base de données Tfs_DefaultCollection sur le serveur SQL sur lequel pointe le nouveau serveur TFS :

image

5/ Attacher la collection au serveur TFS

Ouvrir la console d’administration de TFS, aller dans Application Tier, puis dans Team Project Collection et cliquer sur Attach Collection :

image

Sélectionner la base de données précédemment restaurer :

image

Cliquer ensuite sur Next et Verify :

image

Cliquer ensuite sur Attach :

image

Comme on peut le voir sur l’image ci-dessus, la collection a bien été rattachée au nouveau serveur TFS. Il reste à migrer/configurer Reporting Services et Sharepoint.

6/ Restauration de Reporting Services

Depuis SQL Server Management Studio, restaurer les bases de données Reporting Services (ReportServer et ReportServerTempDB).

Attention : lors de restauration de la base de données ReportServerTempDB, il faut lui donner le même nom que celui qu’elle avait sur l’autre serveur SQL. En effet le nom de cette base de données est écrit en dur dans les procédures stockées de la base ReportServer.

Ouvrir ensuite Reporting Services Configuration Manager, puis aller dans Encryption Keys et cliquer sur Restore :

image

Dans location, rechercher le fichier .snk précédemment récupérer sur l’autre serveur de rapport, rentrer le mot de passe puis cliquer sur OK.

7/ Suppression de la base de contenu Sharepoint existante sur le serveur B

Dans les outils d’administration, lancer l’outil SharePoint 3.0 Central Administration :

image

Cliquer ensuite sur Application Management, puis dans le menu Sharepoint Web Application Management cliquer sur Content databases :

image

Cliquer sur la base WSS_Content, dans les paramétrages de la base, cocher la case Remove content database puis cliquer sur OK :

image

8/ Restauration de la base de contenu

Sur le serveur B ouvrir SQL Server Management Studio, puis restaurer la base de données WSS_Content précédemment “backupée” depuis le serveur A.

Une fois la base de données restaurée, ouvrir SharePoint 3.0 Central Administration. Aller dans Application Management, puis dans le menu Sharepoint Web Application Management cliquer sur Content databases.

Cliquer ensuite sur Add Content Database :

image

Remplir les champs de connexion à la base de données précédemment restaurée puis cliquer sur OK.

9/ Configuration des Team Projects

Il reste à reconfigurer les portails des Team Project.

Ouvrir Visual Studio, ouvrir Team Explorer et se connecter au serveur TFS. Clic droit sur le Team Project, puis dans Team Project Settings, cliquer sur Portal Settings…

image

Dans le wizard qui s’affiche, cocher la case Enable Team Project Portal, puis cliquer sur Configure URL…

Sélectionner l’application Sharepoint puis indiquer le chemin d’accès au portail du projet :

image

Cocher la case Reports and dashboards refer to data for this team project, puis cliquer sur OK :

image 

10/ Réparation de la connexion à Sharepoint

Ouvrir la console d’administration de TFS, puis aller dans Sharepoint Web Applications :

image

Cliquer sur Repair Connection, puis dans le wizard cliquer sur Repair :

image

11/Reconstruction du cube

Dans la console d’administration de TFS, aller dans Reporting puis cliquer sur Start Rebuild :

image

12/ Vérification de la migration

Depuis Team Explorer, vérifier que vous pouvez vous connecter à votre nouveau serveur TFS, que vous récupérer la collection ainsi que les Team Project.

Vérifier que le portail est accessible : clic droit sur un Team Project puis cliquer sur Show Team Portal…

image

Si comme moi vous avez encore une erreur lors de l’exécution des rapports, aller sur le web service du datawarehouse (http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx) :

image

Exécuter la méthode ProcessWarehouse sans paramètre, puis ProcessAnalysisDatabase avec en paramètre Full.

Vérifier que les rapports s’exécutent correctement. Si aucun work item n’existe pour le Team Project, vous risquez d’avoir une erreur lors de l’exécution des rapports. Vous aurez une exception du style : Default value or value provided for the report parameter 'WorkItemTypeParam' is not a valid value. (rsInvalidReportParameter). Ceci est un bug connu (bug remonté sur connect : http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint)

Pour ne pas avoir cette exception, il faut que le Team Project contienne au moins 1 work item. Créer un work item (de type tache par exemple) sur le Team Project puis attendez environ 10min, ou pour aller plus vite faire un iisreset.

La migration est maintenant terminée!!

13/ Conclusion

La migration d’un serveur TFS 2010 sur une autre machine n’est pas bien compliquée. De plus la nouvelle console d’administration de TFS est très pratique et permet de gagner pas mal de temps comparer à TFS 2008 et à ces outils en ligne de commande… La console d’administration de TFS 2010 permet de restaurer une collection simplement et rapidement. Après, quelques connaissances de Sharepoint et de Reporting sont nécessaires pour ne pas perdre trop de temps.

TFS Power !

Sunday, April 11, 2010 5:29:40 PM (Romance Daylight Time, UTC+02:00)  #    Voir Commentaires
TFS
# Monday, March 29, 2010

Ce weekend je me suis attelé à l’un de mes projets perso que j’avais, il y a quelques temps, migré vers un TFS 2010 Beta 2. Depuis mon passage sur la RC je n’avais pas encore remis le nez dedans et ce weekend je me suis aperçu qu’une erreur survenait lors de l’exécution des builds.

Voici le détail de l’erreur : File not found: C:\Windows\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe

L’erreur est assez parlante et facile à vérifier. J’ouvre un windows explorer et effectivement le répertoire v4.0.21006 n’existe plus, puisqu’il correspond au numéro de version du framework .Net 4.0 Beta 2. La version RC quant à elle a le numéro v4.0.30128.

Il suffit donc de modifier ce numéro de version quelque part dans la définition des Builds… Après quelques recherches sur le web, je tombe sur le blog de Tomas Scott qui indique qu’il suffit de recréer une nouvelle collection et un nouveau projet. Cette nouvelle collection se basera sur les templates de Build de la version RC, qui eux pointerons vers le bon chemin du framework. Vous pouvez ensuite récupérer ces templates et les remplacer par vos anciens.

C’est en effet une solution simple et pratique… Sauf que moi je suis encore plus fainéant que ça, il me fallait donc une autre solution. Si ce sont les templates qui merde, alors autant chercher dans ces templates le chemin de MSBuild.exe et le remplacer par le nouveau. Ou se trouve ce fameux template ? Dans le source control du Team Project, à la racine, il y a un répertoire BuildProcess Template dans lequel on trouve le template DefaultTemplate.xaml.

image

2 possibilités pour le modifier : en mode notepad ou en mode designer de workflow. Si vous le faites en mode je suis un killer je le fais avec notepad, rien de plus simple : faites une recherche de la chaine v4.0.21006 puis remplacer la par v4.0.30128. Vous devriez normalement trouver 2 occurrences.

Nous allons ici ouvrir le fichier dans le designer de workflow. Après double clic sur le fichier, un joli designer s’ouvre et vous permet d’éditer le template du workflow des builds. Si vous l’étudiez un peu, vous retrouverez les étapes que vous voyez passer lorsque vous lancer une build. Il vous faut rechercher l’activité de type MSBuild, Run MSBuild for Project, comme indiqué ci-dessous :

image

Une fois trouvé, il suffit de la sélectionner et d’afficher les propriétés. Dans les propriétés rechercher la propriété ToolPath :

image

Editer la propriété afin de pointer sur la bonne version du framework, à savoir la v4.0.30128 :

image

Recommencer cette opération en recherchant la 2ème activité de type MSBuild et mettre à jour la propriété ToolPath.

image 

 

Et voilà le tour est joué! Un petit checkin sur le fichier DefaultTemplate.xaml et c’est fini. Pour le vérifier, il suffit de relancer la Build et de constater que l’erreur a disparu.

Si seulement tout pouvait être aussi simple dans la vie…

Monday, March 29, 2010 9:05:30 AM (Romance Daylight Time, UTC+02:00)  #    Voir Commentaires
MSBuild | TFS
# 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 (Romance Standard Time, 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 (Romance Standard Time, UTC+01:00)  #    Voir Commentaires
TFS | Visual Studio
# 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 (Romance Standard Time, UTC+01:00)  #    Voir Commentaires
Outlook Work Items Extension | TFS | TFS SDK | VSTO
# Monday, November 02, 2009

Dans la nouvelle version de TFS, c’est à dire 2010, plusieurs nouveautés sont apparues. Ces nouveautés ont forcément engendré quelques modifications au niveau du SDK de TFS et on peut voir notamment que certaines classes du SDK 2008 sont maintenant obsolètes.

Comme je le disais dans un précédent post, je suis en train de réécrire une nouvelle version de mon addin TFS pour Outlook, Outlook Work Items Extension, pour 2 raisons : ajouter des nouvelles fonctionnalités, mais surtout faire en sorte qu’il fonctionne pour TFS 2010 et TFS 2008. Eh oui, j’ai essayé de l’utiliser en me connectant sur un serveur 2010 et là j’ai eu quelques soucis… Je vais donc essayer de vous expliquer quels sont les points bloquants et comment je migre mon code.

1ère étape : Mise à jour des références

Dans les projets référençant le SDK, supprimer les références du TFS SDK 2008 (version 9.0) par les assembly du SDK 2010 (version 10.0). Après installation de VS 2010 vous trouverez les assemblies dans le GAC, dans \Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies et dans \Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0.

Dans mon cas, j’utilise les assemblies suivantes :

  • Microsoft.TeamFoundation.dll
  • Microsoft.TeamFoundation.Client.dll
  • Microsoft.TeamFoundation.WorkItemTracking.Clients.dll
  • Microsoft.TeamFoundation.WorkItemTracking.Controls.dll

Remarque intéressante : les applications utilisant le SDK 2010 vont pouvoir s’exécuter en 64bits puisque contrairement aux SDK 2008, les assemblies de 2010 sont disponible en 32bits mais aussi en 64bits.

2ème étape : Compiler et parcourir les warnings

Cette étape consiste à retrouver tous les warnings concernant l’utilisation de types ou de méthodes obsolètes.

3ème étape : Mettre les mains dans le camboui !

Pour ma part j’utilisais le controle DomainProjectPicker, qui permet d’afficher la boite de dialogue de sélection de Team Projects. Dans la version 2010, cette classe est obsolète. En effet, maintenant dans TFS 2010 il y a la notion de collections de projets, qui n’existait pas dans 2008. Le contrôle de sélection d’un Team Project a donc changé et il faut maintenant utiliser le TeamProjectPicker.

Avec le SDK 2008 j’avais écrit le code suivant :

List<FavoriteTeamProject> favorites = FavoritesTeamProjectManager.GetFavoritesProjects();
using (DomainProjectPicker picker = new DomainProjectPicker(DomainProjectPickerMode.AllowMultiSelect | DomainProjectPickerMode.AllowProjectSelect))
{
	picker.SelectedServer = new TeamFoundationServer("serverName");
    WorkItemStore wis = new WorkItemStore(s);
    ArrayList list = new ArrayList();
    foreach (var project in item)
    {
    	list.Add(wis.Projects["projectName"].Uri.ToString());
	}
    picker.DefaultSelectedProjects = new SortedList();
    picker.DefaultSelectedProjects.Add(s.Uri.ToString(), list);
	
	if (picker.ShowDialog() == DialogResult.OK)
    {
    	var selectedProjects = picker.SelectedProjects;
	}
}
Avec le SDK de TFS 2010 il faut utiliser le contrôle TeamProjectPicker.

  • L’initialisation du serveur TFS sélectionné par défaut se fait via la propriété SelectedTeamProjectCollection, en lui fournissant le nom du serveur et la collection: serverName\collectionName.
  • L’initialisation des projets sélectionnés via une simple liste de ProjectInfo que l’on affecte à la propriété SelectedProjects du picker

using (TeamProjectPicker picker = new TeamProjectPicker(TeamProjectPickerMode.MultiProject, false))
{
	picker.SelectedTeamProjectCollection = new TeamFoundationServer(@"serverName\collectionName");
	List<ProjectInfo> list = new List<ProjectInfo>();
    ProjectInfo pi = new ProjectInfo("projectUri", "projectName", ProjectState.WellFormed);
    list.Add(pi);
	picker.SelectedProjects = list.ToArray();
    
	if (picker.ShowDialog() == DialogResult.OK)
    {
    	var selectedProjects = picker.SelectedProjects;
	}
}

Dans le prochain post nous verrons comment migrer l’utilisation des requêtes qui se faisait avec la classe StoredQuery avec le SDK 2008 et qui se fait maintenant avec les classes QueryHierarchy, QueryFolder et QueryDefinition pour le SDK 2010.

Monday, November 02, 2009 1:36:59 AM (Romance Standard Time, UTC+01:00)  #    Voir Commentaires
C# | Outlook Work Items Extension | TFS | TFS SDK
# Monday, October 26, 2009

Quoi de mieux pour démarrer mon blog que de présenter mon addin TFS pour Outlook ?

Cet outil, disponible sur Codeplex à cette adresse http://bowie.codeplex.com, permet d’intégrer TFS à Outlook.

Pour l’instant l’outil fonctionne avec Outlook 2007 et 2010 et TFS 2008. Je travaille actuellement sur une nouvelle version afin d’intégrer de nouvelles fonctionnalités et d’être compatible avec TFS 2010. Cette nouvelle version devrait être disponible fin Novembre et fonctionnera donc sur la Beta 2 de TFS 2010. N’hésitez pas à me contacter si vous avez des idées d’évolutions !

Voici la liste des fonctionnalités disponible actuellement :

Dans le Ribbon d’un email reçu :

  • Créer un nouveau Work Item depuis l’email
  • Attacher l’email à un Work Item existant (formats html, txt, msg…)
  • Télécharger les pièces jointes de l’email vers une librairie de documents d’un Team Project
  • Retrouver les Work Items attachés à ce mail

ReadMailRibbon 

Dans le Ribbon d’un email que vous rédigez :

  • Ajouter en pièces jointes des documents depuis les librairies de documents d’un Team Project
  • Ajouter en pièces jointes des reports d’un Team Project (formats pdf, excel, tiff…)
  • Ajouter les infos de Work Items dans le corps du mail

WriteMailRibbon

Dans le menu principal d’Outlook:

  • Menu Team –> Gérer mes favoris : permet d’ajouter les Team Projects avec lesquels vous voulez travailler et de définir un Team Project par défaut

Depuis le menu contextuel d’un répertoire de mails:

  • Définissez un lien entre un répertoire de mail et un Team Project. Ce lien permet de créer automatiquement des Work Items lorsque l’on déplace un mail dans ce répertoire. Vous pouvez définir le type de Work Item à créer, le mapping des champs, et d’autres paramètres comme par exemple attacher le mail ou ses pièces jointes au work item. L’image ci-dessous présente la fenêtre de paramétrage. L’onglet “WSS Portal” est une nouvelle fonctionnalité qui ne sera présente que pour la prochaine version.

LinkToTeamProject

Monday, October 26, 2009 5:09:48 PM (Romance Standard Time, UTC+01:00)  #    Voir Commentaires
Outlook Work Items Extension | TFS | VSTO
Archive
<August 2010>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234
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)