Migrate Work Item TFS

Posted on Updated on


Une nouvelle réorganisation des projets en terme de planification, ou fin d’un projet POC ne figurant pas dans un contexte projet classique au début, on préconise en terme de planification le Pattern de centralisation, consistant à regrouper les saisies d’éléments au sein d’un seul projet d’équipe, le besoin  de migrer les éléments de travail est une conséquence logique, dans le but de garder un historique, agréger les données correspondantes, afin d’améliorer le cycle de développement.

Dans le cadre de cette migration nous utilisons la plateforme Team Foundation Migration Tools (Best Practise Microsoft).

La migration se traduit à la sélection du projet cible et source, la sélection du type de l’élément de travail souhaité, et la validation de l’opération, un journal de traçage est disponible à la fin de l’opération.

Ci-dessous un imprime écran décrivant l’opération de migration des cas de test du projet Specific.Web.Sample,

Cette migration se traduit par la création d’un Test Case doublon, aucune suppression n’a lieu dans le projet source.

SK1

On sélectionne les cases à cocher pour ignorer les éléments de travail supprimés, rappelons que sur la plateforme TFS, nous n’avons que des suppressions logiques.

SK1

Une fois le type de l’élément de travail sélectionné, sélectionner le lien Next puis valider la migration en cliquant sur le bouton Migrate.

Unlock File TFS Sidekick

Posted on Updated on


Pour libérer un fichier verrouillé, situation à laquelle on peut faire face dans le cas ou  développeur verrouille un fichier et quitte le projet, il est nécessaire de pouvoir le libérer pour continuer à contribuer dessus.

Dans a cadre de cette opération nous utiliserons l’outil SideKick, outil faisant partie de la brique extensibilité TFS. Remarque : Je recommande l’utilisation de l’extension Visual Studio, Le MSI parfois présente des problèmes  d’installation liés aux accès aux bases de registre.

Ci-dessous un imprime écran décrivant l’opération de déverrouillage d’un fichier en utilisant l’extension Visual Studio

SK1

Sélectionner le lien Status Sidekick, il vous permet d’afficher la liste des fichiers verrouillés ou extraits par un utilisateur, au cours de cet exemple nous allons déverrouiller le fichier Analyse verrouillé par l’utilisateur Aghilas, tout d’abord nous sélectionnons le nom du projet « Amayestech.Website » (1), nous sélectionnons ensuite le projet parmi les projets affichés en bas (2), de l’écran de filtrage, cela nous liste tous les fichiers utilisés sur le projet, sur le pave de droite, il nous suffit de sélectionner le fichier souhaité et cliquer sur le lien en haut de la page mentionnée sur l’imprime écran (4).

SK1

GC.Collect

Clone Build TFS Build Extension Community

Posted on Updated on


Cela reste un besoin récurrent, ou vous disposez d’un ensemble de Builds, ayant des périmètres distincts, basés sur une logique incrémentale, pour optimiser la création de Build, il est souvent intéressant de penser à cloner un Build à partir d’un existant, cela se fait en utilisant la brique TFS Build Extension Manager, une section sera dédiée plus bas, en tous cas ci-dessous les phases permettant d’implémenter un clone de Build :

Clone1

Commencez par ouvrir TFS Community Build Manager, sélectionner un Build cible, faites un clic droit dessus et choisissez l’option Clone sur le projet, cela vous permet de copier-coller le Build avec toutes ses propriétés, ainsi que le pointeur sur le fichier flux de travail WWF, au sein du même projet.

Clone1

Le build nouvellement créé est suffixé de la date et heure du jour, la prochaine étape consiste à l’ouvrir sous la section Build dans Team Explorer et de le personnaliser.

Vous pouvez aussi TFS Build Extension Community générer le graphique décrivant l’infrastructure matérielle, citant ainsi les contrôleurs de Build par collection, les différents agents de Build, avec adresses de serveurs associés, ce qui peut vous servir quand vous arrivez sur un projet, et vous manquez cruellement de documentation sur l’intégration continue …

GC.Collect

Astuces SQL Server

Posted on Updated on


Ce billet a pour objectif de mettre le focus sur des problématiques de base de données

Comment augmenter la performance d’une vue en sauvegardant les données sur le disque ?

Créer un undex cluster sur la vue (clustered).

A quoi sert  XACT_ABORT ?

A annuler ou pas une transaction d'une procédure stockée par exemple, si une erreur survient au niveau d'un traitement

SET XACT_ABORT ON

Comment résoudre le problème de fragmentation d’index ?


Soit avec un Rebuild ou Reorganize

Le résultat est obtenu avec la fonction sys.dm_db_index_physical_stats.

Ci-dessous les résultats retournés :  

avg_fragmentation_in_percent : The percent of logical fragmentation (out-of-order pages in the index).

fragment_count : The number of fragments (physically consecutive leaf pages) in the index.

avg_fragment_size_in_pages : Average number of pages in one fragment in an index.

Si avg_fragmentation_in_percent est supérieur à 5% and inférieur à 30%

                => ALTER INDEX REORGANIZE

Si avg_fragmentation_in_percent value est  supérieur  à 30%

                => ALTER INDEX REBUILD WITH (ONLINE = ON)

 

Tips Net

Posted on Updated on


