Vous êtes sur la page 1sur 36

Productivit

Collaboration
Mobilit
DevOps

dito

Productivit, collaboration,
multiplateforme et multi-devices
Depuis 20 ans, Microsoft ne cesse de faire voluer Visual Studio:
nouvelles fonctionnalits, optimisations, nouveaux supports
systmes et matriels. Visual Studio nest pas quun IDE, mais une
vritable plateforme de dveloppement pour les mobiles, le web, le
Cloud et le desktop. La nouvelle version2015 est dans la continuit
des versions prcdentes, tout en apportant des amliorations
notables pour le dveloppeur.

Amlioration de la productivit du dveloppeur! Pour Microsoft,


cest un objectif. Comment, au quotidien, aider et faciliter le
dveloppement et in fine, la vie du dveloppeur ? Cela passe par des
fonctions comme IntelliSense, CodeMap et une intgration plus
pousse avec les SDK et les API (mobiles, cloud, web, desktop, IoT,
les tests).
DevOps. Visual Studio est au cur du DevOps tel que propos par
Microsoft. Le but est damliorer et de rendre toujours plus fluides la
communication, les changes et le travail entre les dveloppeurs et
la production. Comment rendre plus souples les processus de
dveloppement, de builds, de dploiement et de production des
applications? Visual Studio2015, comme vous le verrez dans ce livre
blanc, sintgre plus profondment avec Visual Studio Online et tous
les services lis (Application Insights, build)
Mobilit. Plus que jamais, Visual Studio2015 est loutil pour
dvelopper des applications mobiles (smartphones, tablettes). Il
intgre Cordova, supporte parfaitement Xamarin. Et propose des
fonctions avances telles que le C++ pour mobile! Et demain, ce
sera la possibilit de migrer des projets Android et iOS pour les
compiler pour Windows Phone(*).

Multi-devices. Pour autant, Visual Studio2015 nen oublie pas ce


qui a fait sa force: le dveloppement Windows et .NET.
Lenvironnement est naturellement loutil idal pour crer des
applicationsWindows10, Windows10 Mobile. Et avec la notion de
plateforme Windows10 (allant de lIoT au Desktop) et des Universal
Apps, vous pouvez gnrer, avec un seul code, des apps
fonctionnant sur un smartphone, une tablette, un PC
Quattendez-vous pour tester Visual Studio ds aujourdhui?
Franois Tonic
diteur & rdacteur en chef de Programmez!

Sommaire

dito

Aperu de la
plateforme

Productivit avec
Visual Studio 2015

3
4

Visual Studio Code /


Visual Studio
Community
8

LALM dans les


nuages (TFS / VSO) 10
Installation &
migration

14

Dvelopper pour
Windows 10

21

Services Azure

Dev Mobile
Containers,
Docker
IoT

MSDN Platforms
Ressources

(*) Ces outils sont en pr-versions lheure o nous imprimons ce document.


Ralisation : Programmez ! le magazine du dveloppeur 7, av. Roger Chambonnet 91220 Brtigny sur Orge - Directeur de la publication : Franois Tonic
Coordination Microsoft : Galle Cottenceau, Sbastien Cantini - Maquette : Pierre Sandr - Imprim en France - Photos et illustrations tous droits rservs.

16

27

31

32

34
35

Aperu de la plateforme Visual Studio

Aperu

Visual Studio est devenu bien plus quune plateforme de dveloppement: IDE, ALM, tests, dploiement,
Cloud Computing, multiplateforme. A chaque dveloppeur son Visual Studio!

Jusqu la version 2015, Visual Studio se dclinait en plusieurs


ditions: Express, Ultimate, Premium, Professional et Test
Professional Chaque dition correspondait des usages et des
profils de dveloppeurs prcis et avec des niveaux de fonctionnalits
parfois trs diffrents. A cela se rajoutaient les ditions de
Team Foundation Server et de Visual Studio Online (VSO).

Les ditions de Visual Studio 2015


Visual Studio
Community

Fonctionnalits
IDE

Architecture
et modlisation
Outils de tests
Debug

Accs services
VSO

Team Foundation
Server
Outils de
collaboration

Souscription et
bnfices MSDN
Tarif

Visual Studio Visual Studio Visual Studio


Professional
Enterprise
Test
avec MSDN
avec MSDN Professional

QQ

QQQ

QQQQ

QQQQ

QQQQ

QQQ

QQQ

QQQQ

QQ

QQ

QQQQ

QQQ

QQQ

QQQQ

QQQQ

QQQQ

QQQQ

QQQ

QQQ

QQQQ

QQ / QQQ

1 199$ (2)

5 999$ (3)

QQQQ

gratuit (1)

QQ

Les ditions Premium et Ultimate ont fusionn en Enterprise.


Les tarifs indiqus sont ceux du MS Store pour 1 an.
(1) Visual Studio Community est gratuit pour les dveloppeurs
indpendants, les projets open source, la recherche universitaire,
les formations, lenseignement et les petites quipes
professionnelles. Pour plus dinformations
sur les critres dligibilit, consultez la
page produit Visual Studio Community.

(2) Tarification en ligne Microsoft Store: 1199$ (nouveau) et 799$


(renouvellement). Des remises supplmentaires pourront
galement tre obtenues auprs des revendeurs de licences en
volume Microsoft.
(3) Visual Studio Enterprise avec MSDN achet via Microsoft Store en
ligne cote 5999$ (nouveau) et 2569$ (renouvellement), par
rapport Visual Studio Ultimate avec MSDN, qui revenait
13299$ (nouveau) et 4249$ (renouvellement). Des remises
supplmentaires pourront galement tre obtenues auprs des
revendeurs de licences en volume Microsoft.

Les autres produits de la gamme

Visual Studio Code


Environnement de dveloppement gratuit et trs lger. Il supporte les
langages web les plus populaires. Disponible sur Linux, OS X et Windows.
Visual Studio Express 2015
ditions gratuites de Visual Studio. Elles se dclinent en Express pour
Desktop, Express pour Web, Express pour Windows, Team
Foundation Server 2015 Express. Chaque dition se limite un
domaine prcis de dveloppement.
MSDN Platforms
MSDNPlatforms permet au personnel informatique et aux
dveloppeursJava d'accder une large gamme de ressources qui
aident votre entreprise russir sans le cot supplmentaire de
VisualStudio. L'accs des logiciels passs, prsents et futurs
permet au personnel informatique de disposer de tout ce dont il a
besoin pour installer des environnements
de dveloppement/test et permet des
dveloppeurs htrognes de gnrer
des applications de qualit leve pour
le Web, le cloud et Windows. De plus, les
abonns peuvent se connecter,
collaborer et livrer temps avec
l'aide de la solutionALM de
Microsoft. p

Productivit

Productivit avec Visual Studio2015

Comme pour chaque version majeure de Visual Studio, Microsoft apporte son lot de nouvelles
fonctionnalits. Dautres, quant elles, deviennent plus matures et accessibles sur des versions moins
compltes. Tout cela permet damliorer grandement la productivit des dveloppeurs.
Pierre-Henri Gache,
Consultant Senior Cellenza

Michel
Perfetti
Consultant
Senior
Cellenza et
MVP VS ALM

Guillaume Rouchon
Consultant Senior
Cellenza
et MVP VS ALM

Avec la version2015 de Visual Studio,


Microsoft revoit les diffrentes distributions.
On retrouve maintenant les versions
Community, Express, Test Professionnel,
Professionnel et Entreprise. Lapport majeur
de productivit vient de la fusion des
anciennes versions Premium et Ultimate en
Entreprise. Les dveloppeurs vont donc
pouvoir profiter de lensemble des outils
prsents dans Ultimate. CodeLens est un bon
exemple et nous le verrons plus en dtail
dans la suite de cet article. Auparavant
uniquement disponible en version Ultimate,
peu de personnes pouvaient en disposer.
CodeLens devient donc plus accessible en
tant mme accessible ds la version
Professionnel. Tous les dveloppeurs qui
passent Visual Studio2015 auront donc
CodeLens sils travaillent sur TFS2013-2015,
Visual Studio Online ou un repository Git
local. Il y a bien dautres nouveauts que
nous vous proposons de dcouvrir au travers
de moments cls dans le dveloppement
(lcriture du code, puis le dbogage et
lanalyse de performance). Voyons en dtail
ce que nous propose cette version pour vous
aider amliorer votre flux de travail.

IDE

Setup

Le premier ajout important Visual Studio2015


se retrouve ds linstallation. En effet linstalleur
propose, en plus des composants classiques,
des outils tiers qui sintgrent directement
Visual Studio tel que:
u Apache Cordova et XamarinStarter
Edition;
u Le SDK Android et un mulateur;
u SQL Server Data Tools;
u Office Developer Tools;
u Applications Universelles Windows;

Fig.1

u Les outils de dveloppement pour


Windows8.1 et Windows Phone;
u Les outils de dveloppement pour Python
ou PowerShell;
u Les outils pour se connecter GitHub.
Ces composants, accessibles directement
dans linstalleur de Visual Studio, vont nous
viter de chercher droite et gauche ces
extensions et de les maintenir jour, tant
donn quils sintgrent aussi au systme de
notification interne pour les mises jour. Ce
nouveau systme de notification gre aussi
les packages de composants de Visual
Studio et est capable de mettre jour luimme certains packages.

Gestion des comptes

Dans la prcdente version, il tait possible


dassocier un seul compte Visual Studio qui
permettait de sauvegarder son paramtrage.
Par contre, ds que lon accdait Azure
avec plusieurs comptes, il fallait jongler entre
les diffrents identifiants de ces comptes.
Avec Visual Studio2015, afin de ne pas avoir
ressaisir perptuellement ses identifiants,
Microsoft a ajout un gestionnaire de
comptes (Fig.1).
Lorsque des identifiants sont ncessaires,
Visual Studio propose de les slectionner
dans une liste existante. Dans le cas de
compte dentreprise, il est aussi possible de
filtrer les lments qui seront affichs.

Gestion de laffichage

Les crans voluent et il nest plus rare de


trouver des dveloppeurs avec des crans
tactiles. Pour amliorer la productivit de ces
dveloppeurs, Visual Studio supporte
maintenant des gestes:
u Pinch pour zoomer ou dzoomer;
u Double tap pour slectionner un mot;

Fig.2

u Tap dans la marge pour slectionner une ligne;


u Appui long pour faire apparatre le menu
contextuel.
Dautre part, nous travaillons aussi de plus
en plus avec des ordinateurs portables,
parfois connects un cran secondaire. Or
ces diffrents crans nont gnralement pas
la mme rsolution et il fallait dans ce cas
rarranger les fentres dans Visual Studio
afin de sadapter la rsolution de lcran en
cours. Avec la version2015, il est possible de
sauvegarder lorganisation des fentres et de
rappeler une configuration pralablement
sauvegarde (Fig.2). En bonus, ces
sauvegardes font partie des informations
associes votre profil et seront donc
accessibles de nimporte quel ordinateur ds
que vous vous connectez Visual Studio
avec votre compte Microsoft.

diteur de code

Lditeur de code reoit lui aussi des


amliorations afin de permettre de gagner
du temps via laffichage dinformations et
davertissements en temps rel bnficiant
galement dune meilleure lisibilit.
Avec lintgration du compilateur Roslyn,
Visual Studio peut, en temps rel, analyser le
code saisi et ainsi afficher directement le
rsultat de ces analyses. On retrouvera par
exemple les rsultats des analyseurs de code
(anciennement FxCop et Code Analysis).
Code Analysis a dailleurs lui aussi t
repens afin de prendre en compte Roslyn.
Les rgles sont maintenant distribues sous
forme dassemblies ajouter dans ses
projets via des packages NuGet. Lanalyseur
pourra aussi proposer le code mettre en
place pour tre en adquation avec la rgle
(Fig.3). Le refactoring de code a lui aussi
volu. Lensemble des fonctionnalits

Productivit
prsentes en C# est maintenant disponible
en natif pour les langages C++ et VB.Net.
On retrouvera par exemple pour le C++ les
options suivantes:
u Renommer un lment (variable,
mthode, classe) ;
u Extraire une fonction dun code existant ;
u Implmenter toutes les mthodes
virtuelles ;
u Crer la dfinition dune fonction depuis
sa dclaration ou inversement ;
u Dplacer la dfinition dune fonction entre
le fichier den-tte et le fichier source ;
u Convertir une chane contenant des
caractres dchappement en chane
littrale (C++ 11).
Laccs au refactoring se fait via le nouveau
raccourci CTRL + <point> et la
fonctionnalit est extensible permettant la
communaut de proposer ses propres
fonctions.
Le renommage (lune des fonctionnalits les
plus utilises) a aussi reu une mise jour
spcifique. En slectionnant un lment et
en lanant le renommage, lensemble des
rfrences sont slectionnes et mises jour
en direct au fur et mesure de la frappe
(Fig.4).
La gestion des points darrt a t intgre
lIDE. Plus de fentre modale, mais la faon
des peek windows. Dans la mme ide, la
gestion des exceptions en Debug a t
amliore: plus besoin non plus douvrir une
fentre modale, cette fois-ci les exceptions
dmnagent dans une fentre. Le
changement de configuration naura jamais
t aussi facile.

XAML& Blend (MPE)

Le XAML est partout sur la plateforme


Microsoft, que ce soit dans les applications
type Desktop en WPF ou les diffrentes

dclinaisons de Windows Phone ou


Windows8 10. Dun simple diteur XML au
dpart, lditeur XAML intgre maintenant le
mme genre de fonctionnalits quun
diteur de code classique dans Visual Studio.
Ct dition, IntelliSense a t amlior:
plus de frustration quand rien napparat
alors que la donne attendue est basique.
Lintgration de Blend a t aussi renforce,
ainsi que la gestion des diffrentes
rsolutions, fonctionnalit critique lorsque
lon crit des applications mobiles.
Pour le Debug, deux fonctionnalits
elles seules valent le coup de passer Visual
Studio2015: le live visual tree et le live
property explorer. Pour rsumer
simplement: nous pouvons naviguer dans
larbre des composants et pour chaque
composant, nous avons dsormais la
possibilit den modifier les proprits.

Nuget3.0

Nouvelle interface

La premire chose que lon remarque de


suite est le changement total de linterface
graphique. Fini le pop-up qui souvrait dans
une fentre, le gestionnaire de package
prend dsormais place dans un onglet de
Visual Studio. Ainsi vous pouvez grer vos
packages tout en conservant la possibilit de
consulter les lments de votre projet. Les
diffrentes commandes ont t ragences,
mais on retrouve immdiatement ses petits :
un champ de recherche, une liste des
packages et le descriptif de chacun. Vous me
direz qu ce stade il ny a pas grand-chose
de nouveau, passons la suite pour vous
faire changer davis. (Fig.5)

Choix de la version & Mise jour

La premire nouveaut notable est la


possibilit de choisir la version du package

que lon souhaite installer. Vous avez donc le


choix dinstaller par dfaut la dernire
version ou bien une version antrieure
disponible dans la liste de slection.
Ensuite si vous souhaitez mettre jour vos
packages, vous pouvez au pralable
visualiser la liste des projets contenant le
package en question et quelle est la version
utilise. Vous avez alors le loisir de mettre
jour tout ou partie de vos packages. Mais la
fonctionnalit la plus intressante et qui
vous fera gagner le plus de temps est
laction Consolidate . En effet lorsque
vous slectionnez cette option, vous allez
uniformiser la version du package choisi.
Admettons que vous ayez les versions6.0.4
et 6.0.8 du package Newtonsoft.Json,
chose assez courante quand vous avez une
solution avec des projets web. En fonction
du choix effectu, seuls les packages
concerns seront mis jour avec une
monte ou une descente de version.

IntelliTest

Imaginons quil soit possible davoir un outil


capable de gnrer ses propres tests
unitaires, nous pourrions gagner beaucoup
de temps dans nos dveloppements. Bien
videmment, un tel outil nexiste pas et il
vous faudra toujours faire leffort de tester
votre code. Mais IntelliTest peut vous donner
un srieux coup de main et vous faire
gagner du temps dans cette tche.
Ceci notamment dans lcriture des tests des
cas limites, dautant plus que ce sont
toujours ces tests que lon nglige le plus.
Mais avant cela, regardons comment
fonctionne loutil. Bas sur Pex, votre
code va tre analys pour dterminer tous
les chemins dexcution possibles. Chaque
chemin donnera lieu au minimum un test
unitaire. Ensuite cette mme analyse
donnera lieu la gnration des paramtres
des mthodes utilises dans le test. Prenons
Fig.5

Fig.3

Fig.4

Productivit
comme exemple une mthode effectuant
une division, IntelliTest gnrera un appel
la mthode avec 0 comme paramtre
afin de tester si la division par zro est prise
en charge. De mme des valeurs maximum
et minimum pour les paramtres seront
utilises pour vrifier quil ny a aucun
dpassement de capacit dans le code.
Il est galement possible de donner des
instructions IntelliTest. Si une mthode
comprend un entier en paramtre dont la
valeur est borne, il est possible de
lindiquer. Les tests gnrs auront alors des
paramtres dont la valeur sera toujours
comprise entre les bornes indiques.
Pour conclure sur ce sujet, il faut prendre
IntelliTest pour ce quil est: une aide la
gnration des tests. Il ne pourra pas vous
remplacer dans cette tche, mais il devrait
vous permettre de vous concentrer sur
lessentiel: crire les tests valeur ajoute.

Git + GitHub

Arrive officiellement dans Visual


Studio2013, lintgration de Git pouvait tre
qualifie de lgre,car beaucoup trop de
manipulations basiques ncessitaient encore
la ligne de commande ou des outils
annexes comme SourceTree ou GitHub
for desktop.
Avec Visual Studio 2015, lintgration a t
beaucoup plus pousse:
u La fentre dhistorique rend compte des
branches et de leurs interactions;
u Les branches sont plus faciles grer via
un arbre dans le Team Explorer;
u Github est intgr via une extension qui
fournit une exprience similaire Visual
Studio Online ou Team Foundation
Server.

Diagrammes darchitecture &


Code Maps

Le menu Architecture a t de nouveau


revu pour tre encore plus simplifi et pour
produire des code maps encore plus
simples utiliser:
u Des codes couleurs permettent
didentifier les diffrents types de projets
(en particulier les tests);
u Les graphes complexes saffichent plus
vite, comme pour le rafrachissement (il
ny a plus de rebuild chaque
changement dans laffichage!);
u Ils sont disponibles pour C#, C++ et
VB.Net.
Les diagrammes de couche sont aussi
disponibles pour valider le dcouplage de
vos applications.
Trs peu de personnes auparavant
utilisaient ces fonctionnalits, car elles
taient limites la version Ultimate, vous

aurez donc loccasion de les mettre profit


lors de vos dveloppements.

CodeLens

CodeLens est beaucoup plus intgr


