Proxy Performance


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

Personnaliser la couleur des WorkItems – Color for Work Item


Il est possible de personnaliser la couleur des éléments de travail pour apporter plus de lisibilité au sein du suivi d’un projet d’équipe agile, notamment du dashboard.
Cette personnalisation s’effectue sur les fichiers de processus d’un projet, comme prérequis est l’utilisation de l’outil de commande « witadmin », celui-ci nous permettra d’exporter les template d’élément de travail, les travailler et les réimporter au sein du projet pour apporter la mise à jour.
Il est nécessaire d’utiliser le nœud « WorkItemColors », ci-dessous un exemple classique référence sous msdn :

   
 workitemcolor name="Product Backlog Item" secondary="FFD6ECF2" primary="FF009CCC" />
  workitemcolor name="Feature" secondary="FFEEE2F2" primary="FF773B93" />
  workitemcolor name="Task" secondary="FFF6F5D2" primary="FFF2CB1D" />
  workitemcolor name="Bug" secondary="FFFAEAE5" primary="FFCC293D" />
  workitemcolor name="Code Review Request" secondary="FFFCEECF" primary="FFFF9D00" />
  workitemcolor name="Code Review Response" secondary="FFFCEECF" primary="FFFF9D00" />
  workitemcolor name="Feedback Request" secondary="FFFCEECF" primary="FFFF9D00" />
  workitemcolor name="Feedback Response" secondary="FFFCEECF" primary="FFFF9D00" />
  workitemcolor name="Impediment" secondary="FFFCEECF" primary="FFFF9D00" />
  workitemcolor name="Shared Steps" secondary="FFFCEECF" primary="FFFF9D00" />
  workitemcolor name="Test Case" secondary="FFFCEECF" primary="FFFF9D00" />

Cependant il est nécessaire de suivre les étapes suivantes :

1. Ouvrir Command Prompt

2. Taper la commande d’exportation (Sous %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE)

       
witadmin exportprocessconfig /collection:your col. /p:project /f:file

3. Ajouter la section mentionnée ci-dessus au fichier.

4. Lancer la commande d’importation

       witadmin importprocessconfig /collection:your col. /p:project /f:file

Link : http://msdn.microsoft.com/fr-fr/library/hh500408.aspx

GC.Collect

Ci-dessous un rendu de la perso

Visual Studio 14 Just Nice CTP


La nouvelle CTP Visual Studio 14 est axée à mon sens sur l’augmentation de la productivité, et la personnalisation de votre environnement de développement, on y retrouve pas mal de fonctionnalités sympas, je suis déjà Fan J

La CTP est uniquement en anglais, sa compatibilité complète n’est pas garantie avec l’environnement déjà installé.

Elle est à télécharger sur le lien suivant :

http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs

Ci-dessous un résumé rapide des fonctionnalités majeures :

La possibilité de sauvegarder aisément un environnement de développement, en utilisant les commandes Save Window Layout et Apply Window Layout sous la fenêtre Windows, sans forcément créer un projet squelettes…

de correction automatique au niveau du code source en vue d’une optimisation technique, comme cela était fait auparavant en installant des plateformes de tunning, il s’agit du Light Bulb Editor Adornment.

Une lampe apparait sur la partie gauche de votre classe, cliquer dessus et vous disposez d’un ensemble de suggestions J cela devrait vous rappeler quelque chose.

Let’s Go

published from WP

Custom Editor – Build’s argument


Dans un but de personalisation de build, on fait souvent appel à l’injection de paramètres globaux qu sein du processus de construction, ces paramètres sont injecté concretement au sein du processus, lui est implémenté par un flux de travail, ce flux de travail content des sections classiques de sasise de paramètres tels, arguments ou variables, dans le cadre du post nous allons utiliser la section d’arguments.

Cette section possède une interface graphique au sein de Team explorer, il s’agit bien comme vous vous en doutez de l’onglet Process du Build Definition.
Un paramètre peut être de type simple ou personnalisé, nous allons voir comment définir un type personalisé et une interface spécifique pour la saisie d’une valeur pour ce type.

