Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Azra [Florent Santin]

.Net, X'Net, aucun lien de parenté V2.0

Actualités


  • MSN Alerts
    View Florent Santin's profile on LinkedIn
Windows Azure SDK 1.6 : encore plus simple pour les développeurs !

Deux mois après la version 1.5, le SDK Windows Azure vient d’évoluer une nouvelle fois puisque sa version 1.6 est disponible en téléchargement depuis hier : http://www.microsoft.com/windowsazure/sdk/

L’installation s’effectue sans soucis, nul besoin de desinstaller la version précédante, le programme d’installation s’occupe de la mise à jour.

Parmi les nouveautés, on retrouve dans les grandes lignes quelques simplifications d’API et une amélioration des outils de simulation de développement.

La grande nouveauté du SDK vient surtout de l’amélioration de l’intégration du cycle de déploiement dans Azure depuis Visual Studio.

Avant cette version du SDK Windows Azure, il était nécessaire pour déployer un service hebergé Windows Azure dans le datacenter Microsoft depuis l’environnement de développement de jongler entre Visual Studio et le portail Windows Azure pour creer les comptes de services et de stockage, générer un certificat pour autoriser Visual Studio à publier, générer et installer un certificat pour activer le remote desktop (et le configurer dans Visual Studio)… bref, une procédure rodée mais assez lourde…

En 1.6, un déploiement peut se configurer en quelques clics sans quitter Visual Studio ! (seule condition bien sur, disposer d’un abonnement Windows Azure d’actif…).

Voici l’illustration, en quelques captures d’écran, de la nouvelle procèdure pour déployer un projet Cloud Visual Studio depuis… Visual Studio!

Tout commence en effectuant un click droit sur le nom du projet Cloud > Publish : un nouvel assistant démarre, dans la première etape, il demande des informations d’abonnement Windows Azure. La liste doit être vide si aucun déploiement n’a été fait dans le passé, pour la remplir, il suffit de cliquer sur le lien “Sign in to download crendentials”

image

Visual Studio démarre un navigateur Web, demande le compte live ID et le mot de passe utilisés pour gérer l’abonnement Azure puis, une fois authentifié, génère et propose de télécharger sur le disque dur un fichier au format .publishsettings contenant l’ensemble des informations relatives au compte Windows Azure.

A noter ici que, chose interessante, tout les abonnements vont être absorbés, même ceux pour lesquels le compte live est co-admin, nul besoin donc d’effectuer cette manipulation pour chacun.

image

De retour dans Visual Studio, il suffit de cliquer sur le bouton “Imports” et de selectionner le fichier fraichement téléchargé pour peupler la liste des Subscriptions. Il est ensuite nécessaire de selectionner celle à utiliser pour le déploiement et de cliquer sur le bouton Next.

image

La 2eme étape de l’assistant permet de choisir le nom d’un service hebergé présent sur l’abonnement (ou d’en creer un nouveau directement depuis cet écran), de choisir l’environnement sur lequel déployer, ainsi que la configuration Azure à utiliser.

image

Chose très interessante, il est également possible depuis cet écran de configurer le Remote Desktop et le Web Deploy directement en cochant une case, l’assistant s’occupera de faire le reste (demander un identifiant et un mot de passe, générer le certificat, le publier sur le portail et modifier les fichiers de configuration de Windows Azure).

image

Dans son deuxieme onglet, cet écran permet également de définir le nom du déploiement, de choisir le compte de stockage à utiliser pour déployer (ou d’en creer un !) et d’activer/configurer l’IntelliTrace et le Profiling (pour débogguer et analyser les performances en environnement Azure / uniquement sur du dev / test).

image

Enfin, la dernière etape de l’assistant se contente juste de résumer la configuration, sauvegarder le profil pour pouvoir la réutiliser et démarrer la publication depuis Visual Studio :

image

Les informations de configuration du déploiement sont sauvegardées dans un fichier XML .azurePubxml stocké dans le projet Cloud. Il est bien sur possible si nécessaire de les re-modifier à chaque déploiement.

image

En résumé, il faut, montre en main, maintenant moins de 5 minutes pour configurer un déploiement dans Azure depuis Visual Studio, la ou avant un bon 15 min d’aller / retours entre Visual Studio, les générateurs de certificat et le portail Windows Azure étaient requis (le tout accompagné d’une bonne documentation pour éviter de se perdre en route).

A noter pour rappel que ce mode de déploiement n’est à utiliser qu’en mode développement et n’est pas à utiliser pour du déploiement en mode “production” : le portail Windows Azure est ici plus conseillé car réduit les risques de mauvaises manipulation sur les instances actives et permet de faire des déploiements sans interuption de services (switch VIP).

AppFabric Beta 2 refresh for VS 2010 RTM…

Pour ceux qui comme moi (ou Simon) ont poussé un grand rrrrrrrrrrraaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhh en voulant utiliser AppFabric Beta 2 (pour VS 2010 RC) avec une toute fraiche installation du Framework .NET 4.0 et de VS 2010 RTM, le mal est la aussi réparé.

Cela se passe par la: http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx

image

L’équipe AppFabric vient en effet de release une Beta 2 refresh compatible avec la version finale des outils. Cette beta 2 refresh devrait cependant avoir une durée de vie limitée, la RC étant sur les rails.

Pour rappel, AppFabric est une surcouche à IIS qui permet notamment de déployer / gérer / monitorer des services WCF ou des Workflow WF. En gros, réaliser de manière outillée tout ce pour quoi il fallait rajouter des points d’extensibilité en se creusant la tête dans du code de barbu en .NET 3.5.

La façon la plus rapide d’installer AppFabric sur un poste de dev est d’utiliser WebPI (Web PlateForm Installer), d’activer la catégorie “outils d’entreprise” et de cocher la petite case qui va bien! Si vous l’installez pour hoster du WF 4.0, n’oubliez pas d’activer lors de l’installation les services de tracking et de persistence.

WebPI: http://www.microsoft.com/web/Downloads/platform.aspx

image image

Et voila, un bon petit IIS 7 local enrichit :)

Bon hosting de WF 4!

WF 4.0: Le retour du State Machine!

Après une belle absence remarquée (et reprochée?!) dans le cycle des Beta de Visual Studio 2010 / Workflow Foundation 4.0, le State Machine Workflow (ou automate à états finis) fait enfin son grand retour parmi les modèles de WF de base (aux cotés du Sequential WF et du FlowChart)!