Visual Studio quavant. Si vous aviez dj
lhabitude de travailler avec, vous
remarquerez que la nouvelle gestion de
lhistorique affiche une timeline des
modifications, un peu comme le fait GitHub
sur ses repositories.
Dans Visual Studio2013, CodeLens ntait
disponible que pour C# ou Visual Basic.
Maintenant pour tous les autres fichiers les
informations gnriques sur lhistorique, les
auteurs, cest--dire tout ce qui nest pas
spcifique un langage saffichent en bas
du fichier.
Une remarque qui peut vous viter bien des
frustrations: il arrive que mme sur
TFS2013 ou TFS2015, CodeLens ne soit pas
compltement disponible. Cela vient du fait
que cette fonctionnalit est dsactivable
ct serveur.
Et gnralement, cestle cas pour viter
lusage de ressources inutiles ct serveur.
Dans ce cas, il faut demander votre
administrateur TFS de le ractiver sur vos
collections et dattendre lindexation de vos
codes sources.

Le dbogueur & Diagnostic


de performances

Depuis le dbut de Visual Studio, nous


avons la possibilit dutiliser des outils de
diagnostics. Les versions avanant, de
nouveaux outils sont apparus, spcifiques
des plateformes ou non, dautres se sont
perfectionns. Il ntait jamais vraiment
facile de savoir quel outil il fallait pour une
technologie donne ou mme si un outil
existait. Avec Visual Studio2015, tous les
outils de diagnostics sont ressembls dans
un Hub. Ce dernier est dynamique et
sadapte en fonction des applications que

vous voulez analyser: plus besoin daller sur


MSDN pour savoir quel outil fait quel
boulot! De plus, loptimisation des
performances est devenue un enjeu majeur
du dveloppement. Proposer aujourdhui
une application optimise qui consomme
peu de ressources, mais dont linterface nest
pas fluide, nest pas envisageable.
De mme si votre usage du rseau nest pas
parfait dans le cadre dapplications mobiles,
ayant souvent un dbit limit, lexprience
utilisateur ne sera pas son niveau optimum
et le seul feed-back que vous aurez de vos
utilisateurs sera une mauvaise note avec
comme commentaire a rame. Nous
allons voir le genre de scnarios pris en
compte dans Visual Studio 2015.

Analyse des performances

Gnralement lorsquun dveloppement


arrive terme, le besoin danalyser et
damliorer les performances se fait sentir. Il
existe plusieurs mthodes pour effectuer ces
oprations, comme par exemple poser des
sondes dans son code, juger au feeling la
ractivit de son travail ou encore utiliser un
profiler. Cest ce dernier type doutil qui
offrira bien videmment les meilleurs
rsultats: cest en quelque sorte une faon
fiable dajouter des sondes pour analyser
son application.
Cependant, avant larrive de Visual
Studio2015, il fallait recourir des outils
tiers pour disposer des meilleures solutions.
Mais les outils se sont grandement amliors
et il est dsormais possible davoir les
mmes bnfices que la concurrence et
mieux encore.
La premire chose savoir est que ces outils
sont accessibles depuis le menu Debug
sous la dnomination Diagnostics Tools
et sont de deux types. Le premier Show
Diagnostics Tools est un peu diffrent de
ce que vous auriez pu voir auparavant, car il
fournit des informations en live durant la

Fig.6

Productivit
session de dbogage. Le second est plus
classique, car il se rapproche dun profiler
standard avec une capacit danalyse plus
tendue. Voyons maintenant en dtail ces
deux outils.
Diagnostics en live
Ce nouvel cran sactive automatiquement
lorsque la session de dbogage est lance
et se dcompose en deux parties. La
premire comporte des graphiques avec les
diffrents vnements de lapplication, la
consommation processeur et loccupation
mmoire. La seconde partie de lcran
contient le dtail des vnements et permet
de prendre des instantans de la mmoire.
(Fig. 6)
La force de cet outil est de corrler tous ces
lments ensemble avec un affichage en
live. Imaginons que vous ayez un
algorithme dans votre code trs
consommateur en processeur ou en
mmoire, vous pouvez insrer dans votre
code un message (via le fameux
Debug.WriteLine par exemple) indiquant
les points cls de votre code. Ensuite ces
lments apparatront dans les vnements
et vous pourrez alors constater sil y a
surconsommation de ressources ce

moment prcis. Ensuite il est fort probable


que votre application ait gnr quelques
exceptions, surtout dans les phases
doptimisation, car lapplication nest pas
forcment finalise. Ces exceptions
apparatront sous forme de losanges rouges
sur le graphique et dans la liste des
vnements. Dans cette dernire, si vous
slectionnez une de vos exceptions, vous
pourrez accder lHistorical
debugging. Cette fonctionnalit permet
de diagnostiquer une exception comme si
vous tiez arrt dessus. Vous verrez le
code o elle sest produite ainsi que sa
description via la fentre Locals.
Dans la fentre Historical Stack Trace,
vous pourrez galement avoir accs la pile
dappels.
Le dernier point intressant est sa capacit
prendre des instantans de la mmoire.
En effet, bien que lon puisse surveiller son
volution, on a souvent besoin davoir un
tat des lieux prcis pour diagnostiquer un
problme. Le principe des instantans est
relativement simple: il sagit de prendre
plusieurs photos du nombre et de la taille
des instances dobjets puis de les comparer.
On peut ainsi en dduire quels sont
prcisment les types lorigine dune

surconsommation par exemple. Pour se


faire, rien de plus simple, un bouton Take
snapshot est disponible dans linterface.
En accumulant le nombre dinstantans,
vous aurez la possibilit de mesurer
lvolution de la mmoire par comparaison.
(Fig. 7)
Profiler
Le second outil, accessible sous la
dnomination Start Diagnostic Tools
Without Debugging requiert tout dabord
de compiler le projet en mode Release.
Ensuite avant de lancer lanalyse, il faut
choisir les mtriques que lon souhaite
obtenir. Voici une liste des principaux profils
en dehors des classiques processeur et
mmoire:
u Application Timeline: permet de mesurer
la ractivit de lapplication;
u Network: permet de monitorer
lensemble des appels rseaux;
u HTML UI Responsiveness: similaire au
premier point pour une application web.
(Fig.8)
Le premier point positif de cet outil, que
lon peut remarquer ds le dbut de la
session, est que les performances de
lapplication mesure ne sont pas impactes
par lanalyse. Ce nest pas anecdotique, car
les profilers ont trop souvent lhabitude
dallonger les temps dexcutions et donc
de rendre pnible lanalyse des
performances. Ensuite le fait de proposer
des outils danalyse de la ractivit de
lapplication est un vrai point positif, car les
dveloppements actuels sont massivement
multithreads, il nest donc pas rare de
bloquer le thread dinterface. Enfin, la
possibilit de gnrer des rapports trs
complets devrait finir de vous convaincre
dutiliser toutes ces possibilits.

Conclusion
Fig.7

Fig.8

Comme chaque version de Visual Studio,


nous nous posons tous la mme question:
est-ce que je peux migrer sans risque?
Depuis Visual Studio2012, Microsoft a
travaill normment pour la compatibilit
ascendante des projets. Les projets web
sont plus lis une version de .NET qu
une version de Visual Studio, de mme que
dautres composants externes comme la
partie BI ou OLTP avec SQL Server Data
Tools ou Typescript qui sont communs
toutes les versions. Visual Studio2015
comme son prdcesseur sait cibler les
versions infrieures du framework .NET
donc pas besoin de passer 4.6. Si vous
faites du web ou client lourd
(WPF/Winforms) ou C++, allez-y.
p

IDE

Visual Studio Code/Community

Parmi les solutions gratuites proposes par Microsoft, on retrouve 2 diteurs de code offrant des
fonctionnalits intressantes et diffrentes: Visual Studio Code et Visual Studio Community.
Georges DAMIEN
Consultant .NET chez Cellenza
Blog: http://georgesdamien.com

Visual Studio Code est un diteur de code


allg limage de Sublime Text qui est
plutt orient Web et prsente lavantage
dtre disponible sur Windows, OS X et Linux.
Visual Studio Community est une version plus
complte qui permet le dveloppement
dapplications tout comme sur les versions
payantes de Visual Studio (Professionnel/
Entreprise) avec comme avantage une
utilisation commerciale notamment pour les
dveloppeurs indpendants. Cette version
prsente moins de fonctionnalits que les
versions payantes, mais propose tout de mme
la majorit des fonctions intressantes de lIDE
telles que le debugging, le testing, etc.

VISUAL STUDIO CODE

Visual Studio Code (VS Code),


une version light et gratuite de
Visual Studio oriente Web.

VS Code: Prise en charge des dossiers

Cest quoi?

Visual Studio Code est tout comme les


autres versions de VS un diteur de code.
Cette nouvelle monture est trs lgre et
sinstalle assez rapidement (contrairement
aux versions payantes qui sont galement
plus exigeantes en ressources et occupent
plusieurs Gigaoctets sur votre disque).
a se passe ici: https://code.visualstudio.com/

Partout et pour tous

Visual Studio Code estcross-plateformes:


vous pouvez linstaller sur votre Mac, ou sur
Linux et, bien sr, Windows. Visual Studio
Code estgratuit.

Un IDE riche pour le Web

Visual Studio Codepropose une coloration


syntaxique par dfaut pour la majorit des
langages orients Web, mais pas seulement.
Les langages dj pris en charge sont: C++,
jade, PHP, Python, XML, Batch, F#, DockerFile,
Coffee Script, Java, HandleBars, R, Objective-C,
PowerShell, Luna, Visual Basic,Markdown.
LintelliSense est disponible pour les langages
suivants: JavaScript,JSON,HTML,CSS,LESS,SASS.

Fig.1

Quelques fonctionnalits
intressantes
Chargement des fichiers,
projets et dossiers

Avec VS Code, on peut charger des projets


Visual Studio standards, ouvrir directement
des fichiers, mais charger galement un
dossier. Par exemple, si vous avez un petit
site Web contenant quelques pages HTML,
PHP, css... vous pourrez ouvrir directement
larborescence du dossier contenant votre
site. (Fig. 1 et 2).
Japprcie personnellement cette
fonctionnalit, car elle permet davoir accs
toute larborescence de notre site sans pour
autant avoir la notion de projet ou solution
Visual Studio qui nest pas forcment
ncessaire pour un petit site Web.

Ldition Side by Side

Une autre fonctionnalit intressante est la


possibilit douvrir cte cte plusieurs
pages: on pourrait imaginer, par exemple,
ouvrir une page HTML, la page CSS ainsi que
la page JS associe directement: (Fig. 3).
Le plus de cette fonctionnalit rside dans

VS Code: Aperu de larborescence dun dossier + coloration syntaxique

Fig.2

Fig.3
VS Code : Side by Side Editing

IDE
lergonomie de son utilisation: un simple
drag and drop affiche les fichiers voulus
cte cte dans la limite de 3 fichiers.

La documentation

Vous trouverez sur le


lienhttps://code.visualstudio.com/Docs une
documentation assez complte de loutil
prsentant notamment lensemble des
fonctionnalits de faon concise vous
permettant une prise en main plus aise.

User Voice

Toujours pas convaincu(e)? Vous ntes pas


satisfait(e) des fonctionnalits proposes?
a tombe bien, Microsoft a pens vous:
Vous avez des suggestions pour amliorer
ou rajouter des fonctionnalits?
Microsoft offre la possibilit tout le monde
viaUser Voicede proposer et de voter
pour des fonctionnalits souhaites qui
manqueraient ses produits afin de les
amliorer.
Lien daccs: https://visualstudio.uservoice.com/
forums/121579-visual-studio

Conclusion

Visual Studio Code est simple, rapide et


pourraitremplacer dignement un
Notepad++ voire mme un
WebStorm. Aprs une premire
utilisation, la chose qui me vient lesprit est
le fait de lutiliser comme diteur de texte
par dfaut (surtout si vous tes habitu
travailler avec Visual Studio au quotidien).
De nombreuses volutions sont venir.
Parmi les fonctionnalits non cites, on
retrouve le contrle de version (Git) intgr,
la prise en charge dASP.NET5, de Node.JS,
le debugging (pour certains langages), la
gestion de Tasks (pour faire du

Make,Ant,Gulp,Jake,RakeorMSBuild),etc.
En bref, loutil semble tre
suffisammentcomplet et la fois lger pour
faire du Web dans la partie FRONT END.
Un de ses points forts est le ct
multiplateformes, et les dveloppeurs .NET
ne seront pas dpayss en voyant lIDE.
Reste voir les limites de loutil si on
souhaite aller plus loin, mais ce nest
probablement pas lobjectif de cet IDE: cest
justement l o Visual Studio Community
vient combler les manques de cet IDE quon
pourrait plutt qualifier de simple diteur de
code.

VISUAL STUDIO
COMMUNITy

Visual Studio Community est une version


gratuite de Visual Studio. Cest un vritable
IDE avec un grand nombre de
fonctionnalits limage des versions
payantes de Visual Studio.
Cette nouvelle mouture est installable
uniquement sur Windows contrairement
Visual Studio Code.

Un IDE riche et gratuit

Visual Studio Community est gratuit et vise


essentiellement les petites structures (moins
de 250 PC ou avec un chiffre daffaires
relativement faible) ainsi que les
organisations non commerciales ou les
indpendants par exemple.
La dernire version est tlchargeable depuis
le lien suivant:
https://www.visualstudio.com/fr-fr/downloads/
download-visual-studio-vs.aspx

Q: Qui peut utiliser Visual Studio


Community?
A: Pour les dveloppeurs individuels:
nimporte quel dveloppeur individuel
peut utiliser Visual Studio Community
pour crer ses propres applications
gratuites ou payantes. Pour les
organisations:
u Dans un environnement
dapprentissage en classe, pour la
recherche universitaire ou pour la
contribution des projets open source,
un nombre illimit dutilisateurs au sein
dune organisation peut utiliser Visual
Studio Community
u Dans les entreprises de moins de 250
PC ou qui gnrent moins de 1 million
de dollars en recettes annuelles,
jusqu 5 utilisateurs peuvent utiliser
Visual Studio Community.
u Dans les entreprises de plus de 250 PC
ou qui gnrent plus de 1 million de
dollars en recettes annuelles, aucune
utilisation nest autorise au-del de
lopen source, la recherche
universitaire, et les scnarios
dapprentissage en classe dcrits
ci-dessus.

Les fonctionnalits

Visual Studio Community est un vritable


IDE. Vous pouvez dvelopper des projets
denvergure lidentique des versions
payantes: vous pourrez profiter des
fonctionnalits de debugging et diagnostics,
doutils de tests, dintgration, doutils
Fig.5

Fig.4

Extrait du comparatif des diffrentes versions de Visual Studio

Aperu de linterface de tlchargement dextensions

IDE
collaboratifs, etc. Un comparatif plus
dtaill se trouve ladresse suivante:
https://www.visualstudio.com/enus/products/compare -visual-studio-2015products-vs.aspx (Fig. 4)

Possibilit dextension

Visual Studio Community donne la


possibilit dinstaller une multitude
dextensions (plus de 2000) telles que:
Web Essential, Xamarin (pour le
dveloppement multiplateforme). Vous y
accdez depuis longlet
outils,extensions et mise jour
de lIDE. (Fig. 5).

Vous pouvez galement dvelopper et


intgrer vos propres extensions
notamment grce au SDK Visual Studio.
Pour en savoir plus:
https://msdn.microsoft.com/enus/library/bb166441.aspx
Vous pouvez galement utiliser le
compilateur Roslyn pour crer votre
propre analyseur et gnrateur de code.

Dveloppement multiplateforme
Grce un ensemble dextensions telles
que Xamarin for Visual Studio,
Apache Cordova, VS Tools for Unity
2D-3D C++ for cross-platform, vous
pourrez dvelopper des applications pour
Android, iOS et Windows.

Fonctionnalits manquantes

Parmi les fonctionnalits manquantes on


peut citer:
u outils de testing: absence du code
coverage, du code UI Testing,
lIntelliTest, ( noter que ces
fonctionnalits sont galement absentes
de la version Professionnel).
u environnement de dveloppement
intgr: absence de CodeLens et de
Code Clone.
u architecture-modlisation: absence des
diagrammes de couches darchitecture
& CodeMap.
A noter galement labsence de la prise en
charge de Team Foundation Server. Et bien
sr pas dabonnement MSDN attach

Conclusion

Visual Studio Community, grce sa


gratuit, donne la possibilit daccder
un IDE riche et relativement complet pour
envisager des projets consquents de
dveloppement. Les extensions sont
multiples et donnent accs un large
panel de fonctionnalits pour envisager
par exemple le dveloppement
dapplications multiplateformes.
p

10

LALM dans les nuages

Que ce soit dans le Cloud ou dans sa version On Premise, la nouvelle


version de Team Foundation Server recle de trs nombreuses
nouveauts, et jamais aucun diteur ntait all aussi loin dans
lintgration des diffrents services ncessaires au dveloppement, au
dploiement, et lexploitation des applications.
Fig.1

Les services offerts


par TFS ou Visual
Studio Online

Sylvain Gross
MVP sur Visual Studio ALM,
Sylvain est ALM /EPM Practice
Manager au sein de Neos-SDI.
Il anime de nombreuses
confrences sur lALM. Neos-SDI
est Centre de Comptences Gold
sur le domaine ALM, dans le
partenariat Microsoft Partner
Network.

Ces applications sont multi-plateformes,


multi-devices, hberges dans le Cloud ou
en interne, mettant la dmarche ALM et
DevOps la porte de toutes les
entreprises: startups, PME, grands comptes
ou institutions. Ce chapitre sera consacr aux
services dALM (Application Lifecycle
Management) offerts par Visual Studio
Online, en fournissant une vue densemble
des outils la disposition des services
informatiques pour accomplir leurs
diffrentes missions lies la gestion des
applications.

Team Foundation Server,


la solution ALM de Microsoft
Team Foundation Server est la solution
propose par Microsoft pour supporter les
processus de lALM. Il sagit principalement
degrer:
u Les exigences de lapplication, en
permettant leur hirarchisation sur
plusieurs niveaux (fonctionnalits, user
story), et en fournissant des mcanismes
de priorisation,
u Les tches des membres de lquipe, en
tenant compte de leur capacit de travail, et
de leffort ncessaire pour raliser ces tches,
u Les codes sources de lapplication, en
intgrant les mcanismes de gestion des
branches, de manire centralise (avec
TFVC) ou distribue (avec GIT)

u Les builds de lapplication, pour intgrer


les sources dune version spcifique, et
leur faire suivre un processus de gestion
(qualit, disponibilit pour le test),
u Les diffrents types de tests tant
techniques (unitaires, performance) que
fonctionnels (tests manuels ou
automatiques),
u Les dploiements des diffrents
composants de lapplication sur les
serveurs de chaque environnement,
u La collecte dinformations de surveillance
des applications en cours dexcution.
Ces diffrents services sont disponibles la
fois sous forme de logiciels serveurs
installer sur linfrastructure de lentreprise
(On Premise), et sous la forme de services
hbergs dans le Cloud. (Fig. 1).

De lALM
dans le Cloud?