Un paramètre peut figurer dans la sous section Mix.
arguments

browsetype

 

Commencer par créer une classe particulière Test, représentant ce type particulier.

public class Test
    {
        public string SampleProperty { get; set; }

        public override string ToString()
        {
            return SampleProperty;
        }
    }

Ensuite créer la CredentialDialog, sera la boite de dialogue dédiée à la saisie du type

La CredentialDialog est la boite de dialogue qui sera affichée pour saisir une valeur de notre type personnalisé, pour celà
créer un formulaire WinForms pour la saisie de valeurs

public partial class CredentialDialog : Form
    {
        public CredentialDialog() { InitializeComponent(); }
        public string SampleField
        {
            get
            {
                return SampleField.Text;
            }
            set
            {
                SampleField.Text = value;
            }
        }
}

Crééer la CredentialEditor

La classe contient les métadonnées affichées lorsque un développeur clique sur le bouton argument.
La classe doit implémenter l`interface UITypeEditor

using System.Drawing.Design; 
using System.Windows.Forms.Design; 
using System.ComponentModel; 
using System; 
using System.Windows.Forms; 

namespace BuildTasks.CustomType 
{ 
    class CredentialEditor : UITypeEditor 
    { 
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) 
        { 
            if (provider != null) 
            { 
                IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); 

                if (editorService != null) 
                { 
                    Credential credential = value as Credential; 

                    using (CredentialDialog dialog = new CredentialDialog()) 
                    { 
                        dialog.UserName = credential.UserName; 
                        dialog.Password = credential.Password; 

                        if (editorService.ShowDialog(dialog) == DialogResult.OK) 
                        { 
                            credential.UserName = dialog.UserName; 
                            credential.Password = dialog.Password; 
                        } 
                    } 
                } 

            } 
            return value; 
            
        } 

        public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) 
        { 
            return UITypeEditorEditStyle.Modal; 
        } 
    } 
}

Ci-dessous des imprimes écran décrivant les étapes citées ci-dessus, en premier l’ajustement des métadonnées d’un argument.

cusqtomparam

select
 
GC.Collect()

Custom Build TFS 2013 with TFSBuildExtension


Vous pouvez utiliser un ensemble d’activités disponible sous CodePlex, il s’agit des Build Extension, elles permettent de personnaliser certaines comportements comme par exemple exécuter des scripts dédiés à mettre à jour ou peupler des bases de données.

Ci-desosus un lien d’accès : http://tfsbuildextensions.codeplex.com/

Vous avez aussi un lien documentant les activités : http://tfsbuildextensions.codeplex.com/documentation

Ce post a pour but d’aorder certaines subtilités de formattage liés à l’activité SqlExecute, activité utilisée pour exécuter des scripts SQL paramètrés. cette activité manque cruellement de documentation, cependant un coup de reflector s’impose.

PrepareSql

Le plus important est de renseigner les expressions VB comme il se doit, sans oublier aucun simple quote :
> Pour Parameters : pensez à les préfixer de @, les valeurs à mettre entre simple quotes.
> Pour la chaine de connection : pensez à juste mettre une chaine de caractère sans traitement particulier, comme vous faites sous une console d’aministration Web.
> Pour file : définir une liste de fichier.

Remarque : ne pas oublier de changer la valeur par défaut du timeout

Ci-dessous un imprime écran définissant les saisies

Parameters

Ci-dessous un exemple de script SQl :

Script

Le post stackoverflow correspondant : http://stackoverflow.com/questions/21388746/tfs-sqlexecute-custom-activity

Merci jesse

GC.Collect

Contribute ALM on forums – First contributor last 30 days on TFS Tag


Ci-dessous quelques contributions ALM – TFS sur lesquelles je suis intervenu, si elles peuvent vous apporter des réponses à quelques unes de vos questions, le Forum stackoverflow, en particulier le Tag TFS est assez réactif !!!!

First Contributor for last 30 days on TFS Tag (Novembre 2013)

Untitled

GC.Collect