Bon, c’est un peu après la bataille, Visual Studio RTM à été livré il y’a 2 semaines… mais bon, du coup, le voila rendu disponible avec son code source directement sur CodePlex (http://wf.codeplex.com) dans le nouveau concept “d’Activity Pack” (ensemble d’activités complémentaires mis gratuitement à disposition par l’équipe WF). Un “Activity Pack” est donc un complément de Workflow Foundation proposé par l’équipe produit avec MSI pour installation directe dans Visual Studio, code source si nécessaire et surtout une bonne documentation qui explique comment fonctionne et s’utilisent les activités.

A noter au passage qu’un 2eme Activity Code Pack “ADO.NET Activity Code Pack” a également été rendu disponible. Moins intéressant que le StateMachine, je prendrai quand même le temps d’en toucher deux mots dans un prochain post.

image

Détail du pack:

image

Ce pack se compose de 3 activités visibles

  • StateMachine (le conteneur)
  • FinalState (l’état de fin, obligatoire, le conteneur contenant également obligatoirement un état de départ) / Initial)
  • State (l’état) en soit, qui peut contenir deux sous séquences
    • Entry: L’action (ou la séquence) à exécuter quand le Workflow entre dans l’état
    • Exit: L’action lorsque le Workflow quitte l’état

image

Et d’une “invisible”:

  • Transition: L’action qui permet de passer d’un état à un autre (correspondant aux flèches entre les états donc) et qui contient trois zones:
    • Trigger: L’événement qui déclenche/motive la transition (qui met donc le workflow en “Idle”: Delay “Timeout” / interaction utilisateur / appel WCF…)
    • Condition: Un trigger peut être câblé sur plusieurs branches, dans ce cas la condition permet de dire quel est l’état suivant
    • Action: L’activité à exécuter une fois que le trigger s’est déclenché et si la Condition est évaluée comme état juste (juste avant d’arriver sur l’état suivant donc)

image 

Flowchart vs StateMachine

Mais alors, quelle est la différence entre un FlowChart et un StateMachine? Finalement d’un point de vue purement technique, il serai possible de réécrire un StateMachine avec un FlowChart, le contraire n’étant pas forcement aisé.

Un FlowChart est un Workflow motivé (ou de synchronisation) par des actions et / ou des événements pour les transitions entre ses étapes (flowstep) alors que le StateMachine est un type de Workflow motivé uniquement par des événements pour ses transitions entre états. Un automate à état finit (StateMachine) est donc idéal pour les Workflow humains, car purement taillé pour.

Le revoilà parmi nous, les premiers tests sont très concluants et me mettent déjà dans tout mes états  :)

VS et TFS 2010 RTM, c’est parti :)

image

Rien de plus, sinon que les serveurs MSDN vont prendre cher je pense :)

TFS Power Tools 2010 RC disponibles

Un petit message rapide pour ceux qui comme moi ne peuvent pas attendre, on déjà installé la RC de Team Foundation Server 2010 et souhaitent faire de la personnalisation de Work Item et Process template!

Après deux semaines d’attente, les Power Tools sont disponibles en version 2010 (rappel), accompagnés du MSSCCI Provider (rappel aussi).

Au passage, attention, si vous utilisiez Visual Studio 2010 Beta 2 avec les PowerTools, pensez bien à les désinstaller AVANT d’installer Visual Studio 2010 RC (cela évite de devoir justifier 2 popup d’erreur a chaque démo… menfin c’est pas moi… euuuu… c’est stableee… euuu c’est pas un bogue quoi).

Pour télécharger, par la que cela se passe:

(a noter dedans le retour de l’intégration de le messagerie instantanée dans Team Explorer)

TFS 2010 depuis Visual Basic 5?

Encore une preuve que Team Foundation Server se moque complètement du type ou de la version du client qui consomme ses services!

Le MSSCCI Provider, fournit gratuitement par Microsoft, propose depuis 2005 d’utiliser Team Foundation Server comme contrôleur de code source sur des outils d’ancienne génération:

  • Visual Studio .NET 2003
  • Visual C++ 6 SP6
  • Visual Visual Basic 6 SP6
  • Visual FoxPro 9 SP1
  • Microsoft Access 2003 SP2
  • SQL Server Management Studio
  • Sparx Systems Enterprise Architect 6.1
  • Sybase PowerBuilder 10.5
  • Toad for SQL Server 2.0

Il existe pour chaque version de Team Explorer / TFS: 2005, 2008 et maintenant 2010 en Beta 2.

Il se positionne comme une interface entre l’environnement de développement et Team Explorer (l’API de TFS) pour pouvoir les faires communiquer sans Addin additionnel. (Grâce à l’implémentation de Microsoft SourceControl Interface, que SourceSafe utilise aussi).

image

Grosso modo, cela signifie que si un environnement de développement arrive à intégrer SourceSafe, il doit en théorie intégrer TFS de la même manière via ce provider.

Cependant, si l’on regarde la liste proposée par Microsoft, on ne trouve que Visual Basic 6 SP6, alors que, par exemple, Visual Basic 5 fonctionne très bien avec SourceSafe (ils étaient packagés ensembles).

Un petit test s’impose:

  • Installation de Visual Basic 5 (le plus dur étant de retrouver le programme d’installation) – sans SourceSafe
  • Ajout de la ligne “vbscc=1” dans le fichier Windows\vbaddin.ini.
  • Installation du MSSCCI Provider
  • Lancement de VB 5… et…

VB5TFS2010

VB5TFS2011

Welcome TFS!

Merci Luc pour le challenge et le coup de main sur VB 5 :)

[Silverlight 3] Cannot get the list of output files from the project…

… c’est la description du formidable message d’erreur qui m’a fait perdre aujourd’hui quasiment 2 heures lors d’une migration Silverlight 3 Beta 1 à Silverlight 3 RTW…

image

Le comportement lié à ce message d’erreur est le suivant:

  • L’application SL est compilée
  • Le XAP généré
  • … mais une erreur apparait lors de l’exécution de l’application SL dans le hôte ASP.NET

Bref, ca compile, mais il y’a un truc non détaillé qui empêche l’utilisation du projet dans un site ASP.NET.

image

Si vous rencontrez ce problème, qui n’était pas présent dans la pré-version de SL, voici la raison / le contexte:

  • Je possède un projet avec plusieurs librairies Silverlight
  • Parmi ces librairies, une à été développée / ouverte au moins une fois avec VS 2010, le projet est présent dans ma solution VS 2008 car il évolue et la librairie est référencée directement au travers de son projet donc (recompilé à chaque fois) => c’est cette librairie qui pose problème (à noter que je peux travailler dessus dans VS 2008 et la faire évoluer sans aucun soucis / avertissement).

image

En fait, la vrai cause du soucis est affichée dans le log de compilation précédant mais en temps que “Warning” alors que c’est un problème critique pour le déploiement: Project file contains ToolsVersion=”4.0”, which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion=”3.5”.

Personnellement, ce message ne m’a pas inquiété: MSBuild à un soucis, mais il gère comme un grand… et bien, non.

En ouvrant le fichier .csproj de la librairie créé par VS 2010 et en remplaçant manuellement 4.0 par 3.5, le message d’erreur disparait lors de la compilation et l’application se met à fonctionner.

image 

image