Visual Studio Online est le nom du service


Cloud offert par Microsoft, pour supporter
les processus ALM. Dsormais, tous les
services proposs par TFS sont galement
disponibles dans le Cloud via VSO. Bien
entendu, ces services peuvent tre
disponibles sous une forme diffrente. Il est
intressant de noter que, trs souvent, les
fonctionnalits sont plus avances sur Visual
Studio Online que sur la version On Premise.
Larchitecture Cloud permet en effet
Microsoft de diffuser ses mises jour plus
rapidement dans le Cloud, que dans les
versions On Premise.
Le choix de chaque entreprise entre la
version Cloud ou On Premise se fera en
fonction de critres stratgiques ou
oprationnels. Un guide de choix est
disponible sur le site de Visual Studio (1).

VISUAL STUDIO ONLINE,


VOTrE SOLUTION ALM

Un portail pour votre projet


dquipe

Visual Studio Online permet de travailler sur


des Projets dEquipe. Ce sont des espaces qui
contiennent les lments ncessaires pour
travailler sur un projet. Les projets dquipe
sont crs selon diffrents modles,
dpendant de la mthodologie utilise:
Scrum, Agile, CMMi, etc.
Le projet doit tre dcoup en itrations, afin
de grer la planification des livraisons des
versions de projets, et en zones, permettant
un dcoupage fonctionnel du projet. Les
membres de lquipe sont dclars sur le
portail Web ddi au projet, et les droits
daccs sont automatiquement attribus. La
capacit de lquipe est calcule en fonction
de la dure de litration et du temps
disponible pour chaque membre dquipe sur
ce projet. Le portail est configur de manire
donner facilement accs aux lments
intressants du projet: les tches, les bugs,
les builds, les releases, ainsi qu tous les
artefacts du projet. (Fig. 2)

TFS / VSO
regroupes par personne, ou par rcit
utilisateur. De nombreuses possibilits de
personnalisation permettent dadapter le
contenu, tant sur la forme (mise en forme
conditionnelle, colonnes supplmentaires),
que sur le fond (nouveaux champs).

Les builds

La gestion de build est lune des activits


fondamentales de lALM. Cette build permet
dassembler tout le code source dun projet,
pour en faire un package complet. Cette
compilation est ralise sur un serveur, et
non sur un poste de dveloppement, cest
pourquoi seule la build permet de garantir la
matrise du code complet de lapplication,
tant au niveau du code source que des
assemblies rfrences. Dsormais, un
nouveau type de build est disponible dans
Team Foundation Server 2015 et Visual
Studio Online : Team Foundation Build 2015
(2). Ce nouveau systme de build permet de
crer des dfinitions de build pour Windows,
iOS, Android, Java. Son utilisation est
beaucoup plus simpleque le systme
prcdent bas sur XAML: une interface

Web permet de crer une nouvelle dfinition


de build, intgrant:
u Des tapes personnalises,
u Des tests,
u Des tapes de packaging,
u Des tapes de dploiement.
Aucune connaissance en programmation nest
ncessaire: il sagit simplement de configurer
les diffrentes tapes, en fournissant les
lments chaque composant. Lexcution de
la build est dclenche par linterface Web, et
le cours de son excution est affich sur une
console en temps rel. Le dclenchement
dune build peut tre automatis sur certains
vnements:
u chaque archivage, pour mettre en place
une intgration continue,
u Chaque nuit, pour disposer quotidiennement
de la dernire version de lapplication
u La build peut galement conditionner
lacceptation dun archivage: larchivage
contrl est un excellent moyen de
sassurer que le code archiv est correct,
car en cas derreur de build, ou de test en
chec, larchivage est rejet, permettant de
ne pas pnaliser toute lquipe. (Fig. 4)

Les exigences et le travail

Dans Visual Studio Online, llment de base


est le work item, ou lment de travail. Le
nom des lments de travail varie dune
mthodologie lautre. Tous les lments de
travail sont affects une personne, et ont
un statut (ouvert, en cours, ferm) qui peut
voluer au fil du temps, selon un workflow
dfini dans la mthodologie. Les principaux
types dlments de travail sont:
u Les exigences, qui vont dsigner des
besoins, fonctionnels ou techniques. On y
trouvera par exemple les Rcits
Utilisateurs. Ces exigences pourront tre
rattaches aux fonctionnalits, qui sont
des exigences plus globales,
u Les tches, qui dsigneront les actions
raliser. Ces tches sont rattaches une
exigence, pour indiquer pourquoi cette
tche doit tre ralise,
u Les cas de test, qui dcrivent la manire
dont une exigence doit tre teste: les
tapes de test, les valeurs attendues.
Les tches et les exigences peuvent tre
cres et dites depuis le portail Web, soit
laide de listes, soit laide de tableaux
Kanban. Ce Kanban est dune efficacit
remarquable pour diter rapidement les
tches, changer les affectations, dfinir le
reste faire. Sa simplicit dutilisation permet
aux quipes de mettre jour le statut des
tches directement dans le portail, lors de la
mle (Scrum) quotidienne. (Fig. 3)
Ce Kanban peut montrer les tches

Fig.2

Le Kanban des tches

Fig.3

11

TFS / VSO
Les tests

Au-del des tests permis par Visual Studio, la


plateforme ALM de Microsoft permet la mise
en uvre de tests:
u Fonctionnels: des cas de tests sont dfinis
et paramtrs, puis excuts depuis le
portail Web,
u Techniques: des tests de charges sont
dfinis dans Visual Studio, puis excuts
depuis le portail Web.
Les tests fonctionnels
Les tests fonctionnels permettent de
sassurer que lapplication rpond aux
exigences fonctionnelles. Des cas de tests
dcrivent les diffrentes tapes dun test, et
prcisent le rsultat attendu chaque tape.
Des paramtres peuvent tre fournis au cas
de test, afin dappliquer un jeu de donnes
reprsentatif lapplication, en entre, ou en
sortie. Les tests peuvent tre manuels ou
automatiques. Les tests manuels peuvent
tre conus et excuts depuis le portail
Web, dans le Hub Test. Les tests permettent
de dtecter des anomalies, qui peuvent tre
matrialises sous forme de Bugs
directement depuis loutil. Le contexte de
cette anomalie est automatiquement fourni,
facilitant ainsi la reproduction du bug par les
quipes de dveloppement: la rsolution
sera facilite. Les tests fonctionnels peuvent
tre automatiss: Visual Studio intgre des
outils permettant denregistrer une squence
dutilisation (tests unitaires, tests cods
dinterface utilisateur), et de lier ce code de
test des cas de tests. De cette faon, les
quipes QA peuvent excuter les tests
depuis leur outil Test Manager de manire
automatique.
Les tests de charge
Les tests de charge permettent de garantir
quune application continuera fonctionner
lorsquun nombre important dutilisateurs est
connect. Pour mettre en uvre ce type de
test, il sagit de dfinir des scnarios

dutilisation sous forme de tests de


performance Web, ou de tests unitaires, puis
de programmer leur paralllisation. La
monte en charge peut tre progressive ou
par palier, en intgrant des temps de
chauffe. Les diffrents scnarios vont tre
excuts successivement par chacun des
utilisateurs virtuels, dans un ordre
paramtrable, de faon se rapprocher le
plus possible de la ralit. Des indicateurs de
performance sont positionns, de manire
dterminer la consommation de chaque
composant au niveau mmoire, processeur,
espace disque, sur chacune des machines.
Ce qui rend traditionnellement les tests de
charge difficiles mener, ce sont les
ressources systme quil faut monopoliser
pendant les campagnes de tests. Ces tests
requirent une quantit importante de
ressources, et sont trs impactant au niveau
de linfrastructure en place. Le Cloud permet
de soulager linfrastructure, en mettant
disposition des quipes un environnement
toujours disponible, aux capacits machines
quasiment illimites. Lexcution de
campagne de tests sur lenvironnement
Visual Studio Online devient par consquent
trs accessible. De plus, un mode simplifi
permet de raliser des tests de charge
basiques, sans prciser de scnario.

release Management as
a Service

Le dploiement des applications sur les


environnements de production est la
dernire tape du processus de
dveloppement. Un package est gnr par
la Build: il sagit de copier ces packages sur
les serveurs cibles.
Release Management pour Visual Studio(3)
est le composant de la suite Visual Studio
ALM qui permet de rpondre cette
problmatique. Release Management
permet:
u De modliser les diffrents
environnements, en y incluant les serveurs,

u De dfinir pour chacun de ces


environnements les actions raliser pour
dployer les composants de chaque
machine de lenvironnement (package IIS,
script SQL)
u De dfinir des processus de retour arrire
en cas derreur: en cas dchec des scripts
de mise jour de la base SQL, la base de
donnes est restaure dans son tat
prcdent, puis lapplication dorigine est
remise en place,
u De dfinir un chemin permettant de
passer denvironnement en
environnement: de dveloppement vers
intgration, dintgration production par
exemple avec possibilit d'ajouter des
approbations.
Release Management pour Visual Studio
permet par consquent dautomatiser le
dploiement des mises jour de manire
scurise, mme dans des environnements
complexes: plusieurs serveurs Web, des
serveurs WCF, des serveurs SQL.
Actuellement, Release Management se
prsente sous la forme dune application
WPF, lie au projet dquipe laide dun
serveur de release. Cette application permet
de dfinir et dexcuter le dploiement des
applications. Une nouvelle version de
Release Management est actuellement en
phase de Preview: Release Management as
a Service. Comme son nom lindique, il sagit
doffrir les mmes services, mais laide du
portail projet de Visual Studio Online.
Un nouveau Hub est disponible: Release.
linstar de Build, il permet de dfinir une
nouvelle squence de dploiement, laide
de blocs disponibles depuis le Designer
Web. (Fig. 5). Le dclencheur dune
squence de dploiement est une Build. Une
liste de tches est disponible pour permettre
de dployer les artefacts de la build vers les
serveurs de destination. De nombreux
composants sont disponibles, permettant
dexcuter des actions en parallle, ou
dexcuter des scripts SQL ou Power Shell,
de lancer des packages MSI, ou de lancer un
test automatique de validation du
dploiement.

Surveiller les applications


avec Application Insights

Fig.4

Excution dune build

12

Lorsque lapplication est dploye, la


responsabilit est transfre aux quipes
dexploitation, charges de garantir le niveau
de service requis: temps de rponse,
absence derreurs Pour faciliter ce travail
de surveillance, et travailler de manire
collaborative entre les quipes de
dveloppement et les quipes dexploitation,
Application Insights(4) propose un service
de surveillance des applications:

TFS / VSO
u Dtection de problmes de performance,
u Dtection derreurs et dexceptions,
u Rapport dexcution pour connatre les
fonctions rellement utilises.
La mise en uvre dApplication Insights est
trs simple. Il suffit de crer une instance
dApplication Insights dans Azure, et
dintgrer le package Application Insights
dans le projet. Lexcution de lapplication
enverra automatiquement des donnes
dutilisation sur linstance dApplication
Insights. Ces donnes seront prsentes sous
forme de tableau de bord dans Azure, vous
fournissant ainsi une donne dutilisation
trs prcieuse. (Fig. 6)

Power BI

TFS fournit un grand nombre de donnes sur


les diffrents projets en cours:

u Le nombre de bugs, de tches, dexigences,


u Le nombre de build, de tests, de
dploiement,
u Le nombre darchivages, etc
Lexploitation de ces donnes permet au
management didentifier des pistes
damlioration de la performance des
quipes, aussi bien sur la qualit que sur la
productivit. Cest un moyen assez facile de
mettre en uvre une dmarche
damlioration continue. Loutil privilgi
pour raliser des rapports dans le Cloud est
Power BI. Cet outil permet dintgrer de
nombreuses sources de donnes du Cloud,
ou de linfrastructure On Premise en utilisant
des passerelles. Un connecteur Power BI
pour Visual Studio Online est disponible, et
permet de mettre disposition des
concepteurs de rapports un modle de

(1) https://msdn.microsoft.com/en-us/library/fda2bad5(v=vs.140).aspx
(2) https://msdn.microsoft.com/Library/vs/alm/Build/feature-overview
(3) https://msdn.microsoft.com/en-us/Library/vs/alm/Release/overview
(4) https://azure.microsoft.com/fr-fr/documentation/articles/app-insights-start-monitoring-app-health-usage/

Fig.5

Le Hub Release Manager

Exemple de rapport Power BI pour Visual Studio Online

donnes trs riche, mis jour en quasitemps rel. Des tableaux de bord peuvent
tre raliss, et mis disposition du
management, ou des quipes. Les outils de
diffusion des rapports Power BI sont des
applications Windows, des applications
mobiles (iOS, Android, Windows Phone) ou
le portail Office365. (Fig. 7).

VISUAL STUDIO
ONLINE, VOTrE ALM
DS AUjOUrDHUI

Ce survol des diffrents modules de Visual


Studio Online a montr sa capacit couvrir
tous les besoins ALM pour les applications
daujourdhui, et de demain.
Avec cette version, cest un nouveau palier
qui a t franchi, ouvrant des perspectives
enthousiasmantes: des applications multidevices, connectes au Cloud, pour fournir
rapidement des services innovants aux
utilisateurs, avec un niveau de qualit
irrprochable. Ladoption dune dmarche
ALM est dsormais accessible toutes les
formes de structures, et peut se faire de
manire progressive, en activant les
fonctionnalits au fur et mesure, en
fonction des priorits de chaque entreprise.
p
Fig.6

Surveillance de lapplication avec Application Insights

Fig.7

13

Installation / migration

Installation et migration

La sortie de Visual Studio2015 a t un vnement majeur de la communaut des dveloppeurs .NET.


Annonce avec beaucoup de nouvelles fonctionnalits, je pense que cette nouvelle version tait trs
attendue par nombre dentre nous.
Gal Dupire
Consultant Expert Technique
MERITIS

Avant de pouvoir tester ces nouveauts, la


premire tape est la russite de linstallation
du nouvel opus. Nous allons voir ensemble
comment se passe cette procdure. Cela nous
permettra aussi de parcourir quelques-unes
de ses nouvelles fonctionnalits et dvoquer
les volutions depuis les prcdentes
versions. Jai choisi pour ma part dinstaller la
version Entreprise. On trouve une version
dessai pour 3 mois sur le site de Microsoft. Il
est possible dessayer dautres versions ou
encore de tlcharger la version Community,
qui est gratuite. Jai galement install cette
dernire version. La procdure est la mme,
seul le contenu change. Linstallation de la
version Entreprise ncessite:
u un processeur de 1.6GHz (au minimum),
u 1Gb de RAM (au minimum),
u 10Gb despace disque (au minimum),
u une carte vido capable dutiliser Direct-X9
(au minimum),
u Windows8.1 ou Windows Server2012. (Fig. 1)
Linstallation se fait en ligne. On dispose
galement dune option pour tlcharger un
iso. Au dmarrage du processus, on arrive
sur un premier choix permettant de
dterminer le type dinstallation souhaite.
Linstallation standard dispose des packages
ncessaires pour dmarrer et ncessite
958Mo. Les packages non installs pourront
tre tlchargs par la suite si on souhaite
les utiliser. Linstallation avance permettra,
quant elle, de slectionner les parties
installer. Cela permettra soit de gagner de la
place sur linstallation, soit de sassurer de
dmarrer avec les bons outils. Microsoft
essaie de nous donner, dans ce nouvel opus
de Visual Studio, un maximum de
polyvalence. Il sagit donc de cibler au mieux
lenvironnement sans alourdir le logiciel. Si,

Fig.2

14

terme, des packages venaient manquer, il


suffirait de les installer au moment voulu.
Si vous avez install une version bta du SDK
Windows10, linstallateur vous demandera
automatiquement de le supprimer. Il sagit
dun prrequis. Parmi les packages proposs,
on retrouvera les outils habituels, ainsi quun
certain nombre de nouveauts
embarquables nativement dans lEDI. On
trouvera notamment: (Fig. 2)
u des outils Python,
u les outils de dveloppement pour
application universelle Windows,
u le SDK pour Windows10,
u des outils de dveloppement crossplateformes (Xamarin, dveloppement
pour Androd et iOS),
u Apache Cordova,
u Node.js,
u GIT.
Linstallation de lensemble des packages
requiert jusqu 26Go. Jai personnellement
lanc tous les packages, mais certains nont
pu tre installs. En fin de processus, un
bilan nous liste clairement les problmes
survenus afin de pouvoir les corriger.
Fig.1

Parmi les outils installs, on trouvera


notamment la nouvelle version de Blend. Il
sagit de loutil de cration dinterfaces
graphiques XAML / WPF. (Fig. 3)
Une fois linstallation termine, il y a deux
principaux rglages effectuer. Le premier
est classique puisquil sagit de paramtrer
son environnement Visual Studio (thme et
langage de dmarrage). Concernant le
thme, de nombreux autres rglages sont
disponibles (menu Tools puis Options). On
pourra notamment modifier le thme choisi
au dmarrage si ce dernier ne nous
convenait plus. Le second paramtrage est,
quant lui, plus novateur. Il sagit de
senregistrer avec un compte Microsoft. Il
permet plusieurs fonctionnalits. Lorsque
nous dmarrons Visual Studio pour la
premire fois, on remarque que la licence est
accorde pour 1 mois (contre 3 mois
annoncs sur le site de Microsoft). Pour
dbloquer les 3 mois dessai, il faut se
connecter un compte Microsoft dans
Visual Studio. (Fig. 4 et 5).
(Fig. 6) Lun des intrts est aussi de
partager les paramtrages entre les
diffrents outils Visual Studio (vers Blend par
exemple) et travers les diffrents PC
utiliss. Cet enregistrement lie le compte
utilis un compte Visual Studio. Cela nous
Fig.3

Fig.4

Installation / migration
permet daccder ce compte via Team
Explorer. De la mme faon, les ressources
Azure et sites Web Azure seront visibles
dans lexplorateur de serveur. Par ailleurs, il
est possible denregistrer plusieurs comptes
afin de grer les diffrents aspects de nos
projets. On pourra bien entendu ajouter de
nouveaux comptes aprs linstallation. Le
changement de compte est possible
nimporte quel moment souhait. La liste des
comptes associs un utilisateur fait partie
de litinrance des paramtres. (Fig. 7).
Une fois le profil paramtr et slectionn,
on voit apparatre dans le coin en haut
droite de lEDI un badge avec nos initiales, et
ct, nos nom et prnom. Juste au-dessus,
un petit smiley jaune nous permet de
communiquer avec les quipes de Microsoft
et de leur faire des retours sur les diffrents
outils. (Fig. 8). En cliquant sur cette icne
puis en choisissant Settings, on pourra
senregistrer pour le programme
damlioration du produit. Avec More
Options ou Help, on ouvrira une page
Internet dans Visual Studio qui nous redirige
vers une autre page permettant de faire des
Fig.5

Fig.6

feed-back ou dobtenir des informations sur


