Rien n'est permanent sauf le changement, la gestion de projet c'est savoir anticiper !!
mercredi 21 octobre 2009
Nouvelle version de PsTFS V1.0.0
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 ?
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 ListGetMembersProject(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.
{
Listlg = 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)Étape 6 : Renvois d'une liste
{
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);
}
}
Pour finir nous ajoutons l'objet PsGroups à la liste et renvoyons cette liste.
lg.Add(pg);
}
}
return lg;
}