Merci les messages d’erreur clairs et donc attention:

  • Un projet SL 2008 ouvert avec 2010 est convertit par l’assistant au démarrage de VS, l’attribut ToolsVersion prend la valeur 4.0 à la place de 3.5
  • Un projet SL 2010 ouvert avec 2008 ne lève pas d’erreur au démarrage de VS et la valeur reste à 4.0, ce qui pose problème lors de la compilation de SL 3 RTW

Bon, a part ça, c’est quand même cool Silverlight 3 :)

Projet Silverlight et re-organisation de solution

Un truc tout bête qui m’est arrivé aujourd’hui (niveau débutant qui me fait perdre 20min) …

Après un gros re-factoring de solution (réorganisation des projets dans des répertoires différents), un problème étrange m’est apparut: me voila dans l’impossibilité de debug mon projet Silverlight (du moins, d’évaluer mes Breakpoints).

Après quelques tests, je me rend compte que, tout simplement, la recompilation de mon projet SL ne re-génére pas le fichier xap dans le répertoire ClientBin de mon application Web hôte, bizarre.

Quelques vérifications s’imposent:

  • Le projet Silverlight est bien lié à l’application hôte ASP.NET

image

  • Le .XAP apparait bien dans le projet de l’application hôte, répertoire ClientBin (et le projet compile sans soucis, et le .XAP reste visible même après des rafraichissements du projet) 

image

  • Par contre, le répertoire physique qui doit contenir le Xap est vide!!! (et pas d’erreur lors de la compilation comme cela aurai été le cas pour une référence classique…).

image

  • En éditant le fichier de projet de l’application hôte ASP.NET, je remarque que la section SilverLightApplicationList est vide…

<SilverlightApplicationList>
</SilverlightApplicationList>

  • … alors qu’elle devrai référencer mon projet Silverlight

<SilverlightApplicationList>{D633E905-4A0C-4CC1-B22C-9C4E58598D3D}|..\SilverlightApplication4\SilverlightApplication4.csproj|ClientBin|False</SilverlightApplicationList>

Mais oui! voila le problème… en retournant dans les propriétés du projet ASP.NET, onglet Silverlight Applications, mon projet Silverlight n’est plus déclaré!

image

Il suffit donc de le re-référencer…

image

(…)

Conclusion: cela serai sympa de mettre un petit warning ou un message d’erreur (comme c’est le cas avec les références) lorsque l’on réorganise des projets ASP.NET / Silverlight et que ceux-ci ne se trouvent pas, plutôt que de les supprimer comme un bourrin sans rien dire :)

[Hors sujet] Je viens de recevoir ma table Surface…

C’est noël après/avant l’heure!

… hmm, quelques précisions s’imposent tout de même (mode: “je raconte ma vie”).

Suite à un déménagement, j’ai acheté il y’a 1 an une formidable table basse chez Conf0ram* (cf photo si dessous), dont je suis entièrement satisfait (et au moment de l’achat, Surface n’était pas commercialisée). Et comme je le dis souvent lors je parle d’usines de développement: “lorsqu’il y’a quelque chose qui marche dont vous êtes content, surtout n’y touchez pas”.

SDC10400

Il m’a donc fallut trouver une alternative!

J’ai donc reçut il y’a quelques semaines la version “pour hamster” de la table Surface, soit le kit de développement pour Micro Framework Tahoe II de Device Solution.

Comme vous pouvez le voir, j’ai conservé la même échelle pour la photo.

SDC10401

Celui-ci répond aux mêmes critères que Surface…

  • Bel écran couleur
  • Tactile (bon, pas multitouch, mais avez vous déjà vu une patte et les doigts d’un hamster, cela n’aurai aucun intérêt?)
  • Ecriture de programmes en C#/.NET
  • Possibilité de décrire des interfaces en WPF (pas XAML, juste le modèle objet WPF)
  • Un port USB en sortie

… avec des choses en plus:

  • + léger et - encombrant (hardware et software vu qu’il n’y a pas de système d’exploitation dedans)
  • - cher (environ 300 euros)
  • Capteur de température intégré
  • Accéléromètre intégré (vu que c’est léger en plus, vous vous imaginez jouer au jeu de la bille dans le labyrinthe avec une table surface vous?)

Pour une description complète (et plus sérieuse), je vous propose de voir le post de Julien Corioland (qui au passage, raconte plein de choses intéressantes sur le Micro Framework sur son blog).

 

Bon week end par avance(pour moi, cela sera avec le Micro Framework) !

 

PS: au cas ou, ce message est mal compris: je n’ai bien sur pas les moyens de me payer une table Surface :) (mais je veux bien troquer ma table de salon et mon kit de dev contre une)

[VS 2010 Team Dev] Quoi de neuf dans l’analyse de code?

Une petite passe sur une autre des fonctionnalités de VS 2010 pour enrichir la série de post d’Etienne.

L’option Code Analysis est proposée depuis 2005 dans l’édition Visual Studio Team Developer.

Concrètement, il s’agit d’une évolution de FXCop s’intégrant complètement dans l’environnement de développement et dans les processus de compilation d’un serveur Team Build.

Code Analysis permet de valider que le code (au travers de son IL) respecte certaines conditions (bonnes pratiques) sélectionnées parmi une liste extensible de plus de 200 règles (sécurité, globalisation, performance…) et ceci à différents niveaux:

  • Lors de la compilation sur le poste du développeur, sous la forme d’avertissement et d’erreur; imposant ainsi de garantir la qualité du code le plus tôt possible (dans l’IDE) et souvent (à la compilation)
  • Lors d’un archivage de code dans le contrôleur de code source, pour garantir que le code présent dans le référentiel est valide d’un point de vue qualité
  • Lors de la compilation par le serveur de build pour noter et mettre en avant la qualité du livrable

Dans Visual Studio 2008…

La sélection et l’activation des règles s’effectue dans les propriétés d’un projet C# ou VB.NET, au niveau de l’onglet “Code Analysis”

image

Seul problème, il faut pour chaque projet reconfigurer les règles (ou aller faire un copier coller en mode texte dans le fichier .csproj pour récupérer et copier coller une liste existante), ce qui n’est pas très industrialisable. De plus, la première sélection des règles est toujours longue, il est rarement nécessaire de tout activer et lire la documentation des règles une à une pour démarrer peut être très très chronophage.

Quoi de neuf dans 2010?

Visual Studio Team Dev 2010 répond justement à ces deux soucis avec deux fonctionnalités:

1°) Des groupes pré-définis pour démarrage rapide

image

L’onglet d’activation des règles est toujours présent, mais il est maintenant possible d’appliquer un ensemble de règles pré-sélectionnés parmi une liste proposée par Microsoft.

image

Une fois un groupe sélectionné, il est possible de l’ouvrir pour le personnaliser (ajout / suppression de règles, fusion de groupes) pour le projet actif.

2°) La possibilité de créer des groupes de règles, et de les importer / exporter

Pour aller plus loin, il est également possible de créer votre propre ensemble de règles. Ce coup-ci, pas de stockage des règles directement dans les fichiers de définition de projet comme en 2008, mais plutôt dans un fichier externalisé lié au projet, dédié aux règles et donc plus facilement transportable.

