• Home

TFS dans Azure – TFS setup – Partie 4

Introduction

Dans ce dernier épisode de cette série d’article sur TFS dans Azure, je vais vous montrer comment finaliser l’infrastructure en installant Team Foundation Server et Release Management.

Installation de TFS

Le première étape consiste à lancer le programme d’installation de TFS puis de cliquer sur « Install Now ». L’outil se chargera alors de copier l’ensemble des fichiers requis, la configuration se faisant ultérieurement.

01 installation

TFS dans Azure – Sql server setup – Partie 3

Introduction

Ce troisième volet de la série TFS dans Azure a pour objectif de vous présenter l’installation de SQL sur le serveur TFS. Ce dernier aurait pu être installé sur un serveur dédié mais un autre VM aurait ajouté un cout supplémentaire, il est donc préférable de tout installer sur le même serveur.

Centre d’installation SQL Server 2014

Comme toute installation, la première étape consiste à lancer le centre d’installation de SQL Server. L’option retenu de ce dernier est la mise en place d’un serveur autonome :

01 launch install

TFS dans Azure – Active directory setup – Partie 2

Introduction

Pour ce second article de la série TFS dans Azure, nous allons voir comment configurer un Active Directory. Cet élément est essentiel car il permet de fédérer l’authentification à travers l’ensemble des composants.

Ajout du rôle Active Directory

La première étape consiste à se connecter sur la machine puis via la console d’administration d’ajouter un nouveau rôle au serveur comme le montre la capture ci-dessous :

01 add role

CDN avec Azure

Lors de la mise en place d’un site, une étape permettant de l’optimiser est d’utiliser une CDN. En effet ce dernier permet d’externaliser le stockage du contenu statique (scripts, js, images, etc.) et donc de décharger le serveur. Dans cet article je vais vous montrer comment facilement monter son propre CDN en utilisant Azure.

Création du Stockage

La première étape consiste à créer un stockage qui recevra l’ensemble des fichiers utilisés par le CDN, comme le montre la capture ci-dessous :

creation storage

Pourquoi la complexité du code est importante pour les tests unitaires

Lors de l’écriture d’un code complexe comme par exemple un algorithme de calcul, les tests unitaires sont des éléments importants car ils vont permettre de vérifier le bon fonctionnement de ce dernier.

Imaginons donc que notre application ait besoin d’un algorithme de calcul et que ce dernier puisse être écrit de la façon suivante :

Après l’écriture de cet algorithme, il sera nécessaire de réaliser un certains nombres de tests unitaires afin de s’assurer que le résultat retourné pour la méthode GetResult correspond bien à celui attendu.

Gestion du cache avec HttpClient & Windows Phone

Introduction

Aujourd’hui la meilleure option pour consommer un service REST qui renvoie du JSON est d’utiliser la classe HttpClient. Or lorsque l’on utilise cette dernière dans une application Windows Phone, il faut prendre garde à la gestion spécifique du cache avec cette plateforme. En effet pour une application de type Windows, chaque requête sera transmise au serveur et les données récupérées seront bien celles attendues. Par contre avec une application Windows Phone, plusieurs appels successifs à la même adresse retourneront la même réponse car celle-ci sera issue du cache intégré à l’application.

Mise en évidence du problème

Pour mettre en lumière le problème décrit précédemment, voici une méthode qui permet de récupérer les horaires des transports en commun de Los Angeles. Cette dernière appelle l’api toute les deux secondes et affiche l’horaire retourné. En toute logique, ce dernier évolue dans le temps car le bus ou le métro correspondant à la ligne demandée se déplace.

Résultat avec une application console

Lorsque le code est appelé depuis une application console, on constate bien que le champ « seconds » diminue à chaque appel. Nous avons donc bien le comportement souhaité.

Résultat avec une application Windows Phone

Maintenant si le même code est appelé depuis une application Windows Phone, vous pouvez constater que toutes les lignes sont identiques. Ceci est dû à la mise en cache des données. Ainsi lors du premier appel, l’application récupère bien les données, mais pour les appels suivants, ce sont les informations en cache qui sont retournées.

Solution

Pour avoir un fonctionnement conforme à ce que l’on peut attendre, il faut désactiver le cache. Pour cela il faut modifier l’objet « DefaultRequestHeaders » pour lui ajouter la date actuelle à la propriété « IfModifiedSince ». Ainsi le cache est désactivé.

Si l’on relance le même code avec le workaround activé, on constate que les données sont bien récupérées. Il est cependant important de noter que la désactivation du cache est intéressante pour des données qui sont très volatiles. En effet si vous utilisez des services type météo dont les données ne changent que quelques fois par jour, il est préférable de laisser le cache activé, cela réduira la consommation réseau de l’application mobile.

Formatage du code avec Resharper

Pour moi Resharper est un des outils indispensables lorsque l’on souhaite développer en .Net. Je ne m’attarderais pas sur l’étendue des possibilités offertes par cet outil car ce n’est pas l’objectif de ce billet. Cependant, parmi ces fonctionnalités, il en existe une qui permet de reformater son code selon un schéma qui est modifiable. On peut donc définir ses propres règles. Je vous propose donc de voir comment faire et quelle est la syntaxe à utiliser pour avoir un code parfaitement ordonné.

resharper

TFS dans Azure – Azure setup – Partie 1

Introduction

Cette article est le premier d’une série qui a pour objectif de décrire le processus d’installation d’une infrastructure complète pour TFS dans Azure. Dans un premier temps je vais vous montrer comment configurer Azure pour accueillir cette plateforme. Je continuerai ensuite par l’installation d’un Active Directory puis de SQL Server. Enfin je terminerais avec la mise en place de TFS et de Release Management.

Création du réseau virtuel

Avant de créer le réseau virtuel, il faut au préalable créer un groupe d’affinité. Ainsi tous les services Azure seront regroupés dans la même région, ce qui aura pour effet d’optimiser les performances. Pour cela vous pouvez vous rendre dans la rubrique « settings » du menu principal et créer le groupe :

01 affinity group

Installer SQL Server avec un Sysprep

Dernièrement j’ai créé une machine virtuelle pour y héberger une installation de TFS 2103. Comme auparavant j’ai utilisé un disque issu d’un sysprep de Windows Server. Ainsi j’économise de la place et du temps pour la création de ma machine. Seulement pour utiliser TFS 2013, il faut une installation de SQL Server. De ce fait je me suis alors demandé s’il n’était pas possible de créer une image avec SQL Server pour ensuite effectuer un sysprep dessus. Je vais donc vous expliquer comment effectuer cette opération pour gagner encore plus de temps et d’espace lors de la création d’un disque de référence.

Préparation de l’installation de Sql Server

La première étape consiste à lancer l’installation de SQL Server et de choisir l’option préparation d’image dans la rubrique « Advanced » :

sql server preparation

Méthode virtuelle & async await

Introduction

Dans une application utilisant MVVM, j’écris souvent une classe de base pour mes ViewModels. Cela me permet par exemple de définir une méthode LoadData qui sera appelée automatiquement lorsque la vue est affichée. Voici un exemple d’implémentation de cette classe :

Web Analytics