• Home

Migration Windows Phone 8.1 vers Universal App – Partie 1

Cet article est le premier d’une série dont l’objectif est de présenter la migration d’une application Windows Phone 8/8.1 de type « Silverlight » vers une Universal App. Dans un premier temps, nous verrons comment migrer le code en utilisant les nouvelles apis. De plus même si les applications « Silverlight » seront toujours compatibles avec Windows 10, l’arrivé de ce nouvel OS est une bonne occasion pour débuter une migration. Elle permettra de tirer parti des dernières nouveautés et elle assurera également la pérennité de l’application.

windows10

Qu’est-ce qu’une « Universal App »

L’application universelle est le nouveau modèle de développement pour les applications Windows. Ce modèle permet de mutualiser le code entre toutes les plateformes. Avec l’arrivée de Windows 10 ce modèle est renforcé car il sera possible de déployer sur les téléphones, Xbox, IOT, soit l’ensemble des appareils acceptant la dernière version de l’OS de Microsoft.

IsolatedStorageSettings

Cette classe permet de stocker des informations de manière permanente. Elle est très utile par exemple pour stocker le paramétrage de l’application comme le montre l’exemple ci-dessous.

Débogage à distance avec les Remote Tools

Lors de la phase de mise au point d’une application universelle, il est impératif de tester son interface avec un écran tactile. Si comme moi votre poste de développement n’en dispose pas, il faut trouver un moyen pour déployer son application sur un autre appareil. La solution la plus simple est d’utiliser les fonctionnalités de « remote debugging » de Visual Studio. Vous pourrez ainsi déployer votre application facilement et surtout la tester avec le débogueur activé. Si en plus votre appareil cible dispose de Windows 10 comme dans cet article, vous aurez également le loisir de valider son bon fonctionnement avec le nouvel OS de Microsoft.

Installation des « remote tools »

La première étape consiste à télécharger les « remote tools » pour Visual Studio puis de les installer. Comme vous pourrez le constater sur la capture ci-dessous, il n’y a rien de compliqué, il suffit simplement de valider l’installation :

remote tools

TFS build vNext

Introduction

Une des nouveautés de la version 2015 de TFS est la mise à disposition d’une nouvelle méthode de build. Bien qu’étant toujours compatible avec le moteur « historique » basé sur « Workflow Foundation », il est désormais possible d’utiliser une build vNext. Cet article a pour objectif de faire un tour d’horizon de cette nouvelle fonctionnalité.

Avant de rentrer dans le vif du sujet, jetons un coup d’œil à la console d’administration de TFS. Dans cette dernière, la section « contrôleur de build » a disparu au profit d’une nouvelle nommée « Legacy Build Configuration » comme le montre la capture ci-dessous. Si vous souhaitez conserver vos builds existantes lors de la migration, il ne faudra donc pas oublier de configurer cette partie.

01 no build controller

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
Web Analytics