Lors de l’ajout d’un fichier dans un projet, apparait donc maintenant un type “RuleSet”:

image

Ceci créé un fichier à l’extension “.ruleset”, qui dispose d’un éditeur assez pratique pour:

  • Sélectionner les règles
  • Filtrer sur les règles sélectionnées, sélectionnées comme erreur, sélectionnées comme avertissement, non sélectionnées (facilité d’évolution du ruleset)
  • Créer des sous groupes de règles
  • Avoir accès à la documentation de la règle directement depuis Visual Studio!!! (finit le CHM ou MSDN à ouvrir à coté pour le détail!!) => la documentation, description de l’erreur, et même un bout de code pour expliquer comment la corriger.

image

Honnêtement, je pense que ces améliorations vont grandement augmenter l’adoption de cet outil, qui va du coup pouvoir enfin être utilisé en mode industriel sur plusieurs projet.

[TFS 2010] Installation, Configuration, Administration: quoi de neuf?

Un message bref pour relayer trois articles!

Terminé les installations et configurations galères dans TFS 2010 grâce à beaucoup d’améliorations à ce niveau.

Pour preuve en image, je viens de publier sur TechnoS-SourceS trois tutoriaux de découverte de Team Foundation Server:

Bonne lecture et n’hésitez pas à poser vos questions directement à la suite de ce message!

Hep, msieur, comment gérer les droits dans Team Foundation Server?

Après:

Une autre question revient souvent: comment fonctionne le système de gestion des droits de Team Foundation Server?

Une petite parenthèse sur l’architecture de TFS s’impose pour répondre à cette question.

Team Foundation Server est en fait composé de trois produits:

  • Team Foundation Server a proprement parlé (des WebServices, un scheduler et une base de données SQL Server) pour les services de gestion de sources, éléments de travail et build
  • Windows SharePoint Services pour la gestion des sites d’équipes (documentation, partage de calendrier, blog, wiki)
  • SQL Server Reporting Services pour mettre à disposition des rapports

 

25-05-2009 11-57-31

Chacun de ces trois produits doit être accessible par chaque membre de l’équipe, depuis l’ outil qui lui est le plus adapté (exemple: Visual Studio). Il est donc nécessaire qu’un utilisateur ayant des droits en lecture/écriture les ait sur chacun des services. Cette contrainte est logique (chez Microsoft, ils ont préféré garder leurs produits déjà existant et ayant fait leurs preuves plutôt que d’en re-développer), mais peut rapidement se transformer en “arrachage de cheveux” pour l’administrateur en charge d’assigner les droits aux utilisateurs (trois produits, trois interfaces graphiques différentes, trois gestions de groupes et types de droits différents).

Mais il existe tout de même une solution!

A l’ère du SOA, chacun de ces produits expose des WebServices permettant de les manipuler, et donc, de gérer les droits via une interface tierce. Et c’est la qu’apparait un magnifique produit gratuit nommé TFSAdminTool, disponible avec sources sur CodePlex et mis à jour il y’a quelques semaines pour supporter la version 2008 SP1 de TFS.

C’est par ici que cela se passe: http://www.codeplex.com/TFSAdmin

L’objectif de cet outil est de centraliser la gestion des droits des trois produits dans une seule interface, ce qui en fait donc le kit d’administration essentiel pour gérer les droits (a installer de toute urgence si vous ne l’avez pas, cela vous fera vraiment gagner du temps!). Lorsque l’on assigne des droits à un utilisateur sur TFS (ex: contributeur), il reporte directement ceux-ci dans les autres produits en utilisant les groupes adaptés (EX: Contributors dans TFS deviens “Contribute + Design” dans WSS et “Publisher + Report Builder” dans RS).

image

Concernant le type de compte utilisé par les produits, Team Foundation Server ne dispose pas de base de gestion d’utilisateurs applicatif et s’appui uniquement sur des groupes Windows. Dans le cas ou vous ne disposez pas d’un Active Directory, il est tout à fait possible de créer des comptes locaux sur la machine.

Au niveau de la gestion des groupes, pour simplifier la mise en place de droits sur des équipes en perpétuel mouvement, il est possible d’utiliser soit des groupes Windows, soit des groupes applicatifs Team Foundation Server. Pour une meilleure flexibilité avec les trois produits, il vaut mieux préférer les groupes Windows (reconnus par SharePoint et Reporting Services, ce qui n’est pas le cas des groupes applicatifs).

Bref, l’outil TFS Admin Tool, l’outil à avoir sous la main si vous êtes en charge de gérer les droits d’un serveur Team Foundation!

[VS 2010 Team Dev] Quoi de neuf dans le Profiler?

Depuis Visual Studio 2005 Team Dev, le profiler de code permet de mettre en avant les goulets d’étranglement d’une application testée (quelles sont les fonctions qui prennent le plus de temps, quelles sont celles qui consomment le plus de mémoire…).

En version 2008, celui à juste reçut 2 fonctionnalités additionnelles mais fort pratique:

  • Comparaison de rapport: pour savoir si les modifications sur le code ont eut un impact positif / négatif sur les performances
  • Mise en avant du chemin critique: dans un rapport avec un arbre d’appel conséquent, le goulet d’étranglement est directement mis en avant

(détaillées ici)

La version 2010 voit encore son petit lot de nouveautés permettant d’améliorer encore l’expérience de l’utilisation de celui-ci, au programme de ce post:

  • Modification de l’assistant de création de séance de profiling
  • Profiling multi-applications
  • Améliorations du rapport général
  • Une nouvelle vue dans le rapport: functions détails
  • Profiling de JavaScript
  • Stockage des données de configuration de performance

 

Modification de l’assistant de création de séance de profiling

VS 2008:

image image image

VS 2010:

 image image image 

Modifications:

L’ordre des fenêtres a changé, on décide d’abord du type de profiling avant de choisir l’application ciblée.

Sur le type de profiling, deux nouvelles options sont apparues:

  • .NET Memory Allocation (Sampling): permet de faire une séance de profiling en se concentrant non pas sur les temps d’exécution des méthodes, mais sur la consommation mémoire de chacune. Ce mode était activable avant au travers d’un menu contextuel et du paramétrage une fois l’assistant passé. L’atteindre sera maintenant plus intuitif
  • Concurrency: Nouveau mode de profiling qui se concentre sur la détection des problèmes lié aux applications multithread (car le profiler gère ce type d’application de mieux en mieux depuis sa version 2008)

Sur le type des applications pouvant être profiler, aucun changement si ce n’est le remplacement d’une DropDownLost par une ListBox (a noter que cela permet du coup de sélectionner plusieurs projets à Profiler en même temps!).

Sur la derrière fenêtre, une case cochée par default permet de lancer automatiquement (cela surprend la première fois de voir l’application s’exécuter immédiatement).

 

Profiling multi-application

 image image