Ci-dessous un ensemble de questions fréquemment posés dans le cadre d’une plateforme .Net de développement , ce post est aussi inspiré de certains sujets évoqués au sein des Best Practise Microsoft

Comment valider la conformité d’un développement par rapport à une architecture avec un Build ? (Prérequis Ultimate License)

Créer une diagramme Layer vide, glisser déposer les briques (Projets de la soltion) sur le diagramme et ajouter les dépendances,

Créer un Build avec archivage contrôllé  Gated CheckIn (Based on Shelveset), dans les arguments de Build ajouter : /p:ValidateArchitecture=true

Comment détecter les copie coller de code source ? (Prérequis VS 2013)

Utiliser la fonctionnalité  Analyse Solution for Code Clones disponible sous la section ANALYSIS

Comment forcer la mise à jour des rapports SSRS sous une plateforme TFS (Disponible sous le portail report Server)?

Accéder à la console d’administration TFS, sélection l’onglet Reporting, cliquer sur le lien Start Rebuild

Comment diagnostiquer un proxy source control TFS ?

 Utiliser le service web ProxyStatistics disponible sur la couche Application

GC.Collect

Tips .Net

Posted on Updated on


Ci-dessous un ensemble de questions fréquemment posés dans le cadre d’une plateforme .Net de développement associée à une infrastructure TFS, ce post est aussi inspiré sur certains sujets des Best Practise Microsoft :

Comment paramétrer la distribution des tests d’une suite pendant leur exécution ?

Définir la propriété Weighting d’un agent de test

Comment réutiliser des cas de test assez facilement ?

Utiliser la fonctionnalité Clone Test Plan sur une suite de test racine

Comment configurer une url d’accès pour votre site tfs ?

Utiliser la console d’administration TFS et définir la propriété Notification URL dans la section Change URIs

Comment récupérer des fichiers supprimés accidentellement sur TFS Source Control ?

Aller dans la section Tools, sélectionner Options, cliquer sur le lien Show deleted items in the Source Control Explorer, faites un clic droit et sélectionner l’option Undelete

Comment faire un export complet des suites de cas de test, au-delà des requêtes WIQL ?
Utiliser les Apis Test Management, ci-dessous quelques snippets à exploiter.

Lister les plans de test actifs avec filtre sur date de fin

ITestPlanCollection testPlanCollection = projet.TestPlans.Query("Select * from TestPlan where PlanState = 'Active' AND EndDate < ‘2015-10-22’ ");
Récupérer les résultats de l’exécution d’un cas de test

ITestManagementService testManagementService = teamProjectCollection.GetService<ITestManagementService>();

// Récupérer le run
IEnumerable<ITestRun> testRunList = testManagementService.QueryTestRuns(string.Format("select * From TestRun where TestRunID={0} AND IsAutomated=0", runId));

// Récupérer le premier résultat
ITestRun testRunTarget = testRunList.FirstOrDefault();

//Récupérer les résultats
ITestCaseResultCollection restCaseResultCollection = testRunTarget.QueryResults();

Comment interrompre les Builds, pour une modification de processus et les exécuter plus tard, une fois la modification finie ?

Définir la propriété Pausing sur l'onglet général de la définition de Build, les builds sont accumulés dans une queue de traitement

To Build Not Finished

Proxy Performance

Posted on Updated on


Dans le cas ou le dépôt de code source est distant par rapport aux postes de développement, il ets necessaire de mettre en place un proxy, permettant de stocker de manirere temporaires les sources.

La configuration du serveur proxy passe la création d’un fichier proxy.config

Le fichier est déposé sous l’aroborescence suivante :
Program Files /Microsoft Team Foundation Server 12.0/Version Control Proxy/Web Services/VersionControlProxy/

?xml version="1.0" encoding="utf-8"?>
ProxyConfiguration 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    Servers>
        Server>
            Uri>@H_TFSSERVER@/
        /Server>
    /Servers>
    
    !-- Proxy file cache root folder -->
    @PROXY_CACHE_ROOT@
    
    CacheLimitPolicy>                    
                !-- Cache limit expressed as percentage of disk space -->
                PercentageBasedPolicy>75
                
                !-- Cache limit expressed as MB -->
                !--  -->
    /CacheLimitPolicy>
 
    !-- The maximum age (in days) of content in the cache following a cleanup operation -->
    DeletionAgeThreshold>30
        
    !-- Percentage of cache size that needs to be freed up, on hitting cache limit -->
    CacheDeletionPercent>10
    
    !-- Indicates how often (number of hours) the proxy statistics information should be persisted to a file-->
    StatisticsPersistTime>1
/ProxyConfiguration>

– Le nœud Server a la liste des serveurs TFS que le serveur TFS proxy va mettre en cache.
– Le nœud CacheRoot a le chemin du répertoire dans lequel le cache est stocké.
– CacheLimitPolicy contient la limite d’espace disque du cache
Il est exprimé en pourcentage avec la clé 75, pour signifier que le cache sera nettoyé lorsque le cache aura atteint 75% de l’espace.
– DelegationAgeThresold représente le nombre de jours avant que le cache soit nettoyé.
– StatisticsPersistTime représente l’intervalle en heures auquel les statistiques du cache sont mises à jour sur le fichier qui se trouve sur le disque

Une fois les les modifications faites dans ce fichier proxy.config, réaliser un IISReset afin de mettre à jour la couche applicative TFS.

GC.Collect