comment faire ces feed-back.
Concernant la compatibilit, mon ordinateur
accueille Visual Studio 2010, 2012, 2015
Community et 2015 Entreprise. Javais un
certain nombre de projets en cours ou
termins correspondant chacune de ces
versions. Sans aucun effort particulier, jai pu
ouvrir diffrents projets de bibliothque en
C#, C++ et F# ayant t crs sous Visual
Studio2010 (C# et C++) et 2012 (C#, C++ et
F#). Nous verrons le dtail de ces portages
par la suite. Concernant les projets de
bibliothque C# et F#, louverture, la
compilation et lexcution se sont droules
sans aucun problme et sans adaptation.

La migration

Pour tester le portage de projets de


dveloppement ciblant Windows8.1, jai utilis
deux projets disponibles en tlchargement
sur MSDN. Le premier projet est la
dmonstration des capacits dauthentification
Web: Web authentification broker sample
disponible sur MSDN. Ce projet est
particulirement intressant, car il contient des
objets graphiques (XAML) du code C# et C++.
Le second projet est une dmonstration
dutilisation de la bibliothque Prism, il sagit
de Developing a Windows store business
app using C# and Prism with MVVM. Ce
projet est galement trs intressant, car il
utilise NuGet. Le choix dutiliser des projets
dont la source est MSDN vient du fait que les
projets ciblant Windows8.1 ne sont ni crables
ni ouvrables avec une version infrieure
Visual Studio2013. Mes projets issus de cette
plateforme tant sur une machine virtuelle, jai
opt pour cette solution. Cette dernire est
bien adapte des projets de dmonstration
particulirement complets. (Fig. 9 et 10).

Jai commenc par le projet de Web


authentification: louverture sest bien
passe, mais on ma demand dactiver le
mode dveloppeur disponible dans
Windows10 la compilation (il sagit de la
version de Windows que jutilise pour ces
tests). Cette requte est faite via une petite
fentre qui nous demande de modifier les
paramtres. Un lien nous permet deffectuer
la modification demande. Concrtement, ce
lien ouvre les paramtres de Windows10, il
ne nous reste donc qu slectionner la
bonne option. (Fig. 11).
Un autre vnement sest produit durant
cette compilation: un lment du projet
tait obsolte. De la mme faon, une
fentre nous avertit du problme. Comme il
est possible de le gnrer immdiatement,
jai valid cette option pour voir o cela
conduisait: le projet a t converti et la
compilation sest finie sans autre difficult.
Pour le second projet, aucun vnement
notable nest signaler. Le chargement a t
particulirement long, cela me laisse penser
que mme si aucune fentre de dialogue ne
sest manifeste, il y a certainement des
actions de conversion qui se sont droules
silencieusement. (Fig. 12).
Ceci mamne au portage des projets C++. Si
nous venons de projets issus de Visual
Studio2010 ou 2012, aprs le chargement de
la solution, il nous est propos une tape de
conversion. Cette tape nest pas obligatoire,
mais requiert trs peu daction (cliquer sur OK
uniquement!!). Aprs le chargement du projet,
une bote de dialogue nous demande si lon
souhaite effectuer la mise niveau. la fin de
cette action, un rsum des actions est

Fig.9

Fig.10

Fig.7
Fig.8

Fig.11

15

Installation / migration
disponible. Finalement, mme si quelques
incompatibilits ont t releves dans les
projets utiliss, elles ont toutes t rsolues
sans problme majeur avec des outils
embarqus. En tant quutilisateur je nai eu
que trs peu dinteraction avec Visual Studio
pour permettre ladaptation de ces codes. Il
semble donc que la migration soit en grande
partie automatise et demande peu de
temps. Toujours concernant le portage des
projets, MSDN a bien document ce sujet
(rechercher le thme migration de projet C#
avec Visual Studio2015 avec Bing). Larticle
dtaille de nombreux cas possibles. Cest dans
cet article que jai appris que ltape
dadaptation des projets C++ est optionnelle
pour les projets issus de Visual Studio2010 et
2012 (.vcxproj), mais ncessaire dans les
autres cas (.vcproj). On trouvera galement
des conseils dans le cas o les outils
embarqus ne fonctionnent pas. Mme si
cette situation ne sest pas prsente dans
mes tests, il est utile de savoir o trouver ce
type de conseil. Des explications sont
donnes dans les cas o les projets :
u ne sexcutent pas, car des fichiers sont
introuvables;
u ne peuvent tre gnrs, car ils
contiennent des rfrences incompatibles.
Dans les deux cas, il sagira douvrir le fichier
du projet dans un diteur de texte et de
trouver les rfrences des versions de
Visual Studio ou au framework
(rciproquement) puis de corriger la main.
Au travers de mes diffrentes expriences
professionnelles, jai eu loccasion dutiliser
les versions2005 et 2008: le chemin
parcouru depuis ces versions est immense.
Bien entendu, un utilisateur venant
directement dune de ces deux dernires
versions (ou mme de la version2010) pourra
se sentir un peu perdu par le design ou
lorganisation. Cependant, on est clairement
dans la continuit des versions prcdentes.
Finalement, on peut dire que cette version
vise luniversalit et la polyvalence dans son
contenu tout en facilitant la mobilit des
dveloppeurs et laccessibilit de leurs
projets. Laspect communautaire est aussi
trs fort. En empruntant cette voie,
je pense que Visual Studio continuera de
samliorer.
p

Fig.12

16

Services Paas, Iaas sur DevTest,


ouverture dun compte VSO,
crdit Azure dans MSDN
Nous allons voir comment Visual Studio 2015 porte les principes DevOps
dans le Cloud Microsoft Azure, le monde de lOpen Source ou les solutions
dditeurs tiers. Le but est dacclrer le Dev-Lead Time , un KPI (Key
Performance Indicator) trs pris des directeurs de projets, puisquil mesure
le temps requis pour traverser un cycle complet de dveloppement, de
lide jusqu la mise en production. Les questionnements relatifs aux
licences et conomies considrer seront voqus.
Vincent Thavonekham
Microsoft Practice Manager VISEO

Notions de base et
dfinitions

Avant daborder pleinement le vaste et


passionnant sujet du DevOps, rappelons
quelques dfinitions simplifies:
u L ALM (Application Lifecycle
Management) correspond un ensemble de
processus et doutils permettant de grer le
cycle de vie complet de cration dun logiciel.
Par cycle de vie complet, nous entendons les
tapes successives de la collecte des besoins,
les spcifications, la ralisation, les tests
unitaires, la recette jusqu la livraison en
production et la gestion des bugs. LALM
permet dextraire de nombreux indicateurs et
KPI afin doptimiser les processus et la qualit
globale.
u Une Usine logicielle reprsente la
partie outillage et serveur mise en uvre
dans lALM pour automatiser les tches
rptitives et chronophages du processus
(ex: compilations, excution de tests,
dition de rapports, dploiements, etc.).
u Le DevTest est une approche agile
permettant aux dveloppeurs dacclrer
leurs dveloppements en testant et
livrant automatiquement leur code sur un
environnement dintgration plusieurs
fois par jour,
u Le DevOps est une approche Agile
qui repose sur le DevTest et pousse le
principe plus loin, en incluant dans la
boucle tous les acteurs jusqu la mise en
service et support du produit. Cette
livraison en production auprs du service
dExploitation (Operations en anglais,
dou lOps de DevOps) suit un
workflow trs rigoureux de validations et
inclut une forte traabilit; le DevOps est
parfois assimil, tort, lALM.

Le DevOps reprsente le Graal de


toute quipe souhaitant acclrer le DevLead Time tout en garantissant un niveau
de qualit de leur produit.

VSO et Microsoft Azure


comme acclrateurs de
dveloppement

Pour rduire de faon drastique le DevLead Time , nous allons dabord nous
concentrer sur Visual Studio Online (VSO),
c.--d. un Team Foundation Server toujours
jour et disponible en tant que service
sur Microsoft Azure. Nous verrons
galement comment linteraction de VSO
avec les autres services dAzure permet
doptimiser ce prcieux KPI.
Par le pass, les habitus des projets de
grande ampleur prvoyaient une semaine
un mois pour configurer et roder une usine
logicielle from scratch. prsent,
primtre constant, il est frquent de
raliser tout cela en moins dune semaine.
Mieux, avec de lentrainement et sur un
projet de taille modeste, il est possible de
raliser, toujours from scratch, une usine
logicielle de bout-en-bout en une heure
top-chrono, documentation comprise:
u fabriquer un environnement de Dev
(virtualis),
u crer un projet vierge, avec une coquille
de Tests Unitaires associe (TU),
u monter un serveur de Build, avec les
outils pour lancer les TU, et calculer le
taux de couverture de code par les tests,
u monter VSO-GIT (un rfrentiel GIT
combin la puissance de VSO pour
grer les projets),
u crer un hbergement pour une
application Web avec sa base de
donnes,
u brancher les outils de monitoring
applicatifs et techniques.
Oui, tout cela en une heure pour des cas

Services Azure
simples, ou 3 heures pour des projets de
type BI. Le secretconsiste simplement
puiser ces briques dans Azure. Ensuite, il
peut tre intressant, par exemple dajouter
du reporting sur ltat davancement des
dveloppements au travers de la brique
Power-BI (V2). Ce dernier pointera sur le
cube OLAP de VSO.
Le schma ci-contre survole les services
dAzure, o chaque icne encapsule
plusieurs fonctionnalits; ce qui constitue la
richesse du Cloud Microsoft: (Fig. 1).
Ce foisonnement de fonctionnalits se
traduit par un bon positionnement dans les
classements GARTNER. En effet, Azure est
positionn comme unique Cloud figurer
comme Leader dans les diffrentes analyses
(respectivement IaaS, stockage, PaaS,
virtualisation, base de donnes en tant que
service): (Fig. 2).
Entrer dans le dtail de chaque service cidessus dpasserait le cadre de ce
document.
Dans un contexte DevOps, une offre trs
couramment utilise est Azure App Service,
puisquelle permet de crer rapidement des
applications Web et mobiles sur diffrentes
plateformes en mode DevTest, mais
dispose galement de mcanismes robustes
pour dployer en production et assurer
simplement un SLA lev. Cest lobjet du
paragraphe suivant.

Fig.1

Des services Azure simples


pour assurer le DevTest et
DevOps: Azure App Service

Historiquement Azure App Service tait


compos de plusieurs briques spares;
Maintenant ces diffrents lments sont
rassembls afin de pouvoir raliser un
ensemble cohrent de services fdr autour
dun Hosting Plan. Pour le DevTest, on
peut utiliser les offres gratuites ou peu
chres dAzure App Service. Si lon souhaite
aboutir un SLA global lev avec des
backups/restores rapides, une simple
question dajustement de curseur, impliquant
un cot supplmentaire, permet daboutir

Fig.3

une version robuste taille pour la


production. Crer de tels ensembles peut se
faire sous forme de templates. Cette
simplification permet dacclrer davantage
la vlocit dune quipe puisquelle peut
se concentrer sur la valeur mtier
produire, et non sur la tuyauterie PaaS
qui est prise en charge par Microsoft.
Dailleurs, la communaut Open Source met
disposition de nombreux Azure Resource
Group Templates. (Fig. 3).
Un simple clic dans GitHub ouvre le portail
Azure et instancie ce template: (Fig. 4).
Ensuite, passer du mode Dev au mode
Production est facilit et sans surprise,
puisque le template a t utilis de
nombreuses reprises en Dev et dans lusine
logicielle. Au sein dAzure, loffre Azure App
Service se compose de quatre briques:
u Les Applications Web ou Azure Web
Apps,
u Les Mobile Apps,
u Les API Apps,
u Les Logic Apps.
Le premier permet de dployer du code
sans se soucier de la plateforme, fournie et
gre par Microsoft, do le terme de
PaaS (Platform as a Service) pour vos

Fig.4

Fig.2

17

Services Azure
applications Web. Aussi, est-il possible de
rellement coder en PHP, en Java, en .Net,
avec AngularJS, et de dployer le code
selon le moyen privilgi (Visual Studio
Online-GIT, Github, Dropbox, FTP, upload de
fichier). Il ne reste plus qu choisir ses
options en quelques clics: haute
disponibilit Always On, Backup
WebApp + Base de donnes, version de
PHP, Web Socket ou non, (Fig. 5).
Le second service concerne les
Applications Mobiles. On pourrait se
demander la lgitimit de cette brique, mais
y regarder de plus prs, des
problmatiques rcurrentes de coder des
CRUD dans les Web API, de Push
Notifications sur de liOS, mais aussi sur de
lAndroid, ou encore en natif sur Windows
Phone sont prises en charge, et la
complexit est encapsule.
Le troisime service rpond de
nombreuses problmatiques lis la mise en
production de rESTAPI, comme les aspects
scurit, la mise lchelle des REST API, le
monitoring, la documentation, o le bon
vieux SOAP et son WSDL taient bien
pratiques. Ici, les API seront protges par
un proxy et authentifies au travers dun
mcanisme de Token-based-SSO, reposant
par exemple sur Azure Active Directory,
comme Identity Provider.
Le quatrime et dernier service propose des

briques de logiques visuelles toutes


faites, qui permettraient, par exemple, de se
connecter Salesforce et de raliser des
traitements selon des workflows spcifiques.
(Fig. 6).
Salesforce nest quun exemple douverture
de Microsoft. Les problmatiques B2B
(Business to Business) et EAI (Enterprise
Application Integrator) sont simplifies,
quelles soient Cloud comme Salesforce,
ou On Premiseafin de laisser vos
donnes dans votre SI. Pour ce faire, des
connecteurs fournis en standards sont
disponibles, dont voici un extrait: (Fig. 7).

Bien dbuteravec
les crdits Azure

Lutilisation de la plateforme Azure


sapparente la consommation dun
tlphone portable: le fournisseur propose
un crdit utiliser et le dcompte se fait
lusage. Du coup, les conomies sont
immdiates: une ressource nest facture
que si elle est utilise, contrairement une
ferme de serveurs physiques; quils soient
ou non utiliss, ces
derniers sont ou
seront payer.
Il existe plusieurs
types de crdits
Azure:

u Version dessai gratuit 30 jours :


Microsoft vous met disposition un crdit
de 170 dans ce laps de temps. En
choisissant des services gratuits,
lenveloppe des 170 sera encore moins
impacte. Aussi, allez vous pouvoir
tester des environnements complets avec
des scnarios de bout en bout,
u Souscription MSDN : Contient 11 To de
logiciels Microsoft auxquels sajoute
notamment un accs la plateforme
Azure. Vous disposez de 45, 85 ou
130 de crdits selon les abonnements,
respectivement VS Professionnel avec
MSDN, MSDN Platforms et VS Entreprise
avec MSDN. Ddi aux dveloppeurs,
MSDN dispose galement dun autre
avantage: le cot des ressources Azure
est propos un tarif prfrentiel. Par
exemple, avec 130 il sera possible de
consommer plus d'Azure quavec un
abonnement non MSDN, permettant ainsi
de raliser de nombreux tests et dmos
clients (il est interdit dutiliser les licences
en production),

Fig.5

Fig.6

Fig.7

18

Services Azure
u Paiement Pay-as-you-go : en tant
que particulier ou entreprise, ce moyen
est pratique court terme pour dpanner
et utiliser rapidement Azure. Il suffit de
saisir son N de carte bleue, et pour viter
les dsagrments de date dexpiration de
cartes CB, il est aussi possible de choisir
des prlvements automatiques,
u Pour les Start-ups : de 4 175 49 000
de ressources offertes pour aider les startups,
u Contrats dentreprise en volume:
Pour bnficier de tarifs prfrentiels par
rapport au tarif public, il est requis de
raliser une projection de ce que lon va
payer en 3 ans, avec des
resynchronisations des montres tous
les ans. Cela permet de raliser des
conomies, de bnficier davantages
Microsoft, dun portail Web ddi pour
administrer Azure lchelle dun grand
groupe, dun support de proximit et de
tarifs prfrentiels et contractuellement
garantis, et enfin daccder diffrents
documents techniques ou juridiques
concernant la plateforme Azure.
En comprenant le modle de licences et les
avantages du Cloud, des conomies
considrables peuvent tre ralises grce
au Cloud Azure.
Prenons le cas rel dune socit qui paye un
demi-million deuros en licences hors cot
des plateformes virtualises. Afin de fiabiliser
les dveloppements, une plateforme de
DevTest (et terme DevOps) est envisage.

Or, cela implique la cration la vole de


nombreux environnements phmres de
tests, dintgration et de recette. Par
consquent, certaines licences, comme celles
des bases de donnes ORACLE
entraneraient des cots astronomiques, du
fait des contraintes actuelles de licensing.
Cependant, puisquAzure repose sur un
mode de paiement lusage, et
puisquORACLE a ralis des accords avec
Microsoft, la solution la plus rapide et la plus
conomique consiste monter tout cela sur
Azure, si le projet le permet: le cot des
licences est alors directement intgr (si on
le souhaite) la location des VM phmres.
Ainsi, dans la limite dun quota fix, et
depuis Visual Studio, les dveloppeurs sont
mme de dployer et tester rapidement leur
code, sans passer par des lourdeurs de
demandes de provisionning de VM.

Focus sur VSO:


comment bien dbuter?

Visual Studio Online (VSO) fait partie des


nombreux services fournis par la plateforme
Azure. (Fig. 8).
Il est possible de sauthentifier de faon
scurise, soit via un compte Microsoft
Account (ex. Live ID), soit via un
Corporate Account c.--d. un compte
Active Directory dentreprise (Azure AD),
pour peu que vous utilisiez le fournisseur
didentit Azure Active Directory ou celui
dOffice 365 (qui repose en fait sur Azure
AD). Considrons la socit Contoso. Son

Fig.8

Fig.9

Fig.10

compte VSO serait accessible depuis lURL


contoso.visualstudio.com ; un utilisateur sy
connecterait via SSO avec votre Login/mot
de passe dentreprise habituel, comme
Vincent.Thavonekham@contoso.com

(Intrt dAzure AD vs Microsoft Account:


par exemple, si un salari quitte lentreprise
ou si une politique dexpiration de mot de
passe est active sur votre AD, la propagation
sera galement effective sur VSO, via Azure
AD).

Bien dbuteravec
le DevTest: simplicit et
encapsulation

Le portail dadministration Azure comporte


ce jour 29rles(Owner, Contributor,
Reader,...); cela permet, par exemple, au
service marketing de naccder quen lecture
seule une sous-partie du projet Azure, sans
avoir les autorisations de dtruire des VMs,
ni de visualiser les rapports daudit
techniques (Application Insights). En outre,
cela permet de sparer les cots et de
ventiler les budgets. (Fig. 9).
Les dveloppeurs vont
pouvoir tendre leur
environnement de
dveloppement dans le Cloud en quelques
clics, et parfois mme entirement depuis
Visual Studio. En effet, Microsoft a rendu
simple lusage dAzure (avec ou sans Visual
Studio). Prenons le cas classique de cration
dune application Web; rappelons que
Visual Studio peut ajouter les bons
excutables et configurer le projet afin den
raliser un monitoring prcis via
Application Insights . Pour cela, il suffit
de prciser le login adquat vers Azure.
(Fig. 10).
Cette simplicit sapplique galement aux
ressources IaaS, qui sont pourtant
intrinsquement plus complexes utiliser
que des services PaaS. En effet, Microsoft a
encapsul ces notions afin que le
dveloppeur puisse se concentrer sur son
travail et non sur les subtilits du Cloud.
Dautant plus que, parfois, ces notions sont
peu matrises. Limage (Fig. 11) illustre que
le dveloppeur peut dployer son code sur
Azure, que ce soit sur une Web App (PaaS)

Fig.11

19

Services Azure
ou une Virtual Machine (IaaS).
Cette encapsulation de complexit est
galement applicable VSO, ce qui
conomise des heures, voire des jours
dinstallations et de configurations de
machines de Builds, de rinitialiser des IIS,
grer des notifications (Fig. 12).
Pour cela, pas besoin de quitter Visual
Studio, ladministration basique dAzure est
directement intgre dans la View
nomme Server Explorer.

Pour implmenter le DevTest


ou DevOps, quel composant
cloud choisir?
Les limites entre IaaS et PaaS sont parfois
floues; en consquence, Amazon, Google et
Microsoft nont pas exactement la mme
implmentation.
De plus, mme au sein de loffre Microsoft, il
sera possible de trouver plusieurs moyens
dhberger son application en PaaS: Azure
Web App et les Web Roles/Worker roles.
Tout va dpendre des performances, du SLA,
des cots souhaits.
Alors comment sy retrouver, surtout avec le
nombre considrable de services sur la
plateforme Azure? Sans entrer dans le dtail
de tous les composants (plus de 500
nouveauts par an), voici les
recommandations gnrales:
Dune part, il est ncessaire de maintenir son
niveau de connaissance en Cloud, quil soit
Azure ou non, en pratiquant les concepts
reposant sur les principes darchitectures
distribues. Aussi, lors de la ralisation
dapplications business critical, diffrents
types darchitectures comme les
lambdaarchitectures , le CQRS ou les
concepts clefs comme lidempotence ou le
retrial policy seront valus. Dautre part,
il est recommand de connaitre le
classement suivant: IaaS PaaS SaaS.
u Plus le curseur tend vers la droite en
direction du SaaS, plus les services seront
simples utiliser, avec de nombreuses
options gratuites ou payantes incluses.

Fig.12

20

Cependant, vous perdrez en libert,


car ces services ont dj t dvelopps
et tests pour vous,
u Plus le curseur est orient vers la gauche
en direction du IaaS, plus le degr de
libert configurer sera important, mais
plus le temps de maintenance sera long,
ce qui reprsentera un cot plus
important en production. Par ailleurs, il est
connu que le cot rel dune application
nest pas localis dans la phase de
dveloppement, mais dans la phase de
MCO Maintien en Condition
Oprationnelle, puisque ce dernier dure
en principe des annes.
Pour concevoir et raliser des applications
robustes, suivons les recommandations
suivantes: Privilgier au maximum les
services PaaS pour conomiser et
simplifier le Dev et la Prod, et choisir le
IaaS si et seulement si son quivalent
PaaS ne propose pas assez de
personnalisations. Ainsi nombre
dapplications sont actuellement en
production avec une architecture idale en
Always On induisant un haut SLA, sans
toutefois avoir pass plusieurs mois
rinventer la roue. Oui, il restera des
scripts dautomatisation raliser, complts
par les fonctionnalits de auto-healing
du Cloud: la manire dun satellite en
orbite, lorsquil est endommag de faon
imprvisible par des dbris, cependant le
satellite bien conu pourra se recolmater
sans intervention humaine afin de reprendre
du service.

Ouverture des services


Microsoft Azure

Afin de promouvoir cette ouverture vers de


nombreux services et surtout permettre aux
utilisateurs de modliser leurs besoins,
Microsoft ralise de nombreux partenariats.
Certains sont parfois mme surprenants dans
les cas de concurrents historiques. Citons 3
exemples douverture:
u Ouverture du Cloud Azure : Sur des
projets dampleur, il est courant de mler
sur Azure: du Docker + Apache
Cassandra + ASP.NET Web API + Apache
Redis Cache + VSO + Jenkins + ORACLE
database + Bus TIBCO
u Ouverture de Visual Studio : Prise en
compte du fait que tous les dveloppeurs
ne travaillent pas en environnement
Microsoft, comme les dveloppeurs
HTML5, NodeJS, AngularJS, aussi, la
structure des projets a t entirement
revisite en ASP.Net 5, permettant ainsi
tous les dveloppeurs douvrir des projets
avec leurs outils non-Microsoft auxquels
ils sont habitus,

u Ouverture du code source : De


nombreux frameworks ont t rendus
ouverts. Par exemple, Entity Framework,
ou encore lASP.NET 5, o ce dernier subit
en ce moment mme des amliorations
considrables. Cette vitesse de
dveloppement est droutante dans le
monde Microsoft; aussi, comme tout
produit Open Source, des Breaking
Changes nombreux et ncessaires sont
prsents en dbut de vie du produit.
Pour que tous ces diffrents services
puissent interagir entre eux et semboter
la manire de Legos, Microsoft a mis sur
des standards reconnus et bien tablis
(OpenID Connect, OAuth 2.0, SAML 2.0 ).
Cest ainsi que le liant tout cela repose sur
de nombreux Web API protgs par le
Token-based SSO (Single Sign On). Celui de
Microsoft est nomm Azure Active
Directory (Azure AD); cela dit tout
fournisseur didentits compatibles avec ces
standards fera laffaire.
Lavance du sujet Token-based SSO est
considrable, pousse par de nouveaux
usages:
u Le BYOD (Bring Your Own Device),
u La mobilit avec des modes
dconnects,
u Les diteurs tiers proposent de plus en
plus dapplications en mode SaaS,
Par consquent, les DSI investissent de plus
en plus sur la mise en place dun nouveau
systme de SSOpour permettre cette
ouverture vers le monde; lactuel tant soit
trop souvent limit lintranet, soit peu
scuris sur Internet, soit non synchronis
avec leur annuaire LDAP.

Pour aller plus loin en


DevOps

Le sujet du DevOps est vaste; cependant,


linfime partie voque prcdemment
permet dj dtre oprationnel en DevTest
en quelques heures. Il reste cependant
ncessaire:
u de comprendre les subtilits des
architectures distribues,
u den matriser les bonnes pratiques (de
type public cloud, private cloud ou
hbergement classique),
u quelques particularits de la plateforme
Azure.
Donc, ce monde o la complexit du Cloud
est encapsule replace le produit et le
besoin du client au centre dune DSI agile et
ractive. Bon DevOps avec VS 2015 et
Microsoft Azure! Et noubliez pas, loutillage
ne fait pas tout. La russite dune
transformation DevOps passe galement par
la gestion du changement, et les
mthodologies et processus robustes.
p

Dvelopper pour Windows 10

Windows 10

Avec la sortie de Windows 10, les dveloppeurs peuvent dsormais samuser avec le nouveau Windows
Software Development Kit (SDK) pour le nouveau systme dexploitation. Un nouveau SDK implique de
nouvelles fonctionnalits, et le SDK Windows ne droge pas cette rgle. Ce SDK permet de raliser des
Universal Windows Platform (UWP) apps, comprendre ici applications universelles pour les familles de
devices Windows 10: Windows Desktop, Windows Mobile, Windows IoT, Xbox
Teddy DESMAS
Daniel DJORDJEVIC
Michal FERY
Consultants Infinite Square

Le concept dapplication universelle est une notion trs prsente de


nos jours. Nous avons lexemple avec les applications universelles
Windows 8.1 et lenvie de permettre au dveloppeur de partager son
code mtier entres les diffrentes plateformes, tout en dveloppant
des vues spcifiques pour celles-ci. Chaque famille apporte son API
spcifique en plus de lAPI commune, pour pouvoir offrir
lutilisateur une exprience plus adapte en fonction du device
utilis. (Fig. 1). Cest dans cet esprit universel que le dveloppeur
dapplications Windows 10, avec cette notion de mise en commun de
la logique mtier, peut utiliser les nouveaux concepts, outils et
contrles fournis par ce nouveau SDK.

Windows 10 et le XAML

Le dveloppement dapplications Windows 10 cible de nombreux


devices, cest pourquoi il faut, plus que jamais, se prparer
dvelopper des interfaces utilisateurs pour de nombreux formats.
Cest pourquoi nous disposons maintenant de nouveaux contrles et
lments qui vont permettre aux dveloppeurs de fournir une
exprience user-friendly, quel que soit le priphrique sur lequel
lutilisateur est, que ce soit sur tlphone, tablette, ou des crans
plus larges. Dune manire gnrale, on peut constater que le XAML
soriente vers un format plus clair, en essayant de gommer les
fioritures du langage, afin de pouvoir crire un XAML moins verbeux,
et plus simple comprendre, sans sy perdre.

relativePanel, un peu de fracheur dans notre XAML

Parmi les nouveaux contrles, notamment de type conteneur, nous


avons maintenant le RelativePanel. Depuis de nombreuses annes,
Grid, Canvas, StackPanel, ScrollViewer et compagnie ont pour tche
dagencer les diffrents lments des vues de nos applications.
Dornavant, une nouvelle faon dorganiser son contenu est notre
disposition. Le nom du contrle en dit beaucoup sur son principe: la
relativit. (Fig. 2).
En effet, ce nouveau contrle dispose les lments en dclarant des
relations entre ses enfants. Cest--dire que lon va pouvoir
positionner un lment A droite dun lment B, ce qui signifie que
le dplacement de llment B entranera le dplacement de
llment A, celui-ci tant toujours positionn la droite de B.
Cette nouvelle faon de penser semble intrigante premire vue,
mais cela offre rellement de nombreuses possibilits une fois quon
Fig.2

Fig.1

sest habitu son fonctionnement. Cest avec plus de 16 Attached


Properties que lon peut positionner les enfants du RelativePanel
entre eux, mais aussi entre le RelativePanel lui-mme et un enfant
particulier, voyons un peu comment cela se passe au niveau du code.
On saligne vis--vis du relativePanel
Tout dabord, on dclare notre RelativePanel et on y ajoute un
lment sans rien lui spcifier.
Code:

<RelativePanel>

<Rectangle x:Name="Rect1" Width="50" Height="50" Fill="Crimson"/>

</RelativePanel>

Rsultat:
On observe un comportement
plutt normal, llment vient se
placer tout en haut gauche du
RelativePanel. (Fig. 3)
Vous pouvez jouer avec 6
diffrentes proprits pour agencer
vos enfants en fonction du Panel:

Fig.3

<Rectangle RelativePanel.AlignVerticalCenterWithPanel="True"
RelativePanel.AlignHorizontalCenterWithPanel="True"
RelativePanel.AlignRightWithPanel="True"
RelativePanel.AlignLeftWithPanel="True"
RelativePanel.AlignTopWithPanel="True"

RelativePanel.AlignBottomWithPanel="True"/>

Agencement entre lments


Cest lessence mme du RelativePanel, on est toujours sur des
Attached Properties comme pour le RelativePanel, cependant, la
place du boolen, il est cette fois-ci ncessaire de spcifier llment
relatif laction. On a donc par exemple:
Code:

<RelativePanel>
<Rectangle x:Name="Rect1" Width="50" Height="100" Fill="Crimson"
RelativePanel.AlignHorizontalCenterWithPanel="True"

21

Windows 10
RelativePanel.AlignVerticalCenterWithPanel="True"/>

<Rectangle x:Name="Rect2" Width="50" Height="50" Fill="CadetBlue"


RelativePanel.AlignVerticalCenterWith="Rect1"/>

</RelativePanel>

Rsultat: (Fig. 4)
Ici, on a notre rectangle bleu
(Rect2) qui va saligner
verticalement avec le rectangle
rouge (Rect1).
Supposons que dans notre
dveloppement, nous changeons
Fig.4
davis, et nous voulons que le
rectangle bleu soit la mme hauteur que le rectangle rouge, nous
avons juste remplacer le AlignVerticalCenterWith par AlignTopWith.
On peut donc jouer avec les proprits suivantes:
<Rectangle x:Name="Rect2" Width="50" Height="50" Fill="CadetBlue"
RelativePanel.AlignHorizontalCenterWith="Rect1"
RelativePanel.AlignVerticalCenterWith="Rect1"
RelativePanel.AlignLeftWith="Rect1"

RelativePanel.AlignRightWith="Rect1"
RelativePanel.AlignTopWith="Rect1"

RelativePanel.AlignBottomWith="Rect1"/>

Cependant, la puissance du RelativePanel ne sarrte pas l. Outre


lalignement des enfants, on peut aussi dfinir une position.
LeftOf, rightOf, Above, Below
Les proprits tant assez explicites, voyons immdiatement ce qui
se passe en spcifiant LeftOf et Above sur notre rectangle bleu
(Rect2):
Code:

<Rectangle x:Name="Rect2" Width="50" Height="50" Fill="CadetBlue"


RelativePanel.LeftOf="Rect1"

RelativePanel.Above="Rect1"/>

Rsultat :
En reprenant les exemples
prcdents, le rectangle bleu (Rect2)
va venir se coller au-dessus du
rectangle rouge (Rect1). Cela va
nous permettre ainsi de grer des
positions en mme temps que des
Fig.5
alignements dans notre vue. (Fig. 5)
Le RelativePanel est un contrle qui apporte un peu de fracheur
notre architecture XAML, mais l o il va exceller, cest dans cette
optique dunifier la vue, o lon va pouvoir dfinir nos diffrents
positionnements et alignements pour telle ou telle vue.

AdaptiveTrigger, adaptons notre vue

En tant que dveloppeur dapplications Windows Phone et Windows


Store, vous avez probablement eu affaire au VisualStateManager
pour manipuler votre vue en fonction de la taille de la fentre, pour
grer le snap de Windows 8.1. Cependant il fallait sabonner
lvnement SizeChanged de la Frame de lapplication, puis changer
ltat soi-mme grce la mthode GoToState du
VisualStateManager.
Tout dabord, il nest plus obligatoire de dfinir une animation pour
chaque tat de son VisualStateManager, car celui-ci supporte

22

maintenant les Setters, cela nous permet davoir, encore une fois, un
XAML moins dense.
Prenons un exemple classique: on dsire avoir un label gauche
dune TextBox lorsquon dispose dassez despace en longueur, et
avoir le label au-dessus de la TextBox lorsque lespace est restreint.
En somme, on aimerait avoir un formulaire responsive, voici un
exemple avec le ResponsivePanel:
<Grid x:Name="LayoutRoot" Background="White">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="NormalState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="800" >
</VisualState.StateTriggers>

<VisualState.Setters>
<Setter Target="TxtBox.(RelativePanel.RightOf)"
Value="Label"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="SpecialState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>

<VisualState.Setters>
<Setter Target="TxtBox.(RelativePanel.Below)"
Value="Label"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroup>
<RelativePanel Padding="24">

<TextBlock x:Name="Label" Text="Label" />


<TextBox x:Name="TxtBox" Background="Blue" />
</RelativePanel>
</Grid>

On dfinit ici que le VisualState NormalState est utilis lorsque la


Width est suprieure 800 avec:
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="800" />
</VisualState.StateTriggers>

Dans cet tat-l, nous avons assez despace, donc nous utilisons la
proprit RelativePanel.RightOf pour indiquer que la TextBox doit se
positionner la droite du Label.
<Setter Target="TxtBox.(RelativePanel.RightOf)" Value="Label"/>

Dans le cas contraire, si nous disposons dune Width infrieure 800,


lautre VisualState SpecialState est dclench, et cest donc la
proprit Below qui est utilise. Cet exemple est relativement simple,
mais montre bien que lAdaptiveTrigger va devenir essentiel au
dveloppement dapplications responsives, afin davoir un affichage
adapt chaque format dcran.

SplitView, un panneau latral

Parmi ces nouveaux contrles XAML, nous avons dornavant la


possibilit dutiliser une SplitView dans nos applications. Lobjectif de
ce contrle est de permettre au dveloppeur dintgrer la gestion

Windows 10
dun panneau latral dans son application. Attention tout de mme,
ce nest pas un Hamburger menu intgr et dj prt lutilisation.
Si vous dsirez un Hamburger menu authentique, il va falloir
combiner la SplitView avec un bouton qui va manipuler la SplitView,
rien de bien compliqu en soi!
Nous avons donc le SplitView.Pane qui regroupe les diffrents menus
de lapplication, la gestion du profil, les paramtres, par exemple.
Puis le SplitView.Content qui, comme son nom lindique, va accueillir
la page de contenu.
<SplitView>
<SplitView.Pane>
// Le menu latral
</SplitView.Pane>
<SplitView.Content>
// Le contenu
</SplitView.Content>
</SplitView>

Pour manipuler notre SplitView, pas de secrets, certaines proprits


sont indispensables.
La proprit IsPaneOpen permet douvrir/fermer votre menu.
PanePlacement, qui peut tre gal Left ou Right, dtermine le ct
par lequel le menu apparat, et OpenPaneLength, la taille quil
prend. La proprit DisplayMode vous permet de choisir entre
plusieurs types daffichages diffrents, on va pouvoir dplacer le
contenu de la page pour faire apparatre le menu, ou tout
simplement placer le menu au-dessus du contenu.
Ce nouveau contrle permet au dveloppeur de mettre en place des
menus plus aisment, et ainsi offrir la meilleure exprience utilisateur
possible, dun point de vue ergonomique et dynamique.

Une vue diffrente pour chaque type dcrans

Nous avons vu que lAdaptiveTrigger est trs utile lorsquon souhaite


faire du responsive, cependant, en ralit, il est souvent ncessaire
de dvelopper une UI compltement diffrente pour chaque famille
(Desktop, Mobile, Xbox, IoT, etc.), et donc par consquent obtenir un
fichier XAML trs imposant.
Cest pourquoi il est dornavant possible de crer des vues
spcifiques pour une famille. Prenons lexemple du clbre
MainPage.xaml: nous avons notre MainPage.xaml la racine de
notre projet, celui-ci va tre le XAML standard. Supposons ensuite
que nous voulons un design particulier sur Windows Mobile. Il nous
suffit de crer le dossier suivant: DeviceFamily-Mobile et dy ajouter
une vue XAML avec le mme nom: MainPage.xaml.

Ainsi, lorsquon affiche cette vue sur Windows Mobile, cest le fichier
prsent dans DeviceFamily-Mobile qui est utilis, et non celui prsent
la racine du projet. Les dveloppeurs ont dsormais toutes les
cartes en main pour pouvoir implmenter des vues adaptes
toutes les familles, tout en gardant une logique commune, unique.

Et si lon parlait IoT

Depuis plusieurs annes, on assiste lessor des cartes


programmables permettant aux bidouilleurs de fabriquer des objets
connects simples ou de prototyper des objets complexes.
Pour Microsoft, cela signifie que luniversalit de leurs applications
doit devenir concrte et stendre jusquaux objets connects.
Microsoft adopte le mouvement Maker et ne le fait pas moiti.
(Fig. 6)

Windows 10 IoT Core

Fort du succs de cette dmarche dapplications universelles ne


ncessitant quun seul dveloppement (un seul et mme code) pour
cibler toutes les plateformes, Microsoft pousse jusqu inclure les
mini-ordinateurs et cartes programmables dans la partie. Une version
Windows 10 IoT Core est ne pour satisfaire ces besoins spcifiques.
Similaires aux cartes Arduino, les cartes Raspberry Pi 2, Galileo ou
Minnowboard Max ont dsormais leurs propres versions de Windows
10 leur permettant galement de faire fonctionner les mmes
applications que leurs grandes surs.
Universal Apps
Comme nous le disions, Microsoft a pris les choses au srieux et
fournit lintgration complte du dveloppement sur ces
plateformes. Crer une app pour IoT Core revient crer un nouveau
projet Windows 10 ou Universal Windows Platform comme un autre.
Pour cela, Windows10, Visual Studio 2015 et le Windows 10 SDK sont
ncessaires, mais tous disponibles gratuitement.
Quelques nouveauts seront par contre bien utiles selon le contexte
de projet IoT comme les modes Headed et Headless
permettant Windows 10 de fonctionner sur des machines avec ou
sans cran. En mode Headed une seule application avec UI pourra
fonctionner la fois alors quen mode Headless, les backgrounds
apps auront la part belle. Vos applications Windows 10
fonctionneront sans problme sur ces petits appareils mises part
certaines limitations spcifiques, mais la majeure partie des
applications nauront aucun mal tourner et ne ncessiteront aucun
dveloppement supplmentaire. En revanche, vous pourrez ajouter
des fonctionnalits vos applications sexcutant sur ces
Fig.6

23

Windows 10
plateformes, en utilisant le SDK Windows 10 IoT Core. Celui-ci est
disponible sous forme de package NuGet gratuit et offre nos
applications Windows 10 les fonctionnalits supplmentaires daccs
aux entres/sorties des broches dun Raspberry Pi 2 ou toute autre
carte compatible. (Fig. 7)

Fig.7

Dveloppez ds maintenant
Pour commencer dvelopper pour ces plateformes vous devrez
installer Windows 10 Iot Core sur votre machine cible et dvelopper
depuis un PC sous Windows 10 avec Visual Studio 2015.
Vous trouverez toutes les tapes ncessaires vos premiers pas sur
le site (http://www.windowsondevices.com).

Arduino

Windows 10 devient le premier systme Certifi Arduino.


Le partenariat annonc avec Arduino se traduit par une intgration
trs profonde de la stack IoT de Microsoft avec Arduino.
Windows remote Arduino
Lide est de sappuyer sur les capacits de la plateforme Arduino
grer le hardware en lui proposant une communication
bidirectionnelle, depuis ou vers les applications Universal Windows
Platform. La couche daccs aux BDD ou au rseau pourrait ainsi tre
dlgue aux app Win10 et les interactions hardwares aux cartes
Arduino dans des scnarii IoT beaucoup plus complets
quaujourdhui.
La communaut Arduino tant norme, ce partenariat peut tre un
vritable essor pour lintgration des app Windows 10.
Windows Virtual Shield for Arduino
Laspect le plus marquant de ce partenariat est la possibilit de crer
des Shields virtuels pour Arduino. Ici ce sont les devices tournant
sous Windows 10 qui sont au service des cartes Arduino en
permettant celles-ci daccder aux capacits matrielles et aux
capteurs du device Win10. Par exemple, lacclromtre ou le GPS de
votre tlphone peuvent tre utiliss sur votre Arduino comme si
vous aviez mont des Shields spcifiques. Cette intgration aux
couches IoT est tout simplement bluffante tant au niveau technique
quau niveau philosophie douverture de la plateforme Windows.

Allons plus loin

Pour trouver des ides de projets ou tout simplement smerveiller


devant la crativit technologique de certains, vous pourrez parcourir
les exemples de code mis disposition sur la plateforme hackster.io
et ainsi dcouvrir ltendue des fonctionnalits disponibles:
https://www.hackster.io/windowsiot

Les nouveauts ct code

Avec larrive des applications Universal Windows Platform, des


nouveauts ct code font galement leur apparition. Nous allons
tout de suite dcouvrir les principales.

Nouveaut daccs Windows via


Windows.System.Launcher

Avec Windows 8.1, il tait possible douvrir des fichiers ainsi que des
URL partir de lapplication en utilisant les mthodes proposes
telles que LaunchFileAsync, LaunchUriAsync. Windows 10, de par son
SDK, nous propose de nouveaux accs aux fichiers, dossiers.
Ouvrir des dossiers (LaunchFolderAsync)
La mthode LaunchFolderAsync
(https://msdn.microsoft.com/library/windows/apps/windows.system.launcher.lau

24

nchfolderasync.aspx) fait son apparition, elle permet de demander


louverture dun explorateur de fichier vers le dossier spcifi.
Cependant, comme pour louverture de fichier, des restrictions sont
mises en place. Il est donc parfois ncessaire de spcifier ce dossier
dans le Manifest de lapplication (via les Capabilities), pour obtenir le
droit dinteragir avec.
Ouvrir des paramtres natifs (LaunchUriAsync)
La mthode LaunchUriAsync
(https://msdn.microsoft.com/library/windows/apps/windows.system.launcher.lau
nchuriasync.aspx), utilise pour ouvrir une adresse internet est tendue.
Cette mthode qui permet douvrir des URL peut tre couple au
nouveau protocole (ms-settings) pour afficher les paramtres natifs
de Windows 10 depuis votre application.
Cest idal pour des scnarii o votre application ncessite un
environnement prcis, pour ainsi guider lutilisateur dans la
configuration de celui-ci. Voici un exemple pour ouvrir lcran de
gestion du WiFi sous Windows 10:

var success = await Launcher.LaunchUriAsync(new Uri("ms-settings:network-wifi"));

Le protocole ms-settings expose de nombreuses pages de


paramtres, une liste est disponible sur MSDN
(https://msdn.microsoft.com/fr-fr/library/windows/apps/xaml/Dn741261.aspx).

Communication entre applications

Sous Windows 8.1, notamment dans des scnarii dentreprise, nous


tions amens faire communiquer nos applications Windows 8.1
avec dautres applications de lenvironnement. Mais les solutions
taient minces et trs limites. Une des solutions utilise par dfaut
est de passer par le partage de fichier, en crant et en
remplissant un fichier avec les donnes changer et en demandant
Windows de louvrir. Cependant, ce procd a ses limites:
u parfois Windows nautorise pas louverture de lapplication,
u lapplication recevant le fichier ou le protocole doit tre
configure pour pouvoir les lire (parfois un dveloppement
supplmentaire est ncessaire),
u et surtout, le dialogue ne se fait que dans un sens! (nous ne
pouvons pas avoir de retour de lapplication appele).
changer des donnes entre applications
(LaunchUriForresultsAsync)
Avec App-to-App, Microsoft nous met disposition une vraie
manire de dialoguer avec une autre application de lenvironnement
utilisateur. App-to-App nous permet de rsoudre les limites que
nous avions avec la mthode prcdemment voque. Ceci passe
notamment par lutilisation dun protocole personnalis (dans

Windows 10

lexemple nous utiliserons le protocole infinitesquare) pour dialoguer


entre les applications. Prenons lexemple suivant:
u une application A, qui joue le rle de client,
u une application B qui joue le rle de serveur,
u lapplication A va communiquer avec lapplication B (les
deux doivent tre configures).

Configuration du serveur B
Dans lapplication serveur, il faut spcifier dans son Manifest (dans
longlet dclarations) quelle peut rpondre un protocole dfini, en
renseignant le nom et le type de retour (sans, avec ou parfois). Ct
code, il faut surcharger la mthode OnActivated dans le fichier
App.xaml.cs pour obtenir les arguments passs lors de lappel et faire
le traitement adquat. Dans mon exemple, je fais ce traitement dans
ma MainPage, cest pourquoi je lui transmets les arguments.

// Si les arguments transmis contiennent celui que l'on attend


if (protocolForResultsArgs.Data.ContainsKey("Request"))
{
string dataRequest = protocolForResultsArgs.Data["Request"] as string;

protected override void OnActivated(IActivatedEventArgs args)


{
Frame rootFrame = Window.Current.Content as Frame;
// Crer la frame si elle n'est pas encore dfinie
if (rootFrame == null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
}

// Obtention des arguments passs lors de l'appel


var protocolForResultsArgs = (ProtocolForResultsActivatedEventArgs)args;
// Transfert des arguments la MainPage
rootFrame.Navigate(typeof(MainPage), protocolForResultsArgs);
}

Window.Current.Activate();

Et dans la mthode OnNavigatedTo de la page MainPage, jeffectue


le traitement:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// Obtention des arguments passs depuis le App.xaml.cs
var protocolForResultsArgs = e.Parameter as ProtocolForResults
ActivatedEventArgs;
if (protocolForResultsArgs == null)

return;

// On dfinit l'objet stockant les valeurs retourner


var result = new ValueSet();

if (dataRequest == "Est-ce que tu m'entends ?")


{
// On dfinit une rponse
result["Response"] = "Hey ho !";
}

// On termine l'opration et on retourne le rsultat


protocolForResultsArgs.ProtocolForResultsOperation.ReportCompleted
(result);
}

Appel lapplication B dans lapplication A


et exploitation du rsultat
Dans lapplication client, il faut ici configurer la communication
lapplication Serveur. Il suffit de connatre quelques informations
sur ce quattend lapplication Serveur:
u le PackageFamilyName (prsent dans le manifest),
u le nom du protocole,
u les cls utilises pour lchange ( lentre, mais aussi la sortie).
Dans notre cas, nous avons ces informations de configuration
facilement puisque cest nous qui les avons dfinies, mais dans le cas
dchange avec une application tierce, nous devrons les obtenir ou
les fournir lautre application.
Lappel utilise la mthode LaunchUriForResultsAsync
(https://msdn.microsoft.com/en-us/library/windows/apps/dn956688.aspx).
Voici comment utiliser cette mthode et changer des donnes entre A et B:
var options = new LauncherOptions()
{
// On dfinit le PackageFamilyName
TargetApplicationPackageFamilyName = "5f926382-faf0-4039-9847e085b01b248d_jsdmg9dqt3zzj"
};

25

Windows 10
// On renseigne nos donnes changer
var inputData = new ValueSet();
inputData["Request"] = "Est-ce que tu m'entends ?";

// On lance l'appel avec les donnes


var result = await Launcher.LaunchUriForResultsAsync(new Uri("infinite
square://"), options, inputData);
// Si le rsultat est positif et qu'il contient ce que l'on attend
if (result.Status == LaunchUriStatus.Success &&
result.Result != null &&
result.Result.ContainsKey("Response"))
{
// On affiche l'utilisateur le retour
var messageDialog = new MessageDialog(result.Result["Response"].
ToString());
await messageDialog.ShowAsync();
}

Il est bon de savoir que Microsoft bride volontairement lchange


des donnes entre les applications via ce systme 100ko (la valeur
de lobjet dans ValueSet).

Savoir si une application supporte lappel


(QueryUriSupportAsync)
La mthode QueryUriSupportAsync (https://msdn.microsoft.com/enus/library/windows/apps/dn893515.aspx) peut se combiner la mthode
prcdente, car elle permet de savoir si une application peut
rpondre une demande prcise. Cette demande est dfinie en deux
parties:
u son Uri (adresse dun fichier ou protocole),
u son type (Uri ou Uri avec rsultat).
Cette mthode permet de mieux anticiper lenvironnement de
lutilisateur et pouvoir lavertir sil est ncessaire dinstaller un logiciel
tiers pour profiter au maximum des fonctionnalits que lui met
disposition lapplication Windows 10.

Gestion des modes daffichage (plein cran, fentr,


tactile ou non)

Les applications Windows 10 saffichent nativement en mode fentr


et sont donc responsives. Pour offrir une meilleure exprience
utilisateur, il est parfois ncessaire de savoir comment lapplication
est utilise pour adapter cet usage en fonction. Avec la proprit
UserInteractionMode de UIViewSettings, nous sommes capables de
savoir si Windows est utilis en mode touch ou la souris, grce
lnumration obtenue via:
UIViewSettings.GetForCurrentView().UserInteractionMode.
Nous pouvons galement connatre le mode daffichage de
lapplication (fentr, plein cran) et agir sur celui-ci:
u entrer en mode plein cran,
u sortir du mode plein cran,
u dfinir la taille de la fentre de lapplication.
Pour interagir avec la fentre de lapplication, nous devons obtenir la
fentre courante en utilisant la mthode GetForCurrentView
(https://msdn.microsoft.com/en-us/library/windows.ui.viewmanagement.
applicationview.getforcurrentview.aspx) qui permet dobtenir la vue active.

Toast Notifications

Avec les UWP, les notifications sont grandement enrichies et peuvent


dsormais avoir des actions utilisateurs.
Les notifications sont constitues de 3 parties:

26

u La partie Visual: ici il ny a quun seul template de base que


nous pouvons personnaliser en ajoutant/modifiant/supprimant
licne, des images, du texte Ce visuel sadapte
automatiquement aux diffrentes plateformes (smartphone, PC,
tablette, Xbox).
u La partie Actions: elle est situe en dessous de la partie
Visual et peut accueillir au maximum 3 boutons de type
Input et/ou une case de texte pour permettre lutilisateur
dinteragir avec la notification et donc avec votre application.
u La partie Audio: comme sur Windows Phone 8.1, la partie
audio reste inchange, elle peut jouer un son personnalis depuis
lapplication (ms-appx, ms-appdata).
ceci sajoute, le choix du type de notification qui est mis. Ce type
permet Windows dinterprter de manire diffrente la notification
(plein cran, son en boucle ). Ce type est appel scnario dans le
code XAML de llment racine toast et peut avoir plusieurs valeurs
possibles (default, alarm, reminder, incomingCall). En fonction du
besoin, ce type peut tre grandement utile pour que lutilisateur ne
rate pas la notification lorsquelle est mise. Avec toute cette
personnalisation, lutilisateur peut effectuer des choix et agir via la
notification avec lapplication. Voici quelques exemples dinteractions:
u Ouvrir lapplication au premier plan avec une action spcifique,
u Ouvrir lapplication en fond,
u Ouvrir une autre application,
u Effectuer une action systme qui se limite aux alarmes et aux
rappels (pour le moment).

Cortana

Cortana, la clbre assistante prsente dans Windows 10, peut


galement tre utilise dans vos applications! En lintgrant dans notre
programme, nous donnons la possibilit aux utilisateurs dinteragir avec
celui-ci sans avoir besoin de le lancer. Par le biais de Cortana,
lutilisateur peut effectuer des actions simples avec notre application.
Prenons le cas dun logiciel de rservation dhtel, lutilisateur demande
Cortana un htel proche. Celle-ci pourra lui faire des propositions
partir des rponses gnres par notre programme. Il pourra ensuite
aller jusqu la rservation sans mme avoir ouvert le logiciel ni avoir
touch son clavier! De plus, si notre application est paramtre pour
interagir avec Cortana, celle-ci peut naviguer, effectuer des actions,
crire dans lapplication. Les scnarios peuvent tre assez vastes. Dans
la plupart des cas, Cortana va permettre de gagner du temps, et
galement rduire les efforts de lutilisateur (rechercher ce dont il a
besoin, prendre en main lapplication ) Cette nouveaut demande un
dveloppement particulier, lintgration tant assez longue, nous
nallons pas nous y attarder ici. Cependant, les personnes intresses et
qui souhaitent mettre profit Cortana dans leurs applications
trouveront la marche suivre sur MSDN
(https://msdn.microsoft.com/library/windows/apps/xaml/dn974230.aspx)
p

Mobilit

Mobilit

Le dveloppement mobile cross-plateformes est un enjeu qui


devient de plus en plus important. Comment fournir une
application de qualit et adapter aux utilisateurs des
diffrentes plateformes tout en gardant un cot de
dveloppement et de maintenance non exponentiel ? Plusieurs
outils / Frameworks proposent des approches diffrentes pour
rpondre ces dfis. Microsoft a dcid dadresser toutes ces
solutions en intgrant un ensemble doutils dans Visual
Studio2015, de manire nous laisser le choix de la meilleure
solution en fonction de notre contexte.
Kvin ALBRECHT
Teddy DESMAS
Thomas LEBRUN
Sbastien OLLIVIER
Thomas OUVRE
Consultants Infinite Square

Dans cet article, nous tudierons notamment


Apache Cordova, les possibilits de
dveloppement en C++ dans la version2015
de Visual Studio, ainsi que les possibilits
offertes par Xamarin. Nous verrons
galement la solution des Windows
Bridges permettant de dployer une
application iOS ou Android sur le
store Windows.

Apache Cordova

Apache Cordova est un Framework


open source dvelopp par la
fondation Apache, permettant de
crer des applications mobiles crossplateformes en utilisant les langages
HTML / CSS / JavaScript. Lide est de
pouvoir cibler toutes les plateformes
mobiles majeures en dveloppant une
seule application et en smancipant
en partie des langages natifs comme
Java, C#, Objective-C, ou autre. Pour
pouvoir interagir avec le device,
Apache Cordova met disposition un
ensemble dAPI JavaScript permettant
daccder aux fonctionnalits natives,
de manire unique quelle que soit la
plateforme.

Le principe

Le principe est de dvelopper une


application Web, en HTML / CSS /
JavaScript, et de la packager sous la
forme dune application native. Pour
que le rendu de lapplication Web
sadapte tous les devices, il est
ncessaire de dvelopper une
application Web responsive, par
exemple laide du Framework CSS

Bootstrap. Pour proposer un rendu plus fini,


il est galement recommand de crer une
application Web de type Single Page
Application (SPA), par exemple laide des
Frameworks AngularJS ou KnockoutJS. Lide
est donc ici davoir un seul code mtier et un
design unique sur toutes les plateformes.
Techniquement, le principe du Framework
Cordova est de crer une application native
compose uniquement dun composant
WebView, propre la plateforme cible. Ce

composant WebView naviguera simplement


sur lapplication, dont les fichiers (HTML,
CSS, JavaScript, font, images, etc.) auront t
embarqus en tant que ressources locales de
lapplication native.

Accs aux fonctionnalits


du device

Pour pouvoir accder aux fonctionnalits


natives du tlphone, lapplication
dveloppe va pouvoir sappuyer sur les
plugins Cordova. Un plugin Cordova
permet dexposer une fonctionnalit
native du device via une API
JavaScript, qui sera utilisable depuis
lapplication Web. Le rle du plugin
est alors de faire le lien entre lappel
JavaScript et lexcution du code natif,
en fournissant une implmentation
par plateforme. Linterface JavaScript
tant la mme pour chaque
plateforme, lutilisation dun plugin se
fait de manire identique, quelle que
soit la cible.
Par exemple, laccs aux contacts du
tlphone se fait en utilisant le plugin
Contacts, qui expose les fonctions
create, find et pickContact, permettant
respectivement de crer un contact,
de rechercher un contact et dafficher
un composant natif de slection dun
contact.
Apache Cordova met disposition un
ensemble de plugins permettant
daccder aux fonctionnalits basiques
du device, comme les notifications, la
camra, les contacts, lacclromtre,
etc. Dautres acteurs ont galement
cr des plugins, y compris Microsoft
via sa filiale Microsoft Open
Technology, avec notamment un
connecteur Cordova pour Azure
Mobile Services, disponibles pour les
plateformes Windows8, Windows
Phone8, mais aussi iOS et Android.

27

Mobilit
Apache Cordova sappuie galement sur
une communaut active pour dvelopper
de nombreux plugins, majoritairement sur
GitHub, comme un scanneur de code-barre
ou de QR Code, des connecteurs Facebook
ou encore des notifications Push.
Lengouement grandissant autour de
Cordova fait que ce framework devient de
plus en plus complet et permet de
dvelopper des applications de plus en plus
volues, tout en gardant lavantage de
navoir quun seul dveloppement faire
pour cibler plusieurs plateformes.

Intgration avec Visual Studio

Visual Studio2015 inclut un ensemble


doutils permettant de faciliter le
dveloppement dapplications avec
Cordova. Alors quil est ncessaire dutiliser
des lignes de commandes (cli) pour
manipuler une application Cordova (ajouter
une plateforme, ajouter un plugin, compiler
une application, etc.), Visual Studio
encapsule toutes ces commandes dans des
tches de Build, pour retrouver les rflexes
habituels. Pour cela, linstallation, Visual
Studio vous proposera un ensemble doutils
tiers, comme iTunes, node.js, la JVM, le SDK
Android, etc.
Ces outils sont galement disponibles sur
Visual Studio2013, via lextension Multi
Device Hybrid Apps. Le dbug
dapplications Cordova est galement un
point difficile lorsque lon se passe de Visual
Studio. En effet, pour avoir accs aux DOM,
la console, etc. il est ncessaire de passer
par des outils externes, comme VorlonJS ou
Weinre. Ces outils ne permettent pas, par
contre, de dbugger directement le
JavaScript de lapplication. Visual Studio
quant lui propose une exprience de
dbug riche, de manire assez identique
ce quon a lhabitude de voir sur cet IDE, et
ce sur toutes les plateformes (Windows
Phone, Android et iOS). Enfin, pour toute la
partie industrialisation des dveloppements,
Microsoft a fait le choix dintgrer son
diteur des outils open source trs
populaires dans la communaut Web,
plutt que de dvelopper ses propres outils.
NPM est utilis pour grer toutes les
dpendances serveur, bower pour les
dpendances clients. Grunt ou Gulp sont l
quant eux pour mettre en place tous les
workflows de build (compilation du
TypeScript, bundlelification des fichiers CSS,
compression automatique des images, etc.).
Petit bonus, il est possible de lier notre
application sur le store et de crer lapp
package directement depuis lapplication
Cordova ce qui facilite grandement la
publication.

28

Pourquoi Cordova?

Cordova offre le gros avantage de factoriser


la totalit du code applicatif. Toutes les vues
et tout le code mtier seront rutiliss sur
toutes les plateformes.
Lun des avantages de Cordova vient
galement de sa base technique: HTML /
CSS / JavaScript. Si vos quipes possdent
dj des comptences dans le
dveloppement Web, le pas franchir pour
crer des applications natives sera trs
simple, compar leffort ncessaire pour
monter en comptence sur un nouveau
langage ou sur un nouvel environnement.
Il y a quelques annes, Cordova tait critiqu
pour son manque de performance et son
manque dintgration avec le device. Ces
points ont t corrigs, dune part par les
navigateurs mobiles (utiliss par le WebView
Cordova) qui ont des moteurs dexcution
JavaScript beaucoup plus optimiss, et
dautre part par le nombre trs important de
plugins actuellement disponibles. Il est
maintenant possible de crer des
applications Cordova ressemblant sy
tromper des applications natives.

Xamarin

Xamarin peut tre assimil un framework


permettant de dvelopper des applications
mobiles pour iOS, Android et Windows
Phone en sappuyant sur un langage de
dveloppement unique (C# ou F#). Xamarin
permet de mutualiser toute la logique
applicative, grce une bibliothque de
classes portable ou sur un projet partag.
Lun des points forts de Xamarin rside dans
ce que le produit offre aux dveloppeurs:
tout ce qui est ralisable techniquement
avec Objective-C ou Java peut tre fait en C#
avec Xamarin!
Concrtement, cela signifie que tout ce qui
concerne la logique mtier, les accs aux
donnes, la communication rseau, etc. est
partag sur lensemble des plateformes

tandis que linterface graphique est


dveloppe en utilisant les APIs natives,
rendues accessibles en C#.
Xamarin est compos de 4 produits:
u Xamarin.Android : qui reprsente la
surcouche permettant lexcution
dapplications C# sur les plateformes
Android
u Xamarin.iOS (MonoTouch): qui permet
aux applications Xamarin de sexcuter sur
iOS
u Xamarin.Mac : qui offre aux
dveloppeurs la possibilit dexcuter
leurs applications sur OS X
u Xamarin Studio : qui nest rien dautre
quun environnement de dveloppement,
bas sur MonoDevelop, permettant de
dvelopper des applications C# pour
Android (sans disposer de Visual Studio)
ou des applications iOS sous OS X.

Pourquoi Xamarin?

Si lon en croit les possibilits offertes par le


produit, Xamarin semble donc tre
prometteur et se prsente comme la solution
idale pour les dveloppements
dapplications mobiles multiplateformes.
Mais, au-del des fonctionnalits en ellesmmes, lintrt de Xamarin rside aussi et
surtout dans le principe de rutilisation.
En effet, comme nous lavons vu juste avant,
Xamarin offre aux dveloppeurs la possibilit
de dvelopper leurs applications iOS/Android
en utilisant Visual Studio et C# et donc,
implicitement, de rutiliser le savoir-faire
quils ont acquis lors de leurs
dveloppements prcdents.
La courbe dapprentissage est donc
extrmement simple pour les dveloppeurs
ayant lhabitude de lenvironnement
Microsoft: seules les nouvelles APIs lies
lenvironnement cible sont connatre, mme
sil reste ncessaire de connatre les
paradigmes et les concepts des diffrentes
plateformes pour lesquelles une application

Mobilit
est dveloppe, ceci afin de respecter au
mieux les codes de lexprience utilisateur.
Un autre avantage de Xamarin concerne les
possibilits techniques offertes aux
dveloppeurs. En effet, lorsque lon regarde
de plus prs des applications iOS ou
Android, on constate que celles-ci sont trs
souvent peaufines dans les moindres
dtails (animations, gestures, etc.). Avec
Xamarin, il sera possible de reproduire
lensemble de ces petits dtails, car 100%
des APIs sont couvertes! Une collaboration
forte avec Microsoft : en plus des points
cits prcdemment, il faut savoir que
Microsoft et Xamarin travaillent
conjointement pour faciliter le
dveloppement dapplications iOS / Android,
au travers de Visual Studio. Ainsi, si un
partenariat important a t annonc entre
les 2 socits il y a un peu moins de 2 ans, le
produit est maintenant plus fortement
intgr Visual Studio, en proposant,
linstallation, la possibilit dinstaller
Xamarin.

Visual C++
Cross-Platform Mobile

Visual C++ Cross-Platform Mobile de Visual


Studio2015 permet maintenant aux
dveloppeurs de crer des applications
visant les trois grandes plateformes mobiles
du moment avec un unique langage, le
C++. la diffrence dune technologie
comme Cordova, le but nest pas de
sabstraire des patterns et composants de
chaque plateforme, mais plutt de
proposer un langage permettant de les
manipuler directement, sans abstraction.
Ainsi, il devient possible de crer des
applications natives tout en mutualisant du
code entre les diffrentes plateformes.
Lmergence dun tel produit vient en partie
dun constat trs vocateur: 80% des
applications les plus populaires sous
Android ont t dveloppes en C++. Le
choix de ce langage par les grands diteurs
derrire ces applications nest pas un
hasard: il sagit du dnominateur commun
entre ces trois plateformes. Il offre la fois
toute la souplesse requise pour manipuler
les APIs natives de chaque plateforme tout
en permettant une mutualisation maximum.
De plus, des librairies maintenant trs
populaires parmi les dveloppeurs C++
(comme openCV pour le traitement
dimage ou Qt pour les interfaces
utilisateurs) sont disponibles sous chacune
de ces plateformes, ce qui montre dune
part luniversalit des langages C et C++, et
offre dautre part des possibilits
intressantes pour les dveloppeurs
dapplications souhaitant bnficier de ces

librairies. Visual C++ Cross-Platform Mobile


offre tout loutillage ncessaire au sein dun
unique outil: Visual Studio. En effet, il peut
tre assez contraignant et ardu de matriser
les diffrents compilateurs C/C++ de
chacune des plateformes: CLang, GCC ou
encore VCC. Comme son habitude,
Microsoft fournit un outil maniable de par la
configuration, mais prt lemploi ce qui
permet de se concentrer rapidement sur le
code. Le dveloppeur habitu de Visual
Studio disposera de la plupart des outils qui
font sa force. On y trouve par exemple un
dbuggeur avec la possibilit dinspecter du
code lexcution, de lexcuter en pas-pas, etc. Il est aussi possible dy dvelopper
une application Android sans device laide
de lmulateur intgr. En revanche, il sera
ncessaire de disposer dune machine
excutant OS X et Xcode pour compiler une
application iOS. Toutefois, le debugging se
fera au travers de Visual Studio.

Concrtement, qui sadresse


Visual C++ Cross Platform
Mobile?

Tout dabord et naturellement, aux


dveloppeurs familiers du langage C++
souhaitant continuer utiliser ce langage
sans devoir absolument apprendre celui
dune des plateformes cibles.
Mais aussi aux dveloppeurs de jeux: il
sagit en effet dune solution permettant de
travailler au plus prs de la machine et
dattaquer des librairies graphiques comme
OpenGL (pour Android et iOS) et DirectX
(pour Windows) et dobtenir les meilleures
performances possible. Ainsi Visual Studio
dispose mme de template de projet prt
lemploi gnrant un projet Android et un
projet Xcode avec une base de code
commune crite en C++, dont le rendu
graphique est effectu via OpenGL. Enfin les
dveloppeurs dapplications au sens large
souhaitant mutualiser une partie de leur

29

Mobilit
code, pourront le faire en C++. En effet, on
peut imaginer quune partie de lapplication
soit dveloppe dans le langage de la
plateforme, notamment pour tout ce qui
concerne les interfaces utilisateurs (en effet,
mme si ces APIs sont attaquables en C++,
cela peut reprsenter un effort consquent)
et que dautres briques soient dveloppes
en C++, pour des raisons de performances
et/ou pour la possibilit de mutualiser du
code logique. Chacune des plateformes
dispose ensuite de moyens daccder aux
branches de codes crites en C++ depuis le
code Java, Objective-C ou C#.

Windows Bridge

Dans le cas o lapplication existe dj sous


Android et iOS, la solution du
dveloppement cross-plateformes nest pas
forcment la plus intressante.
Pour cette situation, Microsoft propose les
Windows Bridges. Windows Bridge est une
passerelle propose par Microsoft pour que
les dveloppeurs iOS, Android puissent
porter leurs applications vers Windows10.
Cet outil open source, encore en preview
aujourdhui (octobre 2015), permet, avec
une lgre adaptation, de garder le code
natif (Objective-C ou Java) de lapplication
pour crer une version fonctionnelle de
celle-ci sur ce nouveau systme
dexploitation. Avec Visual Studio, le
dveloppeur iOS ou Android peut donc
raliser une version de son application pour
ce nouveau march qui couvre plusieurs
priphriques (ordinateur, tablette,
smartphone, Xbox ), et ce sans connatre
lenvironnement Windows! La version
Android nest disponible pour le moment
que pour quelques chanceux, mais la
version iOS est disponible sur GitHub
(https://github.com/Microsoft/WinObjC).

Debug Cross-Plateformes

Visual Studio2015, offre un ensemble


complet doutils de Build et de Debug pour
les plateformes Windows, Windows Phone,
iOS et Android.

ripple

Ripple est une extension du navigateur


Chrome permettant dexcuter lapplication
Cordova dans le navigateur, en mulant un
environnement se rapprochant de
lenvironnement mobile.
Ripple propose actuellement dmuler
plusieurs devices, notamment des iPhone,
iPad, BlackBerry ou Android. Lavantage de
cette extension est de pouvoir dbugger
rapidement son application depuis le
navigateur, sans avoir la dployer sur un
device, ou utiliser un mulateur. Il est

30

galement possible dutiliser les outils


dveloppeurs de Chrome pour dbugger
lapplication, ce qui arrtera le dbuggeur
de Visual Studio.
Il est possible de modifier certaines
proprits du device, comme son
orientation, sa position gographique, la
batterie, de modifier lacclromtre, de
dclencher certains vnements (Passage en
mode avion, etc.) et bien dautres.
Ripple sexcutant sur le navigateur, il ne
peut pas excuter les plugins Cordova, mais
propose un mcanisme permettant de saisir
manuellement les donnes qui auraient d
tre retournes par lappel au plugin.
Ripple reste donc une solution trs
restreinte, mais fonctionnelle aux premires
phases de cration dune application, mais
ne permet pas de se substituer totalement
aux mulateurs et aux devices.

Windows Phone

Visual Studio2015 permet de dbugger et


dployer une application native, Xamarin ou
Cordova sur Windows / Windows Phone que
a soit un mulateur ou un device physique.
De grandes amliorations ont t apportes
pour le dbogage, notamment au niveau du
DOM explorer afin dinspecter une
application pendant son utilisation en temps
rel.

Android

Visual Studio2015 intgre un nouvel


mulateur Android bas sur la version Kitkat
fonctionnant sous Hyper-V comme les
mulateurs Windows Phone, ne pas
confondre avec Google Android Emulator
qui correspond lmulateur fourni avec le
SDK Android. Il est utilisable pour dbugger
des projets Apache Cordova, C++ mobile ou
Xamarin. Contrairement lmulateur fourni
avec le SDK Android, lmulateur de Visual
Studio est trs performant et permet de
profiter dun environnement de test fidle
aux devices rels avec une exprience de
dbug quasi similaire celle sur Windows
Phone.

iOS

Le dveloppement dune application iOS


ncessite lutilisation dun Mac et de lIDE
Xcode. Visual Studio2015 ne permet pas
dchapper cette contrainte, mais intgre
un mcanisme permettant de dbugger
directement depuis un device iOS branch
un Mac. Ce mcanisme ncessite
linstallation dun agent sur le Mac, qui
servira de lien entre Visual Studio et Xcode
et des Xcode Command-line tools. Cet
agent est disponible sous la forme dun
package npm: remotebuild.

Une fois la communication tablie entre


Visual Studio et lagent, il est possible de
dbugger les applications sur un iPhone,
branch au Mac, ou sur un mulateur
iPhone. Techniquement, Visual Studio
enverra en HTTP les informations du projet
qui seront interprtes par Xcode. Ensuite,
le Mac transmettra les donnes du device
ou de lmulateur Visual Studio qui pourra
retranscrire les informations comme sil
sagissait dun dbug en local.

Conclusion

Depuis les premires versions bta de Visual


Studio2015, Microsoft a mis un accent
particulier lintgration doutils de
dveloppement cross-plateformes. Dans sa
version finale, Visual Studio se positionne
ainsi en tant quoutil incontournable pour
dvelopper des applications crossplateformes, aussi bien en utilisant Xamarin,
C++ ou Cordova. Microsoft a galement fait
le choix de souvrir encore plus au monde
de lopen source en intgrant son IDE
lutilisation de frameworks trs populaires
comme npm, bower ou gulp. Ajoutez cela
tous les outils dj disposition depuis
quelques annes, comme le mcanisme de
plugin (Resharper, GhostDoc, etc.) ou
lintgration doutils collaboratifs (TFS, VSO,
Git, etc.), Visual Studio est un IDE plus
complet que jamais.
Reste maintenant pour vous choisir la
meilleure solution pour vos
dveloppements cross-plateformes. Il ny a
pas de choix vident, tout dpend de votre
contexte, de vos connaissances, de vos
habitudes. Mais pour tablir des rgles
gnrales, on pourrait dire que Apache
Cordova est plus adapt si vous avez
lhabitude du dveloppement Web ou si
vous souhaitez galement crer un site
responsive. Si, au contraire, vous tes plus
un dveloppeur .NET et que votre
application possde beaucoup de rgles
mtiers, Xamarin est sans doute loutil dont
vous avez besoin.
Si vous tes laise avec C++, C++ Cross
Platform Mobilevous permettra de crer
des assemblies ou framework crossplateformes afin de gagner en productivit
et maintenabilit. Enfin, Windows Bridge est
utiliser lorsque vous souhaitez porter une
application Android ou iOS sur Windows
moindre cot.
Dans tous les cas, loutil de dveloppement
universel capable de rpondre vos besoins
sera Visual Studio!
p

Containers, Docker, Azure, Windows


Server et Visual Studio

Docker

Rgulirement, lindustrie des systmes dinformation voit son


volution rythme par des innovations ou des transformations
majeures. Les points dinflexion de cette courbe technologique vont
alors gnralement de pair avec lampleur de lintrt quils
suscitent. Et aujourdhui, nombreux sont ceux qui sintressent aux
containers et Docker
Stphane Goudeau
MicrosoftDX Architect

En particulier Microsoft, avec le support de


Docker sur la plateforme Microsoft Azure, sa
Marketplace et Windows Server2016. Rien
dtonnant ce que cet engagement se
manifeste maintenant avec Visual Studio: les
caractristiques dun container (isolation,
optimisation des ressources, vitesse de
dploiement et de dmarrage) en font un
candidat idal pour les tests et
dveloppement.
En effet, le principe dun container est de
donner lillusion un processus quil est le
seul sexcuter sur la machine, en isolant,
dans un espace de noms virtualis, les
ressources auxquelles on souhaite lui donner
accs. Ainsi, un conteneur ne peut accder
aux fichiers ni interagir avec des applications
qui se situeraient en dehors de son espace.
Voil qui favorise le partage et la
rutilisation du container ou de son image
par dautres acteurs du cycle de vie logiciel.
La consommation des ressources est
galement optimise, car fichiers, rpertoires
et services en cours dexcution sur lOS sont
partags entre les conteneurs. En
consquence, le dploiement et le
lancement des conteneurs multiples sur le
mme hte sont extrmement rapides. Cette
efficacit du conteneur est donc de nature
favoriser les multiples itrations du
dveloppement, avec une vision trs
Lean de loptimisation des ressources
eux seuls, ces lments suffisaient
justifier une volution de Visual Studio
ciblant lutilisation de la nouvelle gnration
de containers incluse dans Windows
Server2016. Mais avec le support de Docker,
limpact va bien au-del. En effet, Docker
propose un ensemble de commandes
communes pour la gestion des containers,
un modle de packaging permettant de
dcrire leur contenu (leur image) et un
mcanisme de dploiement permettant de
les distribuer sur nimporte quel hte, quil
soit Linux ou Windows, voire de les

tlcharger vers des rfrentiels privs ou


publics (Docker Hub). Il sinscrit donc
parfaitement dans une dmarche DevOps
par sa capacit acclrer le cycle de vie de
lapplication et facilite limplmentation
darchitectures Micro-Services par la
dcomposition en containers.

DevOps et architecture
Micro-Services

Visual Studio2015 se devait donc


daccompagner cette volution. Il est donc
dsormais possible de dployer un container
directement depuis Visual Studio grce aux
Visual Studio Tools pour Docker.
Lextension Docker pour Visual Studio
permet de configurer lenvironnement
Docker, fond sur une architecture clientserveur. Le client Docker communique avec
le serveur hte Docker grce un service, le
Docker engine, qui assure la gnration
et la publication des images ainsi que leur
excution au sein de containers. Elle installe,
sur le poste de travail Windows du
dveloppeur, linterface en ligne de
commande Docker1.8.1, pour la gestion et le
diagnostic des conteneurs. Elle automatise la
configuration du serveur hte Docker, une
machine virtuelle Windows ou Linux, et la
dploie sur la plateforme Microsoft Azure ou
en local (custom host). Cette machine
virtuelle est dcrite par un template Azure
Resource Manager (ARM) et son
dploiement est assur par un script
Windows PowerShell. Enfin, elle gnre
automatiquement les certificats permettant
de communiquer en toute scurit (via
Transport Layer Security - TLS) depuis

lenvironnement de dveloppement vers le


serveur hte Docker.
Elle permet de directement publier une
nouvelle image de container ou une
application dans un container sur le serveur
hte Docker. Elle gnre galement les
fichiers MSBuild, Bash (pour Linux ou Mac),
ou PowerShell, afin de pouvoir lancer cette
publication, que lon peut galement
dclencher directement en ligne de
commande. Enfin, elle gnre un Dockerfile
dont le contenu variera en fonction du
systme Windows ou Linux et que lon peut
utiliser comme point de dpart pour ajouter
ou modifier le conteneur. En effet, ce fichier
contient toutes les commandes quil faudrait
excuter manuellement pour parvenir la
construction dune image de Docker. Dans
lenvironnement propos aujourdhui, il sagit
dune application console ou dune
application Web ASP.NET 5. Comme
lindique le Dockerfile, lorsque la cible est un
environnement Linux, cest le runtime Mono
qui sera utilis alors que sous Windows, cest
le .NET Core runtime. Nul doute que le type
de projets Visual Studio, que lon pourra
dployer dans des containers par le biais de
cette extension, devrait progressivement
senrichir
Un fonctionnement de Docker au sein de
containers Windows rigoureusement
symtrique celui que lon connaissait dj
pour Linux, outill avec un environnement de
dveloppement aussi complet que Visual
Studio, complt par les facilits offertes par
Microsoft Azure, voil de quoi assurer un
futur prometteur Docker et, qui sait, peuttre transformer le mythedu Write once,
run anywhere en ralit?
p

31

IoT

Visual Studio 2015 & IoT

LInternet des Objets deviendra tt ou tard une commodit. De plus en plus de projets seront impacts par
ce phnomne. Au mme titre que lapproche mobile en son temps, nos solutions auront de grandes
chances de devoir traiter un volet objets connects. La capacit dlivrer rapidement des solutions
intgres pourra faire la diffrence entre un acteur et un autre.
Alex Danvy
Evangliste chez Microsoft

Les possibilits sont nombreuses, nous


allons citer quelques exemples de projets
lis lobjet lui-mme. Pour cela, nous
allons nous appuyer sur le projet Open
Source Connect The Dot disponible sur
GitHub
https://github.com/Azure/connectthedots .
Ce projet illustre la connexion dobjets au
Cloud en utilisant Microsoft Azure et des
objets trs varis.

raspberry Pi

Le trs versatile Raspberry Pi2 est un


vritable ordinateur qui permet lexcution
dun systme dexploitation la diffrence
de cartes moins volues. Historiquement,
diverses distributions de Linux sont
disponibles, mais aussi depuis peu,
Windows10 IoT Core, une version allge et
ddie aux objets connects de Windows10
offre une option supplmentaire pour les
concepteurs. Plusieurs langages peuvent
servir animer les objets. Que vous
souhaitiez travailler sur des scripts Python
(Linux uniquement) ou Javascript/Node.JS

(utiliser le plug-in Node.JS Tools IoT


extensions https://github.com/ms-iot/ntvsiot), ou
rutiliser vos connaissances C# (Mono sur
Linux avec la librairie RaspberryPi.net
https://github.com/cypherkey/raspberrypi.net et
Universal Windows Platform sur Windows
IoT Core) vous profiterez de toute la
puissance de lenvironnement intgr de
Visual Studio2015.
La cration dune application multi-appareil
(PC, Tablette, smartphone, IoT), quelle soit
visuelle ou non, est rendue possible par
Windows IoT Core et son modle de
dveloppement Universal Windows Platform
(Fig. 1). De la conception visuelle avec Blend
au dbogage pas--pas en passant par le
partage de code ou loptimisation assiste
des performances, cest toute la puissance
du Visual Studio qui est mise contribution
pour la mise au point de vos objets. Il existe
un kit de dmarrage officiel complet et trs
abordable qui permet dvaluer la
plateforme, disponible chez Adafruit
http://www.adafruit.com/windows10iotpi2

Arduino

La fantastique plateforme Arduino se voit


accompagner dun outil de dveloppement
parfaitement fonctionnel, mais assez
rudimentaire. Grce ses capacits
dextensions par plug-ins notamment, Visual

Studio2015 permet dtre enrichi de


nouvelles fonctionnalits. Visual Micro
(http://www.visualmicro.com) en est un excellent
exemple. Compatible avec toutes les cartes
Arduino, il dcuplera votre productivit. Tout
y est: Coloration syntaxique dtaille,
IntelliSense, dbogueur, etc. (Fig. 2)

.net Micro Framework

Le .net Micro Framework est la version


embarque du .net Framework, fonctionnant
sur des micro contrleurs (sans systme
dexploitation). Trs lger, peu nergivore, il
ouvre toute une palette de scnarii. Son
caractre Open Source (http://netmf.github.io) a
favoris le dveloppement de nombreuses
cartes, notamment des cartes compatibles
broche broche avec Arduino, dnommes
Netduino (http://www.netduino.com), mais aussi
Gadgeteer (http://www.netmf.com/gadgeteer),
une initiative originale issue des laboratoires
de Microsoft Research Cambridge.
Gadgeteer relve le dfi de permettre des
dveloppeurs de logiciels de raliser des
montages sans peine, car assist
visuellement et sans soudure. (Fig. 3)

Cloud

Si les objets connects sont les yeux, les


oreilles, voire les bras du systme, le cerveau
reste les serveurs. Pour disposer dun

Fig.1

32

Conception visuelle et
non visuelle pour
Windows IoT Core pour
Rapsberry Pi2

IoT
maximum de puissance
un cot trs modeste, il
faut sorienter vers le
Cloud. Des services
spcialiss tels que Azure
IoT Services permettent de
surmonter sans effort les
problmatiques auxquelles
lIoT doit faire face:
u Scurit
u Continuit de service
u Mise lchelle
u Enregistrement et suivi
des appareils
u Ingestion massive de
donnes
u Calculs en temps rel
u Stockage
u Scnarios intelligents,
machine learning
u Business Intelligence

Edition d'un projet Arduino dans Visual Studio grce VisualMicro

Fig.2

Visual Studio2015 permet


de dvelopper et de
dployer une solution
Cloud IoT trs complte
simplement, sans ligne de
commande complexe,
directement depuis
lditeur. (Fig. 4)

Solutions
connectes

Une solution connecte


implique la mise en uvre
de projets trs diffrents,
quil sagisse dun backend
dans le Cloud ou On
Premise, dun frontend
web pour le pilotage, ou
de code dployer sur les Conception visuelle de circuits Gadgeteer
objets. Visual Studio2015
permet dintgrer
lensemble de ces projets
au sein dune mme
solution. Vous bnficierez
ainsi dune productivit
maximale:
lenvironnement que vous
connaissez, une vision
globale de la solution
logicielle, une
mthodologie unique, un
seul dpt de source et
une seule chaine de
production. Vous pouvez
mme dboguer votre
code pas pas et suivre le
cheminement de la
donne de lobjet vers le
Cloud!
p
Dploiement d'une unit de traitement programme (WebJob)

Fig.3

Fig.4

33

MSDN Platforms

MSDN Platforms

Labonnement MSDN Platforms fait partie des offres MSDN, il


propose un accs tous vos environnements hors production. Il
ninclut pas loutil de dveloppement Visual Studio. Pourtant, il est
celui dont vous avez peut-tre le plus besoin pour le
dveloppement de vos applications, encore plus si vous adoptez
une dmarche de type DevOps.
Cdric Leblond
Consultant Meritis
Accompagne les quipes sur ses
sujets prfrs
DevOps et Agilit.
Est aussi
MVP ALM.

Il sadresse potentiellement toutes les


parties prenantes dans le cycle de vie de
vos applications: Ops, administrateur IT,
DBA, chef de projet, manager,
ScrumMaster, Product Owner...
Il sadresse galement aux dveloppeurs
qui codent avec dautres outils de
dveloppement que Visual Studio. Ils
bnficient alors eux aussi de laccs
tous les environnements hors
production, outils et services dcrits
dans cet article.

Des nombreuses
ressources

Cet abonnement offre un accs complet


la plateforme de collaboration ALM de
Microsoft, quelle soit mise en place par
vos soins Team Foundation Server (TFS)
ou hberge Visual Studio Online (VSO).
Le tlchargement, et surtout
lutilisation pour le dveloppement et
test sont inclus pour tous les
environnements et serveurs Microsoft
avec en plus des classiques Windows et
SQL Server: SharePoint, Exchange,
Power BI, Dynamics Votre
abonnement MSDN Platforms vous
permettra galement de bnficier
automatiquement des derniers correctifs
et versions des logiciels ds leur
disponibilit.
Labonnement propose aussi de laide
en cas de problme technique. Vous
tes prioritaires sur les forums MSDN et
galement sur les forums Technet. Si le
problme est important, vous pouvez
discuter en ligne sur le MSDN chat, ou
encore demander de laide Microsoft
via les 2 tickets de support technique
inclus dans chaque abonnement MSDN.
Labonnement vous aide aussi
maintenir vos connaissances techniques
en incluant 2 cours par an du catalogue

34

Microsoft e-learning et 30 cours


Pluralsight votre disposition
pendant 1 an.
Jai rcemment accompagn une
quipe dans sa dmarche DevOps.
Cette quipe agile dveloppe une
solution web avec un Backend bas sur
.Net, SharePoint et SQL Server, et le
Front sur HTML5/Javascript avec
AngularJS. Elle est compose de 3
dveloppeurs .Net, 1 expert SQL, 1 Ops
(administrateur SharePoint/Windows), 2
dveloppeurs AngularJS, 2 spcialistes
du test, 1 ScrumMaster et 1 Product
Owner. Les dveloppeurs .Net utilisent
principalement Visual Studio2015, ils
sorientent vers un abonnement MSDN
Visual Studio Enterprise. Lexpert SQL et
les dveloppeurs AngularJS utilisent
dautres outils pour coder, ils accdent
eux aussi SQL Server et SharePoint
pour leurs dveloppements: un
abonnement MSDN Platforms, par
personne, le permet. Les spcialistes du
test travaillent avec Microsoft Test
Manager, ils accdent aussi
SharePoint: MSDN Test Professional
rpond ce besoin. Pour la gestion du
backlog, du travail, du code source et
dploiement continu, lquipe exploite
les fonctionnalits de TFS. Le
ScrumMaster et le ProductOwner
doivent minima acqurir une CAL. Ils
aident lquipe et surtout demandent
des feed-back aux parties prenantes, un
abonnement MSDN Platforms est alors
appropri.
Avec 85/mois de crdit Azure offert,
chacun bnficie en outre
denvironnements performants de
dveloppement et test.
Bien sr, un abonnement MSDN nest
pas systmatiquement ncessaire. Si un
manager suit lavancement de lquipe
via des comptes-rendus crs partir
des donnes TFS, cela est gratuit. Les
utilisateurs finaux peuvent utiliser les
environnements et applications
dveloppes dans le cadre de tests

MSDN PLATFOrMS

Outils

Team Foundation Server + CAL


(accs toutes les fonctionnalits)

Visual Studio Online Advanced Plan


(accs toutes les fonctionnalits)
Crdit Azure gratuit 85/mois

Produits en tlchargement
pour le dveloppement et le test
Windows, Windows Server,
Windows embedded
SQL Server

SharePoint, Exchange, Dynamics


Power BI Pro

Et les autres
(liste complte http://bit.ly/ProdMSDNAbo)

Formation

30 cours Pluralsight sur 12 mois


(liste http://bit.ly/Plural30MSDN)

2 cours par an dans les collections


Microsoft E-Learning
MSDN Magazine

Support

2 tickets sur incidents techniques

Priorit sur les forums MSDN et Technet


Discussion en ligne MSDN

Offres exclusives

-30% sur labonnement annuel Pluralsight


-50% sur le service UserVoice la
premire anne

Les offres changent rgulirement


(liste http://bit.ly/OffresMSDN)
Juillet 2015

dacceptation (UATs) sans licence


particulire. Ils peuvent aussi crer et
suivre des bogues ou volutions grce au
niveau daccs Stakeholder gratuit pour
TFS2015 ou VSO.

En rsum

Les possibilits offertes par MSDN


Platforms sont multiples et riches. Pour en
tirer le maximum, je vous invite consulter
rgulirement la page de votre compte,
tous les bnfices y sont regroups et mis
jour rgulirement.
p

http://www.visualstudio.fr: le site

de lquipe France.
Retrouvez toutes les
informations produits,
livres blancs en
Franais et lactualit
de Visual Studio et
MSDN. Si vous avez un projet ou une
question, contactez lquipe marketing et
vente au 01 45 36 77 17 ou
msdnfr@microsoft.com
La liste de nos partenaires revendeurs et
services est aussi disponible sur ce site.

Microsoft
Virtual
Academy:

Ceux qui russissent


ne cessent jamais
dapprendre et les
technologies majeures ne cessent jamais
dvoluer. Microsoft Virtual Academy (MVA)
propose des formations Microsoft en ligne
entirement gratuites, menes par des
experts dans 12 langues diffrentes.
Nous vous recommandons notamment
le cours suivant: http://aka.ms/mvavs

Ressources

pour dcouvrir comment utiliser la


fonctionnalit attendue? Cest ce que
propose ce site: un ensemble dexemples
sur des points prcis qui vous permettront
de progresser et dapprhender facilement
les diffrents aspects du langage.
http://code.msdn.microsoft.com/

Channel 9:

Ce site regroupe les


vidos des personnes
qui conoivent les
produits chez
Microsoft. Il est
galement un lieu
dchange autour des
technologies. Les
nombreux vnements
Microsoft qui
ponctuent lanne sont pour la plupart
disponibles sur ce site, notamment
lvnement Connect() et lvnement de
lancement mondial de Visual Studio 2015.
http://channel9.msdn.com

Le site MSDN (Microsoft Developer


Network) runit lensemble des ressources
techniques et des services dont le
dveloppeur sur technologies Microsoft a
besoin. Vous pouvez galement participer
aux discussions dans les Forums MSDN,
rejoindre les communauts de dveloppeurs
et rencontrer les experts Microsoft France.
Inscrivez-vous sur ce site la newsletter
MSDN. Elle propose le meilleur des
informations techniques en provenance des
quipes de dveloppement de Microsoft
France et de Microsoft Corp, mais aussi des
communauts francophones.
http://msdn.microsoft.com/

Visual Studio Community:

Lassistant Visual Studio:

en ajoutant un assistant Visual Studio vous


pourrez suivre des tutoriaux interactifs, vous
pourrez lancer tous les pas--pas crs par la
communaut. LAssistant Visual Studio est un
plugin additionnel Visual Studio qui permet
de lire des cours directement dans lIDE tout
en permettant dinteragir avec celui-ci pour
effectuer des tches comme Ouvrir un fichier,
Ouvrir une solution, Remplacer du texte,
Ajouter un item dans un projet, Build une
solution... et bien dautres!
http://aka.ms/assistantVS

Developer code samples:

Besoin daide pour utiliser une nouveaut du


framework ou encore dbuter un nouveau
projet? Quoi de mieux quun bon exemple

un IDE complet gratuit, des outils de


dveloppement mobiles cross-plateformes
pour Windows, iOS et Android, et laccs
des milliers dextensions.
Cette dition de Visual Studio est disponible
gratuitement pour les tudiants, les
contributeurs open source, les start-ups, les
dveloppeurs indpendants et sous
certaines conditions les PME. Pour
tlcharger cette dition:
http://aka.ms/VScommunityFR

Essayez Microsoft Azure


gratuitement pendant
un mois:

inscrivez-vous et obtenez 170 utiliser sur


tous les services Azure: machines virtuelles,
bases de donnes SQL, sites Web,
Push notifications sur mobile, diffusion en
continu de mdias, Active Directory...
Tous les dtails sur http://azure.com

Ppinire Microsoft Azure


et Windows

Bnficiez dun programme


daccompagnement personnalis et gratuit,
de la mise disposition de ressources
techniques un coaching technique et du
conseil business, pour vous aider dans le
dveloppement de vos applications
Windows ou Cloud. Plus dinformations sur
ce lien :http://www.pepinieremicrosoft.com

BizSpark:

est un programme
rserv aux start-ups
de logiciels: socits de moins de 3 ans,
moins de 1 million de $ de CA et dont
lactivit principale est la cration dune
solution logicielle on-premise ou dans le
Cloud. Les socits membres de BizSpark
bnficient de licences de dveloppement
via un accs MSDN Enterprise, du support,
130 par mois de crdits Azure pour 5
associs pendant 3 ans. Plus dinformations:
http://www.microsoft.com/bizspark/

LAcclrateur Microsoft
Ventures Paris:

Un des 7 acclrateurs startup


de Microsoft dans le monde,
notre programme de 3 mois
propose un vrai tremplin pour
votre entreprise. Nous
travaillons notamment avec
des startups fort potentiel
international sur le
dveloppement de leur
produit, business et aussi le financement
de leur entreprise.
Pour plus d'informations, rendez-vous sur
microsoftventures.com/paris

Evnements

Chaque mois plusieurs vnements gratuits


vous sont proposs pour dcouvrir nos outils
http://aka.ms/vseventsfr

35