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;
}