Il est possible de profiler d’un coup plusieurs tiers d’une application (en 2008, il fallait ouvrir une instance de Visual Studio pour chacun) et de faire apparaitre du coup un rapport de dépendances (combien de fois une des pages de mon application Web fait appel à un service de ma couche WCF).

Je ne peux pas détailler plus pour l’instant car cette fonctionnalité semble dysfonctionner dans la béta 1 (j’éditerai le post plus tard).

Améliorations du rapport général

VS 2008:

image

VS 2010:

image

Modifications:

Bon, la capture d’écran parle d’elle même, Visual Studio 2010 est en WPF, l’équipe qui fait le profiler en a profité pour faire quelque chose de beau.

A noter donc:

  • en haut a gauche, une gestion de l’historique dans les scénarios d’analyse des rapports, qui permet donc de revenir en arrière lorsque l’on navigue de rapport en rapport en détail de rapport...
  • en haut au milieu, toujours la possibilité de changer de vue d’analyse (Summary, Call Tree, Modules, Caller/Callee, Functions, Function details, Mark, Process) et quelques icones d’option (notamment une nouvelle option de split de fenêtre, grisée dans la beta)
  • Au milieu gauche, la mise en avant du chemin critique, directement ici
  • En bas, le détail des fonctions qui ont pris le plus de temps mais avec une vue en % et en graphe, plus simple à la lecture
  • Au milieu droit, les options accessible habituellement de la barre d’outil et du menu contextuel en mode “détaillé” pour aller directement vers l’option désirée

 

Une nouvelle vue dans le rapport: Function Détails

Permet d’avoir une cartographie en WPF de l’utilisation d’une méthode, avec vue en même temps sur son code

image

Ici on remarque, que la méthode “MethodeB” (dont le code s’affiche en bas) est appelée pendant 222,0 millisecondes dans la méthode A (zone bleu de gauche) et que durant son appel, 0,8 millisecondes sont exploitées dans son code, 217,7 dans le sous appel à System.String.Concat(), 3,5 a Int32.ToString() et moins de 0,1 a Object.ToString().

Cette méthode représente également (au milieu de l’écran), 53,0% du temps d’exécution de l’application.

En mode “informations mémoire”, des instructions apparaissent directement dans le designer de code (par exemple ci-dessous, en rouge ce qui consomme le plus de mémoire avec sur la gauche la taille que cela représente).

image

 

Profiling de JavaScript

En mode instrumentation, il est maintenant possible d’activer le profiling du JavaScript trouvé dans une analyse de navigation Web.

Il suffit pour ceci d’activer l’option (désactivée par default), d’une séance de profiling Web.

image

Soit le code suivant:

image

Le profiler remonte dans son rapport le chemin d’exécution suivant:

image

et toujours la fenêtre de détail liée:

image

 

Stockage des données de configuration de performance

Toute petite fonctionnalité mais bien pratique, la configuration d’une session de performance est maintenant stockée au coté de la Solution, dans un répertoire Solution Items (avant c’était un fichier non lié, dépendant du Visual Studio de la personne ayant fait l’analyse de performance).

Ceci est pratique pour pour re-trouver les anciennes configuration et surtout les versionner pour diffuser aux autres membres de l’équipe via un contrôleur de code source (et leur permettre ainsi d’analyser les performance de l’application avec le même paramétrage).

image

 

 

Voila, bonne découverte!

(je compléterai ce post au fur et à mesure des modifications)

[Test MF] Device Solutions “Tahoe Development Kit”

J’ai la semaine dernière fait un petit tour dans la caverne d’ali baba des kits de développement pour Micro Framework (comprendre “le bureau de Pierre Cauchois, Microsoft Evangelist sur l’embarqué”) ou le gardien à eut la gentillesse de me prêter un peu de “matos” afin que je fasse mumuse.

Bref, pour changer de ma carte de développement “Embedded Master 2”, voici donc un test de la carte “Tahoe” du constructeur “Device Solutions”.

DSCN1406

Comme le décrit le schéma suivant, la carte est composée:

TahoeBlockDiagram

  • D’un écran couleur LCD 2.7, avec une bien belle résolution (voir la première image de ce post ou j’affiche une photo dessus):

DSCN1407

  • De quelques connecteurs tels que l’USB (le plus simple pour connecter au PC pour déployer et alimenter en même temps), un port COM et un port d’alimentation (pour faire fonctionner le kit de développement sans être dépendant d’un PC).

DSCN1409

  • De trois zones d’extensions pour connecter et piloter des périphériques externes (tel que le module Ethernet non présent en standard sur la carte) et d’un port d’accès JTAG. Sur la photo suivante est par exemple branché (en haut) un accéléromètre 3D, pour récupérer des informations sur le mouvement de la carte (pratique pour jouer à “la bille dans le labyrinthe” :) ).

DSCN1410

  • D’un petit panel de 9 boutons (et d’un bouton reset):

DSCN1413


Le SDK proposé par Device Solutions est bien fait, la documentation très très claire (avec surtout un how-to start en 3 pages du genre “pas besoin de lire trois tonnes de pages pour faire un hello world”). Seul petit regret, pas d’exemples de code qui utilisent les spécificités de leur DLL.

Cette carte dispose nativement d’un Firmware compatible Micro Framework 2.5 mais toute la documentation pour la migrer en 3.0 est disponible (et cela semble être beaucoup plus simple qu’avec l’Embedded Master).

Un gros point fort du SDK est qu’il propose un émulateur représentant la carte, et que celui-ci fonctionne très bien (et permet donc de gagner du temps en phase de développement en limitant les déploiements sur la carte).

image 

Concernant mes impressions:

Les +:

  • Facilitée de déploiement depuis Visual Studio (avec l’Embedded Master, cela marche pas toujours et il faut reformater la carte régulièrement…)
  • L’écran couleur, c’est fun
  • Beaucoup de possibilités d’extension
  • L’accéléromètre qui s’ajoute
  • Un bon émulateur

Les –:

  • Pas de connectivité réseau en standard sur la carte (ni Ethernet, ni wifi), même si cela peut être ajouté après.
  • Peu de périphériques et de connectivités directement greffées sur la carte (pas d’USB additionnel, pas de led, pas de buzzer

En bref, en rapport avec l’Embedded Master 2, cette carte possède moins de choses en standard mais est plus pratique pour développer (émulateur, écran couleur, Firmware bien fait, connaissances en électronique moins requises qu’avec les autres cartes).

Un petit plus également, cette carte étant en “fin de carrière” (une V2 existe maintenant), elle est en train d’être bradée par les différents revendeurs (165 euros au lieu de 300 ici par exemple).

DSCN1402

Et de deux, encore une :)

Push Bip Push Flash avec le .NET Micro Framework

Voici un troisième post d’une série qui décrit, semaine après semaine (ou du moins week end après week end), mon exploration du Micro Framework.

Après la configuration de ma carte et mon premier Hello World d’affiché sur son LCD, me voici lancé dans une quête effroyablement fun pour interagir avec les différentes interfaces et interactions homme / machine disponibles sur la carte. A savoir dans un premier temps des boutons, un buzzer et une led.

