dimanche 8 novembre 2009

Ecran de veille Team Build

Je ne l'aurais jamais imaginé et pourtant cela existe. Je manque souvant de place sur mon écran pour afficher des informations mais mon écran de veille ???

Et oui un écran de veille permettant de voir les build en cours :



Lien : http://teambuildscreensaver.codeplex.com

PsTFS Quick Reference

PsTFS arrive à plus de 30 commandes. Ces commandes permettent de créer un projet, de faire des branches, merge... et bien d'autre choses encore.

Ci retrouver n'est pas chose facile, et c'est pour cela que j'ai fait le PsTFS Quick Reference.




Ce document vous permettra d'utiliser des commandes assez facilement. Ce qu'il faut bien voir, c'est que les commandes PsTFS doivent être utilisées avec la puissance de Powershell.

Pour l'ajout d'utilisateur la commande "Add-MemberProject" se repose sur deux proriétés :

  • UserName
  • Roles

L'utilisation de Powershell permet de récupérer les informations d'un fichier text :

PsTFS > : $content = get-content C:\Users\Administrateur\Desktop\PowerShell\users.txt

PsTFS > : foreach ($line in $content) { $tab = $line.split("") ; Add-MemberProject -tfs $tfs -ProjectName VSTS.Noham -UserName $tab[0] -Roles $tab[1];}

Pour faire la différence avec deux répertoires de TFS il y a la commande "Get-Diff " cette commande permet d'avoir la liste des fichiers différents :

PS C:\> $item = Get-Diff -TFS $tfs -PathL "$\EvaTraining\Developpement" -PathR "$\EvaTraining\Integration"
Compared 1386
itemsSame: 1286
Diff: 55
Right Only: 12
Left Only: 33
PS C:\> $item FT
Information TypeDiff DateCheckInL DateCheckInR TypeItem
----------- ----------------------------------------
$/EvaTraining/Developpement/Co... Diff 14/09/2009 17:02:13 27/05/2009
18:37:03 File

Pas toujours facile de lire l'information dans la console Powershell, hors avec la verison V2 nous avons "Out-GridView", ce qui permet de faire :

$item Out-GridView

et d'avoir



Et le système de filtre



En plus vous trouverez dans la version V1.0.0.1 des correctifs et une nouvelle commande :
Get-MergeInfo -> Permet d'avoir les informations sur les fusions (Changeset)
Et une modification de la commande Get-Diff :
Lien vers PsTFS Quick Reference :
Emplacement pour la documentation :

mercredi 21 octobre 2009

Mes vidéos

Suite à un effacement des mes vidéos je viens de les reposter






Nouvelle version de PsTFS V1.0.0

La voici la nouvelle version, je l'ai nommé V1.0.0 car au vue de son utilisation tout ce passe très bien et j'ai enfin fait un setup d'installation.

Donc dans cette nouvelle version en plus du setup vous trouverez :
  • Add-QualityBuild Add a new Quality for a Build Project
  • Add-Workspace Add workspace in Team Foundation Server
  • Clear-Builds Cancel Build
  • Get-Build Get All build for a project
  • Get-Label
  • Get-AllChangesSinceLabel
  • Get-AllWorkspace Get all workspace for a TFS
  • Get-Workspace Get workspace for a Name and a owner

Merci à tous ceux qui me font des retours, cela permet de continuer à faire vivre ce projet.

Lien : http://pstfs.codeplex.com

Bon téléchargement

lundi 19 octobre 2009

Qu'est ce que Team Foundation Server ?

Souvant lors de mes interventions sur la présentation de TFS ou de sa mise en place, j'ai le sentiment que les possiblités de cet outils sont limités dans l'esprit de beaucoup de personnes.

Team Foundation Server ... découpons et traduisons ce que cela signifie :

  • Team -> équipe -> Une équipe est un groupe d'individus partenaires dans un but commun.
  • Foundation -> fondations -> Assises des structures d'une construction. Les fondations sont conçues en fonction de la nature des sols
  • Server -> Serveur -> Logiciel ou ordinateur destiné à fournir un service à distance aux applications client connectées au réseau

Dans cette difinition je ne vois pas :
  • TFS est un simple contrôler de code source
  • TFS est un outils pour tester
  • ...

Vous l'aurez peut être déjà compris, la notion première (pour moi) de cet outils est :

"Le travail collaboratif permet à chacun de poser les bases d'un projet et de permettre la contruction d'un application dans les meilleurs conditions, le tout sur un serveur"