Avant de commencer, un petit retour sur le Hello World, il existe une manière beaucoup plus simple de le faire: plutôt que de créer un projet Micro Framework de type “Micro FX console application”, il suffit d’en créer un de type “ Micro FX Windows Application”.

image

L’intérêt est qu’un squelette de code conséquent est généré et que celui-ci contient déjà tout ce qu’il faut pour afficher du texte (et même le message “Hello World” en fichier de ressources… :))

image 

Ce qui donne sur la carte, sans aucun autre effort qu’une petite compilation:

IMAGE_002

L’avantage de ce squelette de code est qu’il contient également tout le code requis pour interagir avec les événements de sélection des boutons (via un système de mapping, à modifier en fonction du type de carte utilisé).

Me voici donc capable d’ajouter des événements lorsque quelqu’un appui sur un des boutons de la carte…

image

…et de faire un switch / case pour interagir en fonction du type de bouton pressé, par exemple ci-dessous, après la pression du bouton “select”, l’exécution de l’application prend fin:

image 

IMAGE_003

La led avec laquelle je souhaite interagir étant spécifique à ma carte, sa manipulation s’effectue via un objet .NET la représentant dans la librairie (DLL) fournie par le constructeur de mon kit de développement (EmbeddedMasterLibrary_MFW3.0 de GHI Electronics dans le cas présent), un ajout de référence s’impose donc avant de pouvoir la manipuler via un objet de type PWM.

Ce qui donne pour un clignotement (passe progressivement et 10 fois de suite d’un état éteint à un état allumé):

image

Pour ce qui est de l’utilisation du buzzer, c’est directement le .NET Micro Framework, via le namespace Microsoft.SPOT.Hardware.Utility qui fournit le nécessaire grâce à la méthode statique Utility.Piezo(…)

image

Avec “note” ayant par exemple comme valeur pour jouer l’hymne à la joie de Beethoven (exemple du SDK, je n’ai ni l’œil, ni l’oreille musicaux… j’avais promis la carioca dans un précédent message, mais la je le sent moyen):

image

Et voila, le résultat en vidéo (désolé pour la qualité, juste un vieux téléphone portable sous la main la):

Prochaine étape: jouer avec la carte réseau :)

Visual Studio Team System 2010: Quoi de neuf?

vsts_2

Voici un petit relais avec explication du dernier post de Brian Harry, qui énumère la liste des nouveautés qui arrivent dans Visual Studio Team System 2010.

De mon point de vue, j’ai toujours considéré que VSTS 2008 était un SP2 de l’offre Team System 2005: optimisation des performances et ajouts des quelques fonctionnalités pour augmenter la productivité (sur la partie build et test). Une version plus complète de Team System (Rosario) devait sortir 1 an après mais elle à – pour des raisons logiques de cohérence avec l’offre Pro – été finalement décalée à la sortie de Visual Studio 2010.

En tout cas, nous y sommes maintenant et du coup, nous voila avec plein de nouveautés et une grosse release de Team Foundation Server et de Visual Studio Team * dans cette version qui arrive très très bientôt en Beta 1.

Pour reprendre la liste de Brian Harry, avec à chaque fois un lien vers le blog du chef de produit:

Architecture (http://blogs.msdn.com/camerons/)

  • Architecture Explorer: une nouvelle fenêtre dans Visual Studio permettant de naviguer dans l’architecture technique d’une solution, projet ou projet d’équipe (dépendances de DLL, d’objets, lignes de codes…).
  • Layer diagram: La possibilité de définir un diagramme représentant les différents couches techniques de votre application, le tout de manière synchronisée avec la structure de la solution et les différentes DLL. Cela permet par exemple d’avoir des règles de validation d’architecture qui lèvent des erreurs si un bout de code ne respecte pas la définition (un objet métier attaque directement la BDD sans passer par la DAL par ex).
  • Use case designer: La possibilité de faire de l’UML dans Visual Studio, de manière bi-directionnelle diagramme / code
  • Activity designer : Idem – Welcome to UML
  • Component diagram : Idem
  • Logical class designer : Idem
  • Sequence diagram : Idem: une démo intéressante consiste à copier coller un bout de code .NET dans ce schéma, le diagramme de séquence se génère automatiquement (pratique pour les fainéants comme moi qui veulent faire un peu de doc pour faire plaisir au chef de projet)
  • Modeling project system : Je ne vois pas ce que c’est, a creuser :)
  • UML Model explorer: Nouvelle fenêtre pour naviguer dans les différents schémas UML
  • Architecture validation during build : Daes tâches MSBuild pour valider que le code écrit respecte la conception modélisée dans les différents diagrammes.

Development & Database (http://blogs.msdn.com/habibh/)

  • Historical debugging : Un nouveau mode de débogage qui permet notamment de remonter à tout moment dans la pile des événements levés
  • Test impact analysis : Un nouveau système qui met en avant la liste des tests unitaires impactés par la modification du code (et devant donc être rejoués très rapidement)
  • Improved code analysis : La possibilité de créer des groupes de règles, plus pratique pour la réutilisation sur plusieurs projets
  • Improved profiling (especially multi-tier) : Le profiling à distance (aujourd’hui, c’est assez délicat de profiler une application Windows qui consomme des WebServices sur un autre serveur) – je n’ ai pas encore testé ceci
  • Database extensibility : Une refonte de la partie DBPro, avec notamment l’arrivée de providers autre que SQL Server

Lab Management (http://blogs.msdn.com/amit_chatterjee, http://blogs.msdn.com/lab_management)

  • Multi-tier Environment creation and management
  • Automated deployment
  • Easily manage machine pools
  • Network fencing
  • Checkpoints

=> Un tout nouvel outil qui va permettre de générer et gérer des environnements virtuels de test! Je click sur un bouton, un environnement est créé, mon application est déployée et mon testeur n’a plus qu’a se connecter en bureau distant dessus.

Test (http://blogs.msdn.com/amit_chatterjee, http://blogs.msdn.com/james_whittaker)

  • Test planning
  • Test case management
  • Test prioritization
  • Run management & reporting

=> Un nouvel outil en WPF (nom de code Camano) dédié aux testeurs fonctionnels (n’ayant pas de Background technique et donc pas Visual Studio d’installé) pour organiser des campagnes de tests, créer des jeux de tests et les exécuter tout en gardant un flux de communication simple (via des Work Items diffusés dans TFS) avec les développeurs.

  • Project quality reports
  • Manual test execution => Camano
  • Diagnostic recording (environment, video, etc) => Possible d’enregistrer automatiquement en vidéo le travail du testeur afin de permettre au développeur de reproduire plus facilement les bugs identifiés
  • UI Automation recording  => Tests automatique sur les interfaces graphiques!!! Avec tout ce qu’il faut pour les enregistrer.
  • Coded UI tests => Un Framework pour tester les interfaces graphiques (utilisé par le UI automation recording)

TFS (my blog http://blogs.msdn.com/bharry)

  • Work item hierarchy & linking : La notion de hiérarchie entre les Work Items liés (père – fils / frère – frère / suivant – précédant…)
  • Improved Agile template : Mise à jour des modèles de processus (avec plein de nouveaux champs qui peuvent être utiles et des rapports pertinents)
  • MOSS & WSS Dashboards : L’enrichissement du portail d’équipe avec des tableaux de bords dédiés aux personnes non techniques, basés en grande partie sur Reporting Services
  • Simplified reporting
  • Improved support for parallel development
  • Rollback : Une commande dans l’interface graphique qui permet d’annuler (compenser) un archivage (existait en ligne de commandes avant)
  • Build queuing and pooling : grosse refonte du système de build, avec notamment la possibilité de faire du build distribué (et de modéliser les builds avec Workflow Foundation)
  • Gated checkin :  Un nouveau mode d’archivage. Le principe est simple: le développeur archive son code, celui-ci est pris en charge par le service de build qui vérifie qu’il compile, qu’il respecte les différents règles de qualité et que tous les tests passent. Si tout est ok, l’archivage est intégré dans la branche de développement du contrôleur de code source, sinon, le développeur est notifié.
  • Simplified setup: L’installation du produit devient plus simple
  • Scale out of web and data tiers : Load balancing sur le Tier Applicatif (webservices) et support 64 bits!
  • Admin console : Une belle interface d’administration pour gérer le serveur (migration des bases notamment)
  • Project move/archive/restore : La notion de collection de Team Project, qui rend possible et peu contraignant, le changement  de serveur d’un sous ensemble de projet d’équipe.

Voila, bientôt, avec la Beta 1 des belles images et détails sur tout ça :)

[Hors sujet] Les ravages de la drogue dans le monde de l’informatique

Bonjour,

J’ai décidé de prendre quelques instants pour traiter de ce sujet assez grave, auquel je viens d’être personnellement  confronté. Je vous propose de narrer ici cette anecdote.

Les Microsoft TechDays se sont déroulés en Février dernier au palais des congrès. Etant plutôt occupé à courir de partout dans l’espace exposants et à me concentrer sur mon contenu jusqu’au dernier moment, je n’ai pu assister, à mon grand regret, à aucune session.

Dernièrement, l’annonce de la disponibilité des Webcast m’a réjouit, voyant ici l’opportunité de rattraper mon retard. Me voici donc ce matin en train de sélectionner une conférence parmi les nombreuses intéressantes disponibles (Oslo, Dublin, WF, VSTS 2010, Azure, .NET 4.0, voir même Sharepoint…)

Bref, finalement, ma souris a cliqué sur une session intitulée Coding4Fun… étrange. Celle-ci étant animée par deux personnages un poil connu, un certain Dick L. (*) et un Sacha  L. (*)

(*) Les noms des intervenants ont volontairement été modifiés par respect pour leurs familles respectives. En effet, l’indexation google peut faire des graves ravages.

Et me voila parti dans 3/4 d’heures de démonstrations, toutes plus aberrantes les unes que les autres.

image 

Je ne préfère pas en parler ici, au risque de passer pour un quelconque fabulateur ou gâcher le suspens: si vous n’avez pas pu participer à la session, allez voir par vous même :)

En résumé, et sur le contenu, plusieurs choses à dire:

  • Merci messieurs, vous avez réussit à rendre joyeux un aller-retour Paris / banlieue
  • C’est exactement comme ça que je veux que mon travail soit: entre deux phases sérieuses, du code et du fun, sans limites (et le pire, c’est que, en plus de me marrer, j’ai appris des choses vraiment intéressantes dans cette session)
  • Vivement l’année prochaine pour la suite!!!

Concernant le titre de ce post – désolé - c’est juste que, pour animer une session comme ceci et trouver des démonstrations aussi tordues, il faut forcement avoir quelque chose qui ne tourne pas rond ou être sous l’influence d’un ensemble conséquent de stupéfiants (prenons le choix 1 dans ce cas-ci).

Liens:

Have fun (and code) !

[Hors sujet] Les blogs Codes-Sources s’adaptent à la crise? :)

image

Meuuuhhh, Nix? :)

Au moins que cela soit lié au mot-clé “SharePoint” juste au dessous?

*hop*

TFS 2005/2008: Quelques pré-requis qui évitent de perdre du temps (OS + BDD)

Une installation de Team Foundation Server peut s’effectuer très rapidement, en quelques heures (en comptant la configuration).

Cependant, ceci n’est possible que si certains pré-requis sont respectés.

Il arrive parfois que le système d’exploitation du serveur ou bien sa base de données soient installés par une personne tierce tel qu’un administrateur système ou un administrateur de base de données.

Si vous ne souhaitez pas perdre de temps à réinstaller ces éléments, quelques règles doivent impérativement être respectées:

- Dans le domaine:

  • Si vous n’avez pas la main sur l’active directory, pensez à faire créer les différents comptes de services requis par TFS par votre administrateur système (30min à plusieurs jours en fonction de l’entreprise). La liste des comptes requis et leurs paramétrages détaillé est consultable dans le guide d’installation (vous pouvez copier / coller la doc pour emailer aux admins).

- Sur le Media d’installation

  • Si vous installez la version 2008 de TFS, pensez, avant de commencer, à ajouter le Service Pack 1 dans le média d’installation, cela vous fera gagner 30min et vous évitera d’oublier d’installer le SP1 (ou de ne pas l’installer au bon moment et donc de devoir le réinstaller). La procédure détaillée est disponible ici.

- Sur la partie OS:

  • Le Windows utilisé par le tiers applicatif(*) de TFS doit obligatoirement être en 32bits, or, avec Windows 2008, les administrateurs systèmes ont de plus en plus le reflexe 64 bits (qui sera supporté avec TFS 2010). Si ceci n’est pas respecté, tout doit être réinstallé (OS + base): durée 1h30.
  • Le tiers applicatif ne doit pas être contrôleur de domaine, ce qui est souvent le cas dans les petites entreprises qui possèdent un seul serveur et qui sont tentées de tout mettre dessus: AD, TFS et intranet. Sinon, il faut tout réinstaller sur une autre machine (durée 1h30) ou désactiver le contrôleur de domaine (durée au moins 15min mais critique).

(*) TFS peut être installé sur deux serveurs, applicatif (webservices) et données (SQL Server). La majorité des installation se font sur un seul serveur qui doit donc obligatoirement être en 32 bits, mais si l’installation s’effectue sur deux serveurs, le serveur applicatif doit être en 32 bits et le serveur de donnée peut être soit en 32 soit en 64 bits.

- Sur la partie SQL Server:

  • La collation utilisée doit être standard (latin), insensible à la case (CI) et sensible aux accents (AS). Si ces éléments ne sont pas respectés lors de l’installation, la base devra être réinstallée: durée 30min
  • Reporting Services ne doit pas être configuré lors de l’installation de TFS, SQL Server le fait