Cela engloble bein sur :

  • Les tests
  • La répartition du travail
  • L'architecture du projet
  • La communication
  • L'ouverture sur des outils client (Visual Studio,Excel, Outlook, Web Service, Eclipse, Delphi...)
  • Des indicateurs (Qualité, Projet, Satisfaction client...)
  • La performence (l'accomplissement d'un tâche)
  • La satisfaction client (priomordial dans la réussite d'un projet)

Et tellement plus....

Cet outils n'est pas que tourné développement pour les développeur. Le développement d'un application implique plusieurs rôles :

  • Les développeurs
  • Les testers
  • Les architectes

Mais aussi

  • Les chefs de projets
  • Les responsable de service
  • Les DSI
  • Les utilisateurs finaux

Et oui je vous le dit, cet outils est un plus pour l'ensemble de la chaîne, de l'équipe afin de satifaire notre client.

vendredi 16 octobre 2009

Leçon 5 : Comment récupérer les membres d'un projet



Dans cette leçon, nous allons voir comment récupérer les membres d'un projet dans TFS. Certaines personnes font la liaison avec l'AD pour avoir ces informations, cette manière est lente.

Étape 1 : Création de la méthode
J'ai créé un objet que j'ai nommé PsGroups pour y stocker les groupes du projet et un objet PsMember pour y stocker les membres du projet et les affecter à un groupe (PsGroups).

La méthode prend deux paramètres :
Team FoundationServer : Serveur TFS sur le quel ce connecter
ProjectName : Nom du projet



public static List GetMembersProject(TeamFoundationServer tfs, string
ProjectName)


Étape 2 : Appel du service IGroupSecurityService pour la gestion des membres

Pour récupérer les informations les API de TFS nous propose le service IGroupSecurityService.


{
List lg = new List();
// Get a reference to the
version control service
VersionControlServer versionControl =
PsService.VCS(tfs);
IGroupSecurityService sec = PsService.IGSS(tfs);


Étape 3 : Récupération du projet

Il nous faut plus que le simple nom du projet, donc nous allons récupérer l'objet TeamProject avec le nom du projet passé en paramètre.


TeamProject tp =
versionControl.GetTeamProject(ProjectName);


Etape 4 : Récupération des groupes

La méthode ListApplicationGroups permet de récupérer les groupes, pour chaque groupe nous allons créer un PsGroups.


Identity[] appGroups =
sec.ListApplicationGroups(tp.ArtifactUri.AbsoluteUri);
foreach (Identity
group in appGroups)
{
Identity[] groupMembers =
sec.ReadIdentities(SearchFactor.Sid, new string[] { group.Sid },
QueryMembership.Expanded);
foreach (Identity member in groupMembers)
{
PsGroups pg = new PsGroups();
pg.AccountName = member.AccountName;
pg.Deleted = member.Deleted;
pg.Description = member.Description;
pg.DisplayName = member.DisplayName;
pg.DistinguishedName =
member.DistinguishedName;
pg.Domain = member.Domain;
pg.MailAddress =
member.MailAddress;
pg.MemberOf = member.MemberOf;
pg.SecurityGroup =
member.SecurityGroup;
pg.Sid = member.Sid;
pg.SpecialType =
member.SpecialType;
pg.Type = member.Type;
pg.Members = new
List();
pg.TypeMember = TypeMember.TFS;

Étape 5 : Récupérer les membres d'un groupe

Pour savoir si un groupe à des membres :


if (member.Members != null)
{

Ensuite nous parcourons les membres et créons des objet PsMember.


foreach (string memberSid in member.Members)
{
Identity memberInfo = sec.ReadIdentity(SearchFactor.Sid, memberSid,
QueryMembership.None);
PsMember pm = new PsMember();
pm.AccountName =
memberInfo.AccountName;
pm.Deleted = memberInfo.Deleted;
pm.Description
= memberInfo.Description;
pm.DisplayName = memberInfo.DisplayName;
pm.DistinguishedName = memberInfo.DistinguishedName;
pm.Domain =
memberInfo.Domain;
pm.MailAddress = memberInfo.MailAddress;
pm.MemberOf
= memberInfo.MemberOf;
pm.SecurityGroup = memberInfo.SecurityGroup;
pm.Sid = memberInfo.Sid;
pm.SpecialType = memberInfo.SpecialType;
pm.Type = memberInfo.Type;
pg.Members.Add(pm);
}
}

Étape 6 : Renvois d'une liste

Pour finir nous ajoutons l'objet PsGroups à la liste et renvoyons cette liste.


lg.Add(pg);
}
}
return lg;
}

samedi 15 août 2009

Un peu d'animation

Bonjour

Il n'est pas dans mes coutumes de vous présenter d'autre chose que la gestion de projet, mais voici un site créé par un ami et entièrement animé par cet ami.


Vous y trouverez un ensemble de jeux, d'illustrations ...

Cet ami est illustrateur indépendant, donc si jamais vous avez un besoin contactez le ;)