Bref, si tout ceci est accumulé, on a vite fait de passer de quelques heures à une journée pour installer un simple serveur TFS. Tous ces pré-requis sont détaillés dans la documentation. Ayant fait de nombreuses installations de TFS et connaissant le processus sur le bout des doigts, je continue tout de même encore aujourd’hui à suivre la procédure installation pas à pas pour ne jamais oublier un pré-requis ou une étape de l’installation (et encore, ca m’arrive de gaffer)! Je ne peux que conseiller d’en faire autant. La procédure d’installation détaillée se trouve dans le “TFSInstallationGuide.chm” disponible sur le DVD d’installation du serveur.

image

Si vous voyez d’autres pré-requis critiques que j’ai oublié, n’hésitez pas à compléter en postant un commentaire.

Hep, msieur, c’est quoi le serveur Proxy de Team Foundation Server?

Le serveur Proxy de Team Foundation sert à optimiser les temps d’accès aux sources gérées par le contrôleur de code source de Team Foundation Server.

Grosso modo, le proxy se comporte comme un système de cache qui va stocker les fichiers extraits du contrôleur de code source sur le système de fichiers du proxy afin de pouvoir les servir plus rapidement lors de la prochaine demande.

Le proxy n’agit qu’à l’extraction des sources (get last version) et jamais à l’archivage (checkin). Ce dernier s’effectue toujours en direct avec le serveur TFS.

image

    1. Le développeur 1 demande (get) des sources au serveur Proxy
    2. Le proxy n’a pas la version des sources souhaitées dans son cache de fichiers, il sert donc d’intermédiaire et interroge le serveur TFS pour les extraire
    3. Le développeurs 1 reçoit les sources demandées du serveur Proxy
    4. Le développeur 2 demande les même sources, le serveur Proxy les a déjà dans son cache et les renvoies donc directement
    5. Les archivages (checkin) se font directement vers le serveur TFS sans passer par le Proxy, le cache proxy des fichiers modifiés sera donc rafraichit lors de la prochaine demande des fichiers modifiés par un autre développeur.

Dans quels cas est ce que l’utilisation du proxy n’est pas vraiment pertinente:

  • Si le serveur est sur un site central et que un ou plusieurs développeurs travaillent à distance, mais chacun sur un projet d’équipe ou ensemble de sources différentes. En effet, le proxy est utile pour optimiser les temps d’extraction. Un développeur travaillant seul sur un projet à distance aura forcement toujours les dernières sources sur son poste de travail, vu qu’il travaille dessus. Le proxy n’a donc pas d’intérêt et n’optimise rien si les développeurs ne sont pas sur le même site et/ou ne travaillent jamais sur les même sources.

image

Dans quels cas est ce que l’utilisation du proxy est pertinente:

  • Si plusieurs développeurs distants travaillent sur un même projet ou ensembles de sources. Car dans ce cas, le premier développeur à demander les sources du serveur central disposera celle-ci sur le serveur proxy intermédiaire. Les autres développeurs, lors de la demande des même sources, viendront directement se servir dans le cache du proxy (voir premier schéma), ce qui sera toujours plus rapide que si ils avaient à se servir sur le serveur central.
  • Si un développeur ou un service doit effectuer des extractions similaires de manière fréquentes. C’est le cas par exemple du service de build qui à chaque compilation télécharge la dernière version des sources dans un nouveau répertoire pour les compiler. Il y’a souvent beaucoup de code commun entre deux builds (surtout lorsque l’on est en intégration continue), le temps d’accès aux sources peut donc être considérablement réduit et le temps du process de build complet optimisé en installation le service de proxy sur le même serveur que le service de build.

image

Physiquement, le proxy se présente sous la forme d’un ensemble de services Web (IIS) ayant la même signature que ceux de communication avec le contrôleur de code source proposés par Team Foundation Server ainsi que d’un espace de stockage de fichiers. Le service de Proxy s’installe directement depuis le DVD de Team Foundation Server.

Pour le configurer une fois installé, il faut modifier le contenu du fichier proxy.config situé dans son répertoire d’installation, sous répertoire: Web Services\VersionControlProxy. Il y est possible de spécifier la liste et les URL des serveurs Team Foundation Server ciblés ainsi que les comptes utilisateurs et droits nécessaires pour s’y authentifier, mais également les paramètres de gestion de cache tels que le chemin local de stockage des données ou la durée de conservation de celles-ci.

A noter qu’un serveur TFS peut posséder autant de services proxy que requis, aucune configuration n’est à faire sur le serveur ciblé, tout se passe sur les proxy.

Pour activer l’utilisation d’un proxy dans Visual Studio, cela se passe directement dans la fenêtre de configuration ci-dessous, accessible depuis les menus Outils / Options, onglet  Source Control / Visual Studio Team Foundation Server  :

image

A noter que si le serveur proxy ne répond pas aux demandes de Visual Studio, celui-ci est automatiquement désactivé afin que les appels se fassent directement vers le serveur Team Foundation Server.

Pour la doc détaillée MSDN de présentation et configuration du serveur Proxy, cela se passe par ici: http://msdn.microsoft.com/fr-fr/library/ms252490(VS.80).aspx

Et voila!

PS: Si vous voulez que je traite et détaille des sujets particuliers autour de Visual Studio Team System, n’hésitez pas à laisser un commentaire!

PS2: Non Nix, je n’expliquerai pas comment installer TFS 2008 SP1 sur une machine x64 :)

Plus de Messages Page suivante »


Les 10 derniers blogs postés

- Nouveau blog en anglais / New blog in english ! par Le blog de Patrick [MVP SharePoint] le il y a 4 heures et 50 minutes

- [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le 09-15-2014, 11:31

- [ #Office 365 ] New service settings panel / Nouveau panneau de paramétrage des services par Le blog de Patrick [MVP SharePoint] le 09-11-2014, 08:50

- Problème de déploiement pour une démo SharePoint/TFS? par Blog de Jérémy Jeanson le 09-10-2014, 21:52

- [ #Office365 ] Delve first impressions / Premières impressions sur Delve par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 16:57

- [ #Office365 ] How to change Administration console language ? / Comment changer la langue de la console d’administration ? par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 08:25

- [ #SharePoint 2013 ] Suppression de bases de données en état “Pas de Réponse” par Le blog de Patrick [MVP SharePoint] le 09-04-2014, 14:10

- Changer l’adresse d’une ferme Office Web Apps associée à SharePoint par Blog de Jérémy Jeanson le 09-01-2014, 22:21

- Une ferme #SharePoint 2013 dans @Azure en quelques clics (1ère partie) ! par Le blog de Patrick [MVP SharePoint] le 08-28-2014, 18:52

- SharePoint 2013: Préparation de la migration - Création des site Templates dans 2010 et 2013 par Blog Technique de Romelard Fabrice le 08-20-2014, 16:31