Productivité Performance...

24
Productivité Performance Mobilité

Transcript of Productivité Performance...

Page 1: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

Productivité Performance Mobilité

Page 2: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

Visual Studio a 20 ans ! La première « version » date de 1995.Depuis, nous avons connu 10 versions majeures, la dernièreétant Visual Studio 2015, dévoilée en automne 2014. VisualStudio a toujours accompagné le développeur, supporté lesnouveaux Windows et les évolutions techniques ettechnologiques. Que de changements en 20 ans et passeulement sur l’ergonomie et l’interface !

Visual Studio 2015 (VS2015) est un concentré de nouveautéset d’évolutions : nouveau framework .Net, nouvellearchitecture de compilation, nouveau ASP.Net… VS2015 serale compagnon idéal pour développer des applicationsWindows 10. Visual Studio sera, plus que jamais, tourné versle développement mobile et le Cloud Computing(développement Azure et intégration avec Visual StudioOnline).

Dans ce livre blanc, nous avons voulu mettre l’accent surMobile First, Cloud First et comment VS2015 améliore laproductivité du développement et le confort deprogrammation au quotidien. VS2015 apporte de nombreusesnouveautés et améliorations pour le développeur :Intellisense, refactoring, tooltips, Code Analysis, Code Lens,Code Map, Smart Unit Tests, NuGet, Extensibilité… Plus quejamais, Visual Studio chouchoute le développeur !

Autre point fort de VS2015 : le développementmultiplateforme mobile, que ce soit en natif ou enJavaScript/HTML/CSS. Et VS2015 laisse le choix : C++, ApacheCordova, Xamarin. Le développeur peut développerrapidement ses apps pour Android, iOS et Windows. MobileFirst n’est pas que du marketing, c’est une réalité !

Dans ce livre blanc, d’autres aspects de Visual Studio sontabordés : comment faire des builds dans le Cloud, utiliser lespuissantes fonctions de Release Management, monter desscénarios de Load Testing (dans le Cloud), et découvrir lapuissance, parfois insoupçonnée, du Hub and Diagnostics deVisual Studio 2013.

François Tonicéditeur & rédacteur en chef de Programmez !

2

édito Sommaire

Build avec Visual Studio Online 3

Load Testing 4

Orchestrez vosdéploiements avec ReleaseManagement 6

Visual Studio et la mobilité 8

Boostez votreproductivité avec Visual Studio 2015 13

Debugging &performances 17

Visual Studio 2015 20

DevOps, Dev/Tests 21

MSDN Platforms 22

Ressources 23

Visual Studio : de 2013 à 2015

Réalisation : NEFER-IT / Programmez !. Siège social : 7 avenue Roger Chambonnet 91220 Brétigny sur Orge. Directeur de la publication / rédacteur en chef : François TonicCoordination Microsoft : Evlampia Thoreau - Maquette : Pierre Sandré - Relecture : Olivier Pavie - Imprimé en France. Février 2015. - Photos et illustrations tous droits réservés.

Page 3: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

3

Build dans le Cloud

Build avec Visual Studio OnlineLe processus de build est un élément important dans la vie d’un projet. En effet dans une intégrationcontinue, il permet de valider que le code source compile suite à chaque modification. En exécutant lestests, il est aussi le garant qu’aucune régression n’est introduite. Enfin il fournit un processus commun degénération des binaires et peut aussi assurer leur déploiement sur un environnement de développement,d’intégration ou encore de production. C’est donc un élément majeur du cycle de vie d’une application.

Comment créer un buildLa première étape consiste à se diriger versla rubrique « Builds » du « Team Explorer »de Visual Studio. Si vous avez déjà créé desbuilds avec TFS, le processus est identiqueFig.1. Dans cette section du « TeamExplorer », vous pouvez créer votre build viale bouton « New Build Definition ». Cedernier déclenchera l’ouverture de l’écran deconfiguration qui regroupe plusieurs ongletset vous permettra de paramétrer lesdifférentes options du build. Les deux plusimportants sont « Trigger » et « Process ». Lepremier permet de configurer la manièredont sera déclenché le build : de façonmanuelle, lors de chaque check-in ou encoreà un horaire déterminé par exemple. Lesecond quant à lui contient le paramétragedu processus de génération. Pour terminer lacréation, il suffit de sauvegarder leparamétrage par défaut et vous aurez alorsun build manuel qui compilera votre projetet exécutera les différents tests disponibles.Pour aller plus loin, vous pouvez customiserles différents paramétrages disponibles. Pourdes besoins spécifiques, vous pouvezégalement éditer le template de build. Vousaurez alors accès au workflow complet quisera exécuté Fig.2.

Limitations par rapport à TFSLe contrôleur de Build étant hébergé dans leCloud, il n’est pas possible de le configurer

ni d’avoir accès à la machine l’hébergeant.De ce fait découle un certain nombre decontraintes qu’il faut avoir à l’esprit. Parexemple le processus de build ne pourra pasutiliser un logiciel autre que ceux installéspar défaut. Ensuite le build ne devra pasexcéder une heure et occuper plus de 75 Go.Enfin il ne devra pas avoir besoin desprivilèges administrateurs ni être en modeinteractif. Concernant le premier point, vouspouvez retrouver la liste des outilspréinstallés à l’adresse suivante :http://goo.gl/JOHE4D.Si toutefois vous rencontriez une de cescontraintes, la meilleure solution est d’utiliserun contrôleur local pour les build enquestion, les autres pouvant être hébergésdans le Cloud séparément.

Déploiement sur AzureDans le cadre d’un développement sedestinant à être hébergé sur Azure, vousavez la possibilité de configurer ledéploiement automatique de votre site lorsde chaque check-in. Pour cela il suffit de serendre sur la page de votre « Website » duportail Azure. Sur cette dernière vousretrouverez l’option « Integrate sourcecontrol ». Cette dernière vous permetd’associer votre « Team Project » au« Website » Fig.3. Lorsque l’association seraeffectuée, vous pourrez constater qu’unnouveau build est disponible dans VisualStudio. Pour terminer le processus, il fautaller sur l’onglet « General » pour activer lebuild. Ensuite, dansl’onglet « Process » ilfaut paramétrer lechemin du « sln »correspondant àvotre projet etterminer enenregistrant laconfiguration Fig.4.Maintenant lors de

chaque commit, un build sera déclenché etvotre site sera compilé et déployé sur votre« Website ».

Build vNextLe build de TFS n’a quasiment pas évoluédepuis TFS 2010 : le build est un processussensible qui se prête mal à de grossesévolutions à chaque version de TFS. Lamigration de tous les builds pourrait être unfrein à la migration. Brian Harry a annoncélors de la conférence Connect de novembre2014 une révolution : le système de build vachanger pour s’adapter aux nouveaux défisdu développement d’application moderne :Cloud & Cross Platform. De plus cettenouvelle version qui fonctionnera enparallèle de la version courante aura lesavantages suivants :u Plus besoin de Visual Studio pour éditer

les builds,u Historique des modifications,u L’architecture des contrôleurs/agents a été

assouplie,u Plus de Workflow Foundation !

ConclusionLe build est la première étape dans leprocessus d’industrialisation etd’automatisation de vos développements,donc ne la négligez pas. Testez les différentsmodes de déclenchement, déployez enstaging, activez les tests : toutes cesfonctionnalités vous feront gagner du tempset en qualité. p

Fig.1 Fig.2Fig.4

Pierre-Henri GacheConsultant senior chez CellenzaCellenza - SoftwareDevelopment Done RightBlog : http://www.pierrehenrigache.com/

Michel PerfettiConsultant senior chez Cellenza

MVP VS ALMBlog : http://www.buildmeimfamous.net

Twitter : @miiitch

Fig.3

Page 4: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

… mais dans la pratique, difficile à construireEn pratique, mettre en place la solution detests adéquate peut s’avérer complexe.L’infrastructure hébergeant la solution de testdoit être suffisamment performante pourpouvoir supporter la charge produite par lesinjecteurs de stress, ces derniers devront êtresuffisamment paramétrables pour proposerplusieurs types de scénarios de test, etc.Difficile de justifier de tels investissements (entemps et en argent) pour une solution dontl’usage et la valeur ajoutée peuventapparaître peu évidents pour des décideursloin de l’IT.

Cloud load testing avec VSO,la solutionPour faire face à cette problématique, VisualStudio (depuis la version 2013 Ultimate) etVisual Studio Online (VSO) proposent unesolution de test basée sur la plateformeAzure nommée Web Performance and LoadTest. Cette solution est la réponse aux peines

Load testing, indispensable…Dans un monde hyper connectéoù les sites Web et autres Appssont notre quotidien, tester lesperformances de ces derniers quece soit avant une release ou bienrégulièrement pendant le cycle devie de l’application devientindispensable. Une telle démarchepermet de mesurer la rapiditéd’exécution du code implémenté(performance Testing), soncomportement face à la chargeutilisateur attendue (LoadTesting), le point de rupture del’application en termes de chargeutilisateur (Stress Testing) et enfin,identifier dans quelle mesurel’application sera scalable poursupporter la charge future(Capacity Planning).

communément rencontrées lorsque l’on faitdu testing : u Plus besoin de construire et maintenir

l’infrastructure hébergeant la solution. VSOprovisionne automatiquementl’infrastructure le temps du test, ce quiimpacte de façon très bénéfique votreTCO.

u Plus de problème de scalabilité liée auxlimites de l’infrastructure et de latechnologie de test, VSO provisionneautomatiquement le nombre d’injecteursnécessaire pour pouvoir exécuter vosstress test.

u Le même « script de test » que vouspouvez exécuter dans le Cloud Azure ou àdemeure en fonction de vos contraintesd’accessibilité à l’application Web à tester.

Comment ça marche ?Comme le montre le schéma de la Fig.1, leprojet « Load Test » implémenté dans VisualStudio 2013 Ultimate peut être publié dansvotre souscription VSO, lequel tire profit del’infrastructure Cloud Azure pour provisionnerles agents nécessaires à l’exécution dans lesconditions adéquates du scénario de test.Ces agents sont chargés de requêterl’application Web alors que le Controllercollecte et stocke les métriques d’exécution.Une fois le test terminé, les résultats peuventêtre téléchargés et visionnés dans VisualStudio ou bien dans Excel.

Prenons un exempleAvant de démarrer un load test, il faut créerun projet « Web Performance and LoadTest », à partir du menu « File/New Project ».Après avoir créé vos tests Web, parenregistrement par exemple d’un parcoursWeb, ajoutez un test de charge (Fig.2.) : Clicdroit sur le projet, sélectionnez Add puisLoad Test et suivez les directions del’assistant « Load Test » pour définir uncertain nombre de paramètres comme lenombre d’utilisateurs, la durée du test, letemps de « warm up », le test mix entre lesdifférents Web tests, la répartition entre lesprofils de navigateurs, les bandes passantes,tout cela en fonction de votre cible.

Azure, à toi de jouerTypiquement, tout commence à présent. Àce stade, l’équipe de tests a besoin d’uneinfrastructure pour lancer les tests. Plusieursoptions lui sont offertes : soit elle utilise uninfra on-premise, soit elle déploie des TestAgents et un Test controller dans Azure(IaaS), soit elle peut opter pour VSO LoadTesting, une solution en mode SaaS de testsde charge. Pour ce faire, il faut créer unnouveau fichier « TestingSettings » etsélectionner l’option « Visual StudioOnline ». Par défaut, les tests de charge enmode Cloud vont automatiquementdémarrer un agent hébergé dans Azure tousles 500 utilisateurs. Chaque agent possède

4

Load testing dans le Cloud

Michel Hubert, Manager PôleCloud & Integration, MVP Azure,Cellenza

Radoine Douhou,

Architecte, Cellenza

Fig.1

Fig.2

Page 5: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

deux cœurs. Il est possible de modifier cecomportement avec la propriété du« RunSettings » nommée « AgentCount (Total Cores) ». La version actuellevous limite à un maximum de 10 agents ou20 cœurs. Les tests de charge en modeCloud requièrent également au minimum 25utilisateurs par cœur. Ainsi si vous souhaitez10 cœurs pour 10 utilisateurs, il ne vous seraalloué qu’un agent. En lançant le test, VisualStudio vous indique le nombre réel de cœursutilisés, mais surtout le nombre de virtualusers/minutes vous permettant ainsi deconnaître le coût de votre test. En effet,l’unité d’œuvre utilisée pour mesurer laconsommation est la minute d’utilisateurvirtuel qui correspond au nombred’utilisateurs virtuel simulé par les agentsmultiplié par le temps du test. Si les agentssimulent 10 utilisateurs par seconde pendant1 minute, nous consommerons 600utilisateurs virtuels/minutes. Visual StudioOnline offre 20 000 utilisateursvirtuels/minute par mois. Au-delà de ce seuil,il vous sera facturé 0,0015 € l’utilisateurvirtuel/minute. Un coût somme toutenégligeable par rapport à l’importance de cetype de tests et par rapport à uneinfrastructure dédiée on-premise.

Données dynamiquesCertes, des tests Web statiques vousdonnent des informations détaillées sur laperformance de vos applications, mais destests Web dynamiques (plus proche de laréalité) vous donneront des informationsplus précieuses. Par exemple, au lieud’envoyer en permanence l’id 1000 pourafficher une page produit, il fait sensd’utiliser différents id pendant l’exécutiond’un test. Vous pouvez le faire avec une

technique avancée appelée Data Binding.Pour associer des données à un test Web,vous devez tout d’abord ajouter une sourcede données à votre test Web via la barred’outils. Les datas sources supportées sontdes fichiers XML, CSV et des bases dedonnées. Les fichiers XML et CSV sont copiéssur les machines virtuelles des agents. Doncpour les tests de charge en mode Cloud, lesagents doivent être en mesure de seconnecter à la source de données. Parconséquent, les sources de données de typebase de données doivent reposer sur AzureSQL Database. Les propriétés de votre datasource vont indiquer comment les tests vontparcourir les données : Do Not Move,Random, Sequential ou Unique. Cette dernièreoption n’est pas compatible avec VSO. Pourfinir, après avoir ajouté votre source dedonnées, les valeurs de vos paramètres quiremplacent les chaînes de caractères fixesdeviennent des listes déroulantes afin de lesfaire correspondre avec une colonne de votresource de données.

Comprendre les tests de chargeLes principales questions que vous vousposez lors d’un test de charge sont lessuivantes : u Est-ce que mon application est aussi

performante qu’attendu ?u Est-ce que ma performance va se

dégrader pendant les tests de charge ?u Est-ce que mon code va générer des

erreurs pendant les tests ?Pour répondre à ces questions, Visual Studiofournit plusieurs types de rapports. Il vaautomatiquement les stocker avec lesdonnées d’exécution à la fois pour vous etvotre équipe dans VSO. Par exemple, grâceau rapport « Throughput », le graphique

(Fig.3.) vous montre l’exécution du test decharge et vous êtes capable en un coupd’œil de vérifier le bon comportement ounon de votre application. Si des temps deréponse rapides sont couplés avec unnombre inattendu d’erreurs, vous savez toutde suite qu’il y a un service défaillant et vouspouvez stopper à tout moment votre test.Un autre aspect intéressant est la possibilitéde travailler dans un environnementcollaboratif. Les équipes agiles sontparticulièrement intéressées par l’impact surla performance du sprint en cours. Pour yrépondre, Visual Studio fournit deuxrapports basés sur Excel qui vont vous aiderà comparer deux tests et à examiner lestendances. Pour cela, téléchargez lesdonnées de VSO, cliquez sur le lien « ViewReport ». Cela ouvrira une vue sur vosdonnées incluant l’option d’ouvrir et decomparer vos jeux de tests dans Excel.

Application InsightsLes erreurs découvertes lors d’un test decharge doivent être couplées à destechniques de collection de diagnostics. Laplupart du temps il est difficile dediagnostiquer ces erreurs à cause d’élémentsde trace et de logs insuffisants ouincomplets. Depuis l’update 2 de VisualStudio, il est possible d’intégrer ApplicationInsights avec vos tests de charge. Cetteintégration avec un outil de monitoringdigne de ce nom permet de tester desapplications durant toutes les phases d’unprojet, du développement à la production.Cet outil permet aux équipes projet detrouver facilement les erreursindépendamment du moment où elles ontété trouvées même si l’erreur s’est produiteune semaine auparavant. Pour inclure lesinformations de diagnostics et deperformance à vos tests de charge avecApplication Insights, clic droit sur le nœud« Applications » de votre définition de tests.Ensuite, sélectionnez les composantsd’application insights que vous souhaitezinclure dans vos rapports de tests de charge.

ConclusionVSO nous facilite la mise en œuvre de testsde montée en charge grâce à la puissancedu Cloud Azure vous permettant de testerau plus tôt le comportement de votreapplication lors de pics de charge prévisiblesou non. Plus d’excuses pour ne pas inclurecette typologie de tests dans votredémarche ALM /DevOps. Pour finir,Microsoft a mis à disposition récemment desREST APIs qui vous permettent égalementd’automatiser l’exécution de ces tests.

p

5

Load testing dans le Cloud

Fig.3

Page 6: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

Pourquoi s’outiller devientindispensable pour le déploiement ? Parcequ’une application peut être multi-environnements, avec de nombreux critèresde validation et de nombreux intervenants : u Les besoins de backup de l’intégration

sont nettement inférieurs à ceux de laproduction,

u L’environnement d’intégration ne serabasé que sur une seule machine,contrairement aux autres qui nécessitentun environnement plus riche,

u Un système permettant de garder lacontinuité du service de l’application doitpotentiellement être mis en place lors dela migration sur la production, etc.

Chaque étape du déploiement a son propreworkflow, ses propres critères de validationet ses propres validateurs. Bref, sans unebonne organisation, cela peut devenirextrêmement complexe et anarchique. C’estd’autant plus vrai lorsque l’on désire mettreen place du déploiement continu. En effet, lagestion du déploiement de l’application estbien souvent chronophage et nécessitel’intervention de nombreux acteurs. De pluscette tâche est risquée, stressante etconflictuelle. Chaque intervenant travaille ensilo, suit sa propre procédure, et mobilisetous ses efforts dans cet instant où toutéchec entraîne une perte de temps et de

fonction de l’environnement cible (backup,chaînes de connexions, plateforme dedéploiement, etc.). L’un des buts étantd’automatiser au maximum le processus dedéploiement afin de gagner en productivitéet en fiabilité. La solution est décomposée en troismodules distincts à savoir : u L’agent de déploiement est un service à

installer sur les serveurs cibles. Il permetde réaliser un déploiement sur ceux-cidepuis une machine distante. Par contre, ilest facultatif ! En effet ReleaseManagement propose deux façons pourdéployer : via l’agent ou via du WinRM(Powershell DSC), cette dernière estnommée VNext.

6

Orchestrez vos déploiements avec Release Management

ressources. La conclusion est simple, undéploiement coûte cher, est très risqué, etdemande une très bonne organisation. Unorchestrateur devient vite indispensable pourfournir un déploiement stable, modulable etévolutif. Microsoft propose depuis 2013 sasolution qui a l’avantage d’avoir, toutcomme Visual Studio, un cycle dedéveloppement très court. Tous lestrimestres, de nouvelles fonctionnalités sontlivrées sur Release Management. L’outil estcompatible avec Team Foundation Server2010, 2012, 2013 et Visual Studio Online !Comme sait le faire Microsoft, cesfonctionnalités s’intègrent parfaitement avecles autres outils de la compagnie. Microsoftmise énormément sur cet outil et lesévolutions ne cesseront d’arriver. C’estaujourd’hui une valeur sûre pour améliorerefficacement la fluidité du déploiement desapplications. Avec Release Management il est aiséd’adapter son processus de déploiement en

Release Management

Fig.1

Fig.2 Fig.3

Fig.4

Gagner en fiabilité et enefficacité lors des déploiementsest devenu un pointfondamental dans la réussited’un projet informatique. Pource faire, les méthodologies sontsouvent à adapter, et l’aided’outils est parfois nécessaire.La réponse de Microsoft à cetteproblématique est ReleaseManagement ! Ce dernierpermet d’orchestrer facilementet efficacement le cycle dedéploiement de n‘importequelle application.

Jérémy LANDON Consultant ALM - Infinite Square

Page 7: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

u Un client WPF pour administrer le serveurRelease Management et modéliser etconfigurer les chaînes de déploiement.

u Un serveur Release Management,comprenant une base de données SQL etexposant différents services utilisés par lesautres composants. Comme pour l’agent,il est facultatif, en effet Microsoft proposeRelease Management en mode SaaS viaVisual Studio Online, c’est ce dernier quifera office de serveur ReleaseManagement dans le cloud..

Chaque module étant indépendant, lasolution de Microsoft offre l’avantage d’êtreflexible, et ces deux modes de déploiementpermettent d’offrir une solution adaptée àtous. De plus Release Management offre àdisposition des utilisateurs différents outilspour aider à la mise en place d’undéploiement (installer ou désinstaller descomposants, interagir avec SQL Server,déployer des rapports dans Microsoft SQLReporting Services, gérer les fichiers,interagir avec Azure…). Des outils sontfournis par défaut, mais ils sont facilementextensibles, cette souplesse offre despossibilités infinies à l’outil.

Quelles applications profitent aumieux de Release Management ?Toute application a besoin d’assurer laqualité de son déploiement, de ce faitRelease Management s’applique à tous lestypes applications hébergés dans TeamFoundation Server ou Visual Studio Online.

Comment Release Managementfonctionne-t-il ?Le principe de Release Management estsimple et part d’une logique adaptée audéploiement d’application; afin d’assurerl’intégrité d’une application, chaqueenvironnement utilisera les mêmes binaires.Le processus est donc : u Team Foundation Build génère

l’application et place le résultat dans undrop,

u Les binaires de ce drop sont fournistotalement, ou en partie, à chacun desenvironnements, en fonction de sesbesoins Fig.1.

Les mêmes binaires, donc le mêmeapplicatif ! La gestion des environnementsest totalement gérée grâce à ReleaseManagement, et cette tâche, bien souventdifficile, est simplifiée. Comme évoquéprécédemment, Release Managementpropose deux modes de déploiements : u Basé sur les agents de déploiement, u VNext (WinRM).Pour le premier mode, il suffit d’installerl’agent de déploiement sur la machine de

destination. Lors de la configuration decelui-ci, il suffit d’entrer l’adresse du serveurRelease Management : Fig.2.Release Management possède égalementune très bonne intégration avec Azure. Laplateforme Cloud de Microsoft offre denombreux avantages : flexibilité, coût,rapidité et stabilité. Configurer un serveur paragent est simple, en passant par Azure latâche est encore plus simple ! L’outil va sebaser sur un compte de stockage Azure, ilsuffira de fournir la certification de lasouscription, le nom de stockage Azure et laclé de souscription. Une fois cetteconfiguration réalisée, Release Managementpourra détecter et utiliser les machinesvirtuelles Fig.3. La notion d’environnementest très flexible et aisée à mettre en placedans Release Management; il est d’autantplus simple de créer un workflow dedéploiement. Release Management offre lapossibilité de définir un environnement parétape, et de définir les règles d’acceptationde chacune de ces étapes; il est aussipossible d’y assigner un utilisateur ou ungroupe (issu de Team Foundation Server ouActive Directory). Ces derniers devront validerles différentes phases du déploiement. Ledéploiement d’un applicatif sur unenvironnement est composé de 4 phases :u L’étape d’acceptation : permet

d’approuver ou rejeter la phase dedéploiement [peut être automatisée],

u L’étape de déploiement : phase durantlaquelle l’application se déploie,

u L’étape de validation : phase durantlaquelle un utilisateur ou un grouped’utilisateurs valide l’applicatif déployé[avec Microsoft Test manager par exemplepour la recette],

u L’étape d’approbation : dernière phase.Assignée la plupart du temps à unepersonne [mais il est possible de l’affecterà plusieurs intervenants], elle permet de

valider complètement le déploiement surl’environnement et donne la main àl’étape suivante dans le workflow Fig.4.

Release Management offre donc une grandeflexibilité dans la réalisation de la chaîne dedéploiement. Ne reste plus que la dernièrephase : la mise en place du workflow dedéploiement par environnement. Commeévoqué précédemment ReleaseManagement propose deux solutions : l'unebasée par agent et l'autre sur VNext. Avec lapremière solution, Release Managementpropose une série d’outils d’aide audéploiement sous forme d’actions, d’unemanière semblable à ceux offerts lors de laréalisation de process de build pour TeamFoundation Build [déploiement de DacPac,copie de fichier, Rollback…]. Dans le modeVNext, il sera possible d’utiliser un scriptPowerShell de déploiement ainsi que DSCpour configurer l’environnement Fig.5.Au-delà de la technique, ReleaseManagement offre, sous forme d’un Webaccess, une interface simple et à la portée detous pour gérer les approbations desenvironnements Fig.6.

ConclusionLe Release Management est un pointimportant dans la réalisation d’un logiciel,au-delà de la méthodologie un bon outillagepeut apporter une énorme plus-value.Microsoft fourni avec Release Managementun outil simple, flexible et surtout suivi pouraider dans la gestion de déploiementd’applications. Enfin le plus gros avantage :que ce soit par Release Management OnPremise ou par son homologue ReleaseManagement as a Service accessible viaVisual Studio Online, mettre en place lasolution de Microsoft demande un faibleinvestissement tout en offrant un bénéficeimmédiat et durable.

p

7

Release Management

Fig.5

Fig.6

Page 8: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

Sebastien Ollivier,Kevin Albrecht, Arezki Saba, Maxime Frappat, Jonathan Antoine

Consultants, Infinite Square

Plusieurs outils permettent de répondre àcette problématique de développement etMicrosoft a décidé de prendre le problème àbras le corps en les intégrant dans VisualStudio. Dans cet article, nous étudierons notammentApache Cordova, les possibilités dedéveloppement en C++ dans la version 2015de Visual Studio, ainsi que les possibilitésoffertes par Xamarin.

Apache CordovaApache Cordova est un Framework open-source développé par la fondation Apache,permettant de créer des applications mobilescross-plateformes en utilisant les langagesHTML / CSS / JavaScript. L’idée est depouvoir cibler toutes les plateformes mobilesmajeures en développant une seuleapplication et en s’émancipant des langagesnatifs comme Java, C#, Objective-C, ou autre,pour pouvoir interagir avec le device. ApacheCordova met à disposition un ensembled’API JavaScript permettant d’accéder auxfonctionnalités natives.

Comment cela fonctionne ?Le principeLe principe d’une application Cordova est dedévelopper une application Web, en HTML /CSS / JavaScript, et de la packager sous laforme d’une application native. Pour que lerendu de l’application Web s’adapte à tousles devices, il est nécessaire de développerune application Web responsive, parexemple à l’aide du Framework CSSBootstrap. Pour proposer un rendu plus fini,il est également recommandé de créer uneapplication Web de type Single PageApplication (SPA), par exemple à l’aide des

Visual Studio et la mobilité : quoi de neuf dans la version 2015 ?Lorsque l’on souhaite créer une application à destination des stores mobiles, il est souvent nécessaire dedevoir cibler les trois plateformes majeures : Android, iOS et Windows Phone. Cela implique de devoirdévelopper trois applications, avec trois langages différents, sur trois plateformes différentes. Chaquenouvelle version de l’application nécessite une mise à jour des trois développements, chaque correction debug nécessitant également de repasser sur les trois plateformes.

Frameworks AngularJS ou KnockoutJS. L’idéeest donc ici d’avoir un seul code métier et undesign unique sur toutes les plateformesFig.1.

Techniquement, le principe du FrameworkCordova est de créer une application nativecomposée uniquement d’un composantWebView, propre à la plateforme ciblée. Cecomposant WebView naviguera simplementsur l’application Web, dont les fichiers(HTML, CSS, JavaScript, font, images, etc.)auront été embarqués en tant queressources locales de l’application nativeFig.2.

Accès aux fonctionnalités du devicePour pouvoir accéder aux fonctionnalitésnatives du téléphone, l’application ainsidéveloppée va pouvoir s’appuyer sur lesplugins Cordova.Un plugin Cordova permet d’exposer unefonctionnalité native du device via une APIJavaScript, qui sera utilisable depuisl’application Web. Le rôle du plugin est alorsde faire le lien entre l’appel JavaScript etl’exécution du code natif, en fournissant uneimplémentation par plateforme. L’interfaceJavaScript étant la même pour chaqueplateforme, l’utilisation d’un plugin se fait demanière identique, quelle que soit la cible.Par exemple, l’accès aux contacts dutéléphone se fait en utilisant le plugin« Contacts », qui expose les fonctions create,find et pickContact, permettantrespectivement de créer un contact, derechercher un contact et d’afficher uncomposant natif de sélection d’un contact.Apache Cordova met à disposition unensemble de plugins permettant d’accéderaux fonctionnalités basiques du device,comme les notifications, la caméra, lescontacts, l’accéléromètre, etc. D’autresacteurs ont également créé des plugins, ycompris Microsoft via sa filiale « MicrosoftOpen Technology », avec notamment unconnecteur Cordova pour Azure MobileServices, disponible pour les plateformesWindows 8, Windows Phone 8 mais aussi iOSet Android.Apache Cordova s’appuie également sur unecommunauté active pour développer denombreux plugins, majoritairement surGitHub, comme un scanneur de code barre

8

Mobilité

Fig.1

Fig.2

Page 9: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

ou de QR Code, des connecteurs Facebookou encore des notifications « Push ».L’engouement grandissant autour deCordova fait que ce Framework devient deplus en plus complet et permet dedévelopper des applications de plus en plusévoluées, tout en gardant l’avantage den’avoir qu’un seul développement à fairepour cibler plusieurs plateformes.

Intégration avec Visual StudioProjet CordovaVisual Studio 2015, actuellement en versionPreview, contient des outils permettant defaciliter le développement d’applicationsavec le Framework Cordova. Lors de soninstallation, il vous sera demandé si voussouhaitez installer les outils dedéveloppement cross-platform. Enacceptant, une seconde installationtéléchargera puis installera un ensembled’outils, comme iTunes, node.js, la JVM, leSDK Android et bien d’autres Fig.3. Il estégalement possible de profiter de ces outilsavec Visual Studio 2013 via l’extension Multi-Device Hybrid Apps, actuellement en CTP 3.Un template de projet Visual Studio permetde démarrer une nouvelle applicationCordova. Ce template se trouve dans lasection JavaScript et se nomme Blank App(Apache Cordova) Fig.4.Un projet Visual Studio Cordova, d’extensionjsproj, est composé de plusieurs élémentsFig.5.Le fichier config.xml contient toutes lesinformations sur l’application, notammentson nom, sa version, les domaines externesavec lesquels l’application peutcommuniquer (pour par exemple récupérerdes données d’une API Web via une requêteAjax), les plugins utilisés, etc. Visual Studio propose un éditeur visuel

permettant de renseigner plus facilement cesinformations, sans avoir à connaître lasyntaxe XML. Bien que très utile, cet éditeurn’est pas totalement complet et il arriverégulièrement de devoir éditermanuellement le fichier config.xml.L’éditeur visuel permet également de listerl’ensemble des plugins proposés par ApacheCordova et Microsoft Open Technology, avecla possibilité de les ajouter au projet. Si leplugin souhaité ne fait pas partie de la listeprécédente, il est possible de renseigner l’urlGit ou le chemin local sur lequel se trouve leplugin.Enfin, l’éditeur contient trois ongletspermettant de saisir les informationsspécifiques aux plateformes Windows,Android et iOS.Le dossier « res » du projet Cordova contienttoutes les ressources à fournir pour lacréation de l’application mobile,principalement les icônes et lessplashscreens. Ces ressources sontregroupées dans un sous-dossier parplateforme, et sont fournies aux dimensionsrequises, ce qui permet de simplementremplacer leur contenu par celui souhaité,

sans avoir à craindre d’erreurs dans lesdimensions.Le sous dossier « native » du dossier « res »sert à contenir les propriétés Androidnécessaires à la distribution de l’application,notamment le Keystore.Le dossier « merges » du projet Cordova estlui aussi composé d’un sous dossier parplateforme. Chaque sous-dossier sert àdéfinir des scripts spécifiques à uneplateforme, par exemple dans le cas où uneimplémentation du moteur JavaScript d’unnavigateur mobile nécessite un ajustement.Les autres répertoires « css », « images » et« scripts » sont des dossiers propres àl’application Web et peuvent contenir lesressources de l’application, être modifiés ousupprimés.Enfin, le fichier index.html correspond à lapage d’entrée de l’application, sur lequell’utilisateur sera dirigé lors du lancement del’application native.

Debug GénéralVisual Studio 2015, ou Visual Studio 2013combiné à l’extension Multi-Device HybridApps, offre un ensemble complet d’outils de

9

Mobilité

Fig.3

Fig.4

Fig.5

Page 10: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

automatiquement ses outils de débogage(console JavaScript, DOM Explorer, etc.) àl’émulateur Android. Il sera ainsi possibled’effectuer des modifications depuis VisualStudio qui seront impactées dansl’émulateur.De manière identique aux émulateursWindows Phone, l’émulateur Androiddispose d’un ensemble d’outils permettantde modifier les propriétés du device, commeson orientation, les informations réseau, lagéolocalisation, etc, Fig.9.

iOSLe développement d’une application iOSnécessite l’utilisation d’un Mac et de l’IDEXcode. Visual Studio 2015 ne permet pasd’échapper à cette contrainte mais intègreun mécanisme permettant de débuggerdirectement depuis un device iOS branché àun Mac. Ce mécanisme nécessitel’installation d’un agent sur le Mac, quiservira de lien entre Visual Studio et Xcode.La configuration nécessaire est la suivante :u OS X Mavericks,u Xcode 6,u Xcode Command-line tools,u Node.js,u Un Compte Développeur Apple actif,u Un identifiant d’application,u Un « provisioning profile ».A noter que Xcode Command-line toolss’installe via la commande suivante :

xcode-select –install

L’installation de l’agent sur le Mac s’effectuevia la ligne de commande suivante :

sudo npm install -g vs-mda-remote --user=VotreNomDutilisateur

L’exécution de l’agent s’effectue ensuite viala commande suivante :

vs-mda-remote

Lors de son exécution, l’agent fournit unensemble d’informations (dont le nomd’hôte sur le réseau, le port utilisé et uncode PIN de sécurité) permettant lacommunication inter machines. Cesinformations sont à saisir dans Visual Studiodans le menu Tools > Options > Tools forApache Cordova > Remote AgentConfiguration Fig.10.Il est également possible d’exécuter l’agenten supprimant le code PIN de sécurité vial’option –secure :

vs-mda-remote –secure false

De cette manière le code PIN ne sera pasnécessaire, mais attention, le Mac seraaccessible directement. Une fois lacommunication établie, il est possible de

Build et de Debug pour les plateformesWindows, Windows Phone, iOS et AndroidFig.6 et 7.

RippleRipple est une extension du navigateurChrome permettant d’exécuter l’applicationCordova dans le navigateur, en émulant unenvironnement se rapprochant del’environnement mobile Fig.8. Ripple propose actuellement d’émulerplusieurs devices, notamment des iPhone,iPad, Blackberry ou Android. L’avantage decette extension est de pouvoir débuggerrapidement son application depuis lenavigateur, sans avoir à déployer sur undevice, ou à utiliser un émulateur. Il estégalement possible d’utiliser les outilsdéveloppeurs de Chrome pour debuggerl’application, ce qui arrêtera le débuggeur deVisual Studio. Cet outil peut être utilisé pour les premièresphases de Debug, afin de vérifier lefonctionnement global de l’application ainsique le design. Il est possible de modifiercertaines propriétés du device, comme sonorientation, sa position géographique, labatterie, de modifier l’accéléromètre, dedéclencher certains évènements (Passage enmode avion, etc.) et bien d’autres. Ripples’exécutant sur le navigateur, il ne peut pasexécuter certains plugins nécessitantl’utilisation du device, comme par exemple lacaméra. Pour pouvoir continuer le debug,

Ripple propose un mécanisme permettantde saisir manuellement les données quiauraient dû être retournées par l’appel auplugin.En revanche, Ripple ne permet pas de sesubstituer totalement aux émulateurs et auxdevices, et il est important de testerl’ensemble de l’application sur chaqueplateforme.

Windows PhonePour le moment, Visual Studio 2015, oul’extension Multi-Device Hybrid Apps deVisual Studio 2013, ne permet pas dedébugger une application Cordova surWindows Phone. Il est cependant possiblede tester l’application Windows Phonegénérée, directement depuis l’émulateur oudepuis un device Windows Phone.

AndroidVisual Studio 2015 intègre un nouvelémulateur Android basé sur la version Kitkat(API 19, Android 4.4.4), fonctionnant sousHyper-V comme les émulateurs WindowsPhone. Cet émulateur se trouve dans la listedes devices sous le nom « VS EmulatorAndroid Phone » ou « VS Emulator AndroidTablet », (l’option « Android Emulator »correspond à l’émulateur fourni avec le SDKAndroid). Il est utilisable pour debugger desprojets Apache Cordova, C++ mobile ouXamarin Fig.7.Contrairement à l’émulateur fourni avec leSDK Android, l’émulateur de Visual Studioest très performant et permet de profiterd’un environnement de test fidèle auxdevices réels. Pour améliorer l’expérience dedebug, Visual Studio attachera

10

Mobilité

Fig.8

Fig.6

Fig.7

Page 11: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

debugger l’application Cordova sur uniPhone, branché au Mac, ou sur unémulateur iPhone Fig.11. Techniquement, Visual Studio enverra enHTTP les informations du projet qui serontinterprétées par Xcode. Ensuite, le Mactransmettra les données du device ou del’émulateur à Visual Studio qui pourraretranscrire les informations comme s’ils’agissait d’un debug en local.

C++ Mobile et cross-plateformes Certains pourraient penser que le C++ estun vieux langage poussiéreux… Microsoftvient de nous prouver (une nouvelle fois) lecontraire en annonçant la possibilité d’écriredes applications cross-plateformes mobilesen C++ avec Visual Studio 2015. Pour lemoment seuls Windows (Phone) et Androidsont supportés. iOS ne l’est pas encore.

Un seul outil et plusieurs compilateursTraditionnellement, Visual Studio est capablede générer des applications natives en C++pour la majorité des plateformes Windows :

11

Mobilité

Windows Phone, Windows Desktop,Windows Store Apps, etc. en utilisant lecompilateur et sa chaîne d’outils associés« C1xx/C2 ». Parfaitement intégrés à VisualStudio, il est possible de personnaliserentièrement la configuration selon vosbesoins et vos envies.La grosse nouveauté provient del’intégration de CLang/LVVM dans VisualStudio. Il s’agit d’un compilateurC/C++/ObjectiveC Open Source, se voulantêtre une alternative à GCC. Il est alorspossible de générer du code Natif ciblant lesplateformes Android. En fonction du projet que vous créez, VisualStudio choisira automatiquement la bonneplateforme de compilation pour vous :C1xx/C2 ou CLang/LVVM.

Que peut-on développer ?Plusieurs possibilités de développementssont disponibles :u Des librairies de code natif pour vos

applications Android. Il sera alors possiblede les utiliser dans une applicationAndroid classique développée en Java (enutilisant JNI donc). Il est à noter que

Microsoft a travaillé avec Xamarin pourfaciliter ce scénario d’écriture de codenatif cross-plateformes.

u Des applications Android natives. Oui, ilest maintenant possible de créer uneapplication Android (basée sur le« template » Native-Activity) complètedepuis Visual Studio ! Il s’agit d’untemplate orienté développement de jeuxvidéo utilisant notamment OpenGL.

u Débugger du code natif préexistant : ilest possible de déployer un packageutilisant du code natif sur votre deviceAndroid et de « brancher » Visual Studiosur celui-ci pour le débugger directement.

Comment commencer ?La première des choses est bien sûrd’installer Visual Studio en prenant bien soinde cocher « C++ for cross-platform mobiledevelopment » dans l’installateur. Une fois lapremière partie de l’installation effectuée, unsecond écran vous proposera d’installer lesoutils tiers nécessaires : le SDK Android, leSDK Android Natif, le SDK Java etc. Toujourssurprenant de retrouver cela dans un produitMicrosoft, mais ce sont maintenant desprérequis pour activer le développementd’applications Android. Une fois l’installation terminée, vous pouvezlancer Visual Studio pour créer un nouveauprojet. Celui-ci vous proposera 4 nouveauxtypes de templates de projets dans lacatégorie « Visual C++ à Cross platform » :librairies statiques (Android ou cross-platform) ou dynamiques (Android ou cross-platform). En choisissant un template deprojet cross-plateformes, vous vousretrouverez dans une configuration bienconnue des développeurs d’applicationsuniverselles : un projet par plateforme(Windows Phone et Android) et un projetshared avec le code partagé Fig.12.Le plus novateur reste le template « Native-Activity » qui génèrera un projet C++Android, mais aussi un projet « Packaging »qui, lui, génèrera automatiquement un APKdepuis Visual Studio en utilisant les outils du

Fig.9

Fig.10

Fig.11

Fig.12

Page 12: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

u Xamarin Studio : un environnement dedéveloppement, basé sur MonoDevelop,permettant de développer desapplications C# pour Android (sansdisposer de Visual Studio) ou desapplications iOS sous OS X.

Pourquoi choisir Xamarin ?Si l’on en croit les possibilités offertes par leproduit, Xamarin semble être prometteur etse présente comme la solution idéale pourles développements d’applications mobilesmultiplateformes.Mais, au-delà des fonctionnalités même,l’intérêt de Xamarin réside aussi (et surtout)dans le principe de « réutilisation » du code.En effet, comme nous l’avons vu juste avant,Xamarin offre aux développeurs la possibilitéde développer leurs applicationsiOS/Android en utilisant Visual Studio et C#et donc, implicitement, de réutiliser le savoir-faire qu’ils ont acquis lors de leursdéveloppements précédents, bien qu’ilsciblent de nouvelles plateformes. La courbed’apprentissage est donc extrêmementsimple pour les développeurs ayantl’habitude de l’environnement Microsoft :seules les nouvelles APIs liées àl’environnement cible sont à connaître.Toutefois, il reste nécessaire de connaître lesparadigmes et les concepts des différentesplateformes pour lesquelles une applicationest développée afin de respecter au mieuxles codes de l’expérience utilisateur (parexemple, la navigation, le cycle de vie del'application… etc).Un autre avantage de Xamarin concerne lespossibilités techniques offertes auxdéveloppeurs. En effet, lorsque l’on regardede plus près des applications iOS ouAndroid, on constate que celles-ci sont trèssouvent peaufinées dans les moindres détails(animations, etc.). Force est de constaterqu’avec Xamarin, il sera possible dereproduire l’ensemble de ces petits détails,car 100% des APIs sont couvertes !Autrement dit, tout ce qu’il est possible defaire sur iOS avec Objective-C ou surAndroid avec Java peut être ré-implémenté,en C#, avec Xamarin.

La collaboration avec MicrosoftEn plus de tous les points citésprécédemment, Microsoft et Xamarintravaillent conjointement afin de faciliter laconception des applications pour Android etiOS. Le tout au travers d'outils tels que VisualStudio où l'intégration est complète depuisla version 2013; de plus, sous sa dernièreversion (Visual Studio 2015), l'IDE intègre unémulateur Android (bien plus performantque celui du SDK) à utiliser dans les projetsXamarin ou Cordova, il n'est donc plusnécessaire d'utiliser ceux fournis avec leAndroid SDK.

ConclusionNous avons pu voir que Microsoft a mis unaccent particulier sur l’outillage dudéveloppement cross-plateformes dans laversion 2015 de Visual Studio. Visual Studiose positionne ainsi en tant qu’outilincontournable pour développer desapplications cross-plateformes, aussi bienen utilisant Xamarin, du C++, ou Cordova.Sa version définitive promet d’être encoreplus complète, en proposant des outils dedebug encore plus évolués et pluspoussés. De plus, tout l’écosystème qui s’est crééautour de Visual Studio et C# estentièrement réutilisable dans vosdéveloppements: que ce soient les pluginscomme Resharper, GhostDoc, ou bien lesoutils de travail collaboratif tels que TeamFoundation Server (TFS) / Visual StudioOnline (VSO), Git / GitHub, etc.Vous serez donc en mesure de profiter unmaximum de cette notion de« réutilisation »; ceci que ce soit en termesde compétences techniques, ou en termesd’outils pour, au final, vous permettre dedisposer de la meilleure productivitépossible (et donc de limiter les temps dedéveloppement de vos application, ycompris sur ces nouvelles plateformes).C’est une bonne question et la réponsen’est malheureusement pas absolue. Sivous possédez déjà des connaissances dedéveloppement Web ou si vous partezd’un site Web responsive existant, ApacheCordova est sans doute la solution lamieux adaptée. Si, au contraire, vous êtesplus un développeur .NET, Xamarin estsans doute l’outil dont vous avez besoin.Finalement, un développeur C++ pourracréer des assemblies ou framework cross-plateformes afin de gagner en productivitéet maintenabilité.

Dans tous les cas, l’outil de développementuniversel capable de répondre à vos besoinssera Visual Studio ! p

12

Mobilité

SDK Android. Tout est intégré dans VisualStudio ! Fig.13.

Une expérience de développementde qualité !Visual Studio 2015 ne se contente pasd’utiliser simplement la chaîne decompilation CLang mais il propose uneintégration aussi poussée qu’avec lecompilateur fait maison de Microsoft :IntelliSense, navigation rapide, aide au code,tout y est, sans compromis. L’intégrationvous permet aussi de vous faciliter lanavigation en cas d’erreur de compilation, envous amenant directement au bon endroitdans le code depuis la fenêtre d’erreurs.Aussi, le débogage n’est pas en reste car ilest possible de déployer, soit directementsur un téléphone, ou sur l’émulateur (dontnous avons déjà parlé dans la partieCordova). Visual Studio s’attache alors à l’unou à l’autre, et vous propose la mêmeexpérience que sur un développementclassique : points d’arrêts, évaluationd’expressions, surveillance de variables, pas àpas, etc.

XamarinUne autre possibilité permettant d’écrire uneseule base de code pour plusieursplateformes existe aussi : Xamarin !Xamarin peut être assimilé à un Frameworkpermettant de développer des applicationsmobiles pour iOS, Android et WindowsPhone en s’appuyant sur un langage dedéveloppement unique (C# ou F# pour lesplus audacieux), permettant ainsi demutualiser toute la logique applicative (ens’appuyant sur une bibliothèque de classesportable ou sur un projet partagé).L’un des points forts de Xamarin réside dansce que le produit offre aux développeurs :tout ce qui est réalisable techniquementavec Objective-C ou Java peut être fait en C#avec Xamarin ! Concrètement, cela signifieque tout ce qui concerne la logique métier,les accès aux données, la communicationréseau, etc. seront partagés sur l’ensembledes plateformes, alors que l’interfacegraphique sera développée en utilisant lesAPIs natives, rendues accessibles en C#.Xamarin est composé de 4 produits :u Xamarin.Android (MonoDroid):

représente la surcouche permettantl’exécution d’applications C# sur lesplateformes Android,

u Xamarin.iOS (MonoTouch) : permet auxapplications Xamarin de s’exécuter suriOS,

u Xamarin.Mac : offre aux développeurs lapossibilité d’exécuter leurs applicationssur OS X,

Fig.13

Page 13: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

IDEL’éditeur de Visual Studio 2015 a reçu denouvelles fonctionnalités ainsi que desaméliorations pour certaines déjà existantes.De plus en plus de développeurs travaillentsur des ordinateurs possédant un écrantactile, ou directement sur une tablette.Cependant Visual Studio 2013 ne supportaitjusqu’alors pas les opérations tactiles. C’estmaintenant le cas avec Visual Studio 2015qui supportera les gestes suivants :u Pinch pour zoomer ou dézoomer,u Double tape pour sélectionner un mot,u Tape dans la marge pour sélectionner une

ligne,u Appui long pour faire apparaître le menu

contextuel.Nous travaillons aussi de plus en plus avecdes ordinateurs portables qui n’ont pastoujours la même résolution qu’un écran debureau. Il faut alors régulièrement réarrangerles fenêtres dans Visual Studio afin des’adapter à la résolution de l’écran que l’onutilise. Avec la version 2015, il est enfinpossible de sauvegarder le layout de sesfenêtres et de rappeler une configurationpréalablement sauvegardée (Fig.1). Cerisesur le gâteau, ces sauvegardes font partie dece qui est associé à votre compte Microsoft,et pourront donc être accessibles den’importe quel ordinateur dès que vous vous

serez connecté à votre compte !En parlant de compte Microsoft, VisualStudio 2015 intègre maintenant ungestionnaire de compte (Fig.2) afin de neplus avoir à retaper perpétuellement sesidentifiants à chaque fois que l’on souhaitese connecter à un compte Azure, ou que l’onjongle entre des identifiants personnels etdes identifiants professionnels. Lorsque desidentifiants sont nécessaires, VisualStudio 2015 propose de les sélectionner dansune liste existante. Des améliorations ontaussi été apportées à l’éditeur de code enlui-même. On notera, par exemple, lacoloration syntaxique des tooltips affichantdu code (Fig.3). Il s’agit, certes, d’une petitefonctionnalité, mais le code visualisé devientbien plus lisible ! Intellisense est bienévidemment amélioré via, entre autres,l’ajout d’avertissement lorsque l’on utilise unélément qui n’existe pas dans tous lesframeworks. La dernière fonctionnalité ayantsubi des améliorations importantes dansVisual Studio 2015 est le refactoring de code.Les développeurs C# avaient la chanced’avoir les outils de refactoring natif les plusavancés, ceux-ci arrivent enfin pour le C++et le VB.Net. On pourra donc en C++ :u Renommer un élément (variable,

méthode, classe…) ,u Extraire une fonction d’un code existant,u Implémenter toutes les méthodes

virtuelles,u Créer la définition d’une fonction depuis

sa déclaration ou inversement,u Déplacer la définition d’une fonction entre

le fichier d’en-tête et le fichier source,

u Convertir une chaîne contenant descaractères d’échappement en chaînelittérale (C++ 11).

L’accès au refactoring a aussi été simplifié vial’ajout du raccourci clavier CTRL + <point>;la fonctionnalité est maintenant extensiblepermettant à la communauté de développeret de proposer ses propres fonctions derefactoring.Par ailleurs, la fonctionnalité de refactoring laplus utilisée, le renommage, se voit remise àjour avec l’introduction du renommage enligne : il suffit de sélectionner l’élément,d’appuyer sur le raccourci clavier, et decommencer à renommer. L’ensemble desréférences sera mis à jour en direct au fur età mesure de la frappe (Fig.4).

Code AnalysisL’analyse statique existe depuis la sortie deFxCop. Cet outil permet de définir unensemble de règles de codages à respecter;il analyse ensuite les binaires générés afin devalider que l’ensemble des règles estrespecté. FxCop a ensuite été intégré àVisual Studio sous le nom de Code Analysis. Bien que l’outil apporte beaucoup à laqualité du code, le très (trop ?) grandnombre de règles, et le fait que celles-ci ne

13

Boostez votre productivité avec Visual Studio 2015Visual Studio est connu des développeurs travaillant sur les technologies Microsoft comme l’un desmeilleurs IDE. Outre le fait qu’il permette de développer des applications Windows (et non Windows danssa version 2015) et supporte de nombreux langages, il possède aussi un ensemble d’outils et defonctionnalités qui favorisent grandement la productivité des développeurs.

Productivité

Fig.1 Fig.2

Fig.3

Fig.4

Guillaume ROUCHONMVP Visual Studio ALMConsultant Senior chez Cellenza

Page 14: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

soient validées qu’aprèscompilation, sont un frein àl’utilisation de Code Analysis.D’autre part, il n’est pas des plusfacile de mettre en place des jeuxde règles personnalisées pouvantcorrespondre à l’ensemble destypes de projets que l’on auradans sa solution, et de faire ensorte que ces jeux soient bienpartagés et utilisés par l’ensemblede l'équipe de développement.C’est en se basant sur ces constatsque Microsoft a revu sa copie dansVisual Studio 2015 et a mis à jourCode Analysis avec les « analyseurs decode » !Les analyseurs de code sont distribués sousforme d’assemblies via des packages NuGet.Cela permet, pour les développeurs, defacilement les retrouver et les intégrer, et,pour les éditeurs, de facilement les distribueravec leurs outils. Ces analyseurs s’intègrentau projet comme des références (Fig.5), cequi permet non seulement de voirrapidement quels analyseurs et quellesrègles sont en place sur un projet, mais ausside les gérer simplement.Plus besoin de différents « RuleSets »spécifiques à chaque projet, ni dequestionnement quant à où les stocker; toutest géré au niveau du projet et s’intègreparfaitement à un gestionnaire de sources etau travail en équipe comme n’importe quelautre package NuGet ! Bien entendu, lesystème à base de RuleSets est toujoursprésent.L’autre point noir de Code Analysis est le faitque l’analyse ait lieu après la build, lorsquele développeur a fini l’ensemble de sesmodifications. Il peut, dans ce cas, seretrouver frustré et perdre du temps àrevenir sur son code pour y appliquer lescorrections ou recommandations fourniespar Code Analysis. Avec l’arrivée de Roslyn,l’équipe en charge de Code Analyser a pumettre en place un moteur afin que celui-civalide les règles directement lorsque ledéveloppeur écrit son code ! Comme pourles erreurs de syntaxe, le développeur serainformé s’il viole une règle de code ou unebonne pratique de développement et pourraainsi la corriger tout de suite. Les analyseurspourront même lui proposer le code àmettre en place pour corriger la règle(Fig.6). Cela va permettre d’ajouter unnouveau scénario d’utilisation avec CodeAnalyser pour les développeurs de librairies :fournir des analyseurs permettant decorriger les mauvaises utilisations ducomposant directement dont le développeurcode, et ainsi compléter ou remplacer les

un gestionnaire de sources, CodeLens affiche :u Le nombre de références à

l’élément,u Le nombre de tests unitaires

utilisant la méthode avec lenombre de tests réussis.

Le nombre de références permet defacilement savoir si une méthodeou une classe est peu ou beaucouputilisée dans la solution. Lorsquel’on reprend du code existant, c’esttrès pratique pour voir s’il n’y a pasdu code mort (attention quandmême aux appels dynamiques…). Il

est possible, en cliquant sur le lien, d’afficherla liste des références, et ainsi de pouvoirnaviguer vers l’une d’elles ou d’afficherl’ensemble de ces références dans unefenêtre Code Map.Le nombre de tests unitaires est très utilepour voir si nos classes sont bien couvertespar des tests et si ceux-ci continuent depasser. Comme pour les références, un clicsur le lien fera apparaître la liste des tests etpermettra de les lancer.Une fois la solution connectée à ungestionnaire de source supporté (TFVC ouGit), Code Lens affichera d’autresinformations sur l’élément :u Le nombre de changements déjà réalisés,u Les changements à venir,u Les éléments de travail (work items)

associés,u Les bogues associés,u Les revues de code associées,u Les personnes ayant travaillé dessus.Code Lens se basant sur l’historique pourcalculer ces informations, dans le cas de Git,

différents livres blancs ou sites expliquant lesbonnes pratiques d’utilisation.On notera au passage, afin d’améliorer laproductivité des développeurs utilisant CodeAnalyser, que celui-ci intègre ses résultatsdirectement dans la fenêtre des erreurs, etnon plus dans une fenêtre à part. Il n’y adonc maintenant plus qu’un seul endroit oùregarder ses erreurs et avertissements. Cetajout a été rendu possible par la refonte dela fenêtre d’erreur autorisant plusieurssources, et permettant une personnalisationdes colonnes ainsi que l’ajout de filtre surcelle-ci, façon Excel (Fig.7). On retrouveradonc, le code de la règle dans la colonne« Code », et la possibilité, en cliquant dessus,d’être redirigé vers un site l'expliquant(comme avec Code Analysis actuellement).

Code LensCode Lens est une fonctionnalité permettantd'obtenir des informations contextuelles auniveau des classes et des méthodes (Fig.8).Lorsque la solution est locale et non liée à

14

Productivité

Fig.5

Fig.6

Fig.7

Page 15: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

tout se fait en local. L’outil est donccompatible, quel que soit le repo Git(GitHub, VSO, TFS…).Le nombre de changements représente lenombre de check-in ou commit contenantdes modifications sur l’élément. Cela permetd’avoir une idée si l’élément changebeaucoup ou non. Un clic sur le lien feraapparaître la liste de l’ensemble deschangements avec diverses informationstelles que le commentaire associé, l’auteur, ladate et l’historique du changement s’il s’agitd’une fusion.Les changements à venir affichent le nombrede changements ayant eu lieu dans d’autresbranches, mais non fusionnés avec labranche courante. Cela permet de facilement rester informé desmodifications qui peuvent être faites pard’autres membres de l’équipe dans d’autresbranches. Comme pour l’indicateurprécédent, un clic sur le lien affichera la liste

des changements à venir avec les mêmesinformations. Les éléments de travail etbogues associés ne fonctionnent qu’avec ungestionnaire de sources dans TFS. Ilsaffichent les éléments de travail qui ont étéassociés à des changements ayant eu lieusur l’élément permettant ainsi, depuis lecode, de récupérer le besoin ayant conduitau code actuel.Les revues de codes permettent de voir laliste des revues de code sur l’élément.Encore une fois, cela va simplifier la vie dudéveloppeur s’il a besoin de comprendrepourquoi le code a été fait ainsi.Le dernier indicateur est celui concernant lespersonnes ayant travaillé sur l’élément. DansVisual Studio 2015, cet indicateur a été revuafin de proposer une visualisation sousforme de graphique plutôt qu’une simpleliste (Fig.9). On pourra donc voir unhistorique des contributeurs avec unclassement des plus gros d'entre eux. Cela

peut s’avérer très utile si l’on veut poser desquestions à un développeur; on saurarapidement qui a travaillé dernièrement surcet élément et qui a le plus travaillé dessus.Les indicateurs Code Lens présentés ci-dessus sont ceux fournis par Microsoft enstandard, mais la fonctionnalité estextensible, et il est possible de développerdes extensions ajoutant d’autres indicateurs.Par exemple, le Microsoft CodeLens CodeHealth Indicator (http://aka.ms/codelenshealth)rajoute l’indice de maintenabilité de laméthode.

Code MapCode Map est une évolution des graphes dedépendances proposant aux développeursune représentation graphique du code etdes relations entre les différents éléments(Fig.10). L’intérêt principal d’une tellefonctionnalité est de gagner en temps,lorsque l’on arrive sur une base de codeinconnue. Les graphes Code Map étantgénérés directement à partir du code, ilssont toujours à jour (contrairement auxdocumentations) et il est généralement plussimple pour une personne de suivre lesrelations entre différentes parties du codevia des graphes, qu’en lisant des lignes decode. Pour l’instant Code Map ne marchequ’avec les langages C# et VB.NET, maisMicrosoft travaille afin d’y inclure C++ etTypescript.Les graphes Code Map peuvent être générésà différents niveaux :u Assemblyu Namespaceu Classeu MéthodeIl est possible de partir d’un graphe sur lesassemblies, de supprimer les éléments qui nenous intéressent pas (les assemblies de tests,les assemblies externes standards…) puis dezoomer petit à petit sur les composants afinde rentrer plus dans le détail. Chaqueélément dans le graphe est typé, qu’ils’agisse des composants (classe, méthode,assembly…) comme des liens (héritage,implémentation, appel…). Il est donc simplede construire un graphe d’héritage ou ungraphe d’appel. Par ailleurs, un double clicsur un élément affichera le code concerné.Cela permet de simplifier deux scénariosassez communs.Le premier scénario est de comprendre lesdépendances entre les différentes assemblieset vérifier si l’on n’a pas introduit, par erreur,au fur et à mesure des développements, demauvaises dépendances. Par exemple,référencer dans la partie interface graphiqueun composant tiers qui devrait êtreencapsulé par la couche métier. Si un tel lien

15

Productivité

Fig.8

Fig.9

Fig.10

Page 16: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

existe, on pourra alors zoomer sur l’assemblyen question, et chercher plus en détail lenamespace puis la classe et enfin la ou lesméthodes qui font appel à ce composant.Le deuxième scénario est de comprendre surun code existant l’enchaînement des appelsdepuis une méthode donnée. Par exemple,comprendre ce qui se passe lorsquel’utilisateur va cliquer sur un bouton del’application. On affichera dans un graphe laméthode gérant l’évènement, puis onajoutera au fur et à mesure les méthodesappelées. Il est aussi possible de fairel’inverse en recherchant les appelants pour,par exemple, trouver l’ensemble des cheminsqui appellent une méthode d’accès auxdonnées.Code Map peut aussi s’utiliser lors du débugd’un programme, cela va permettre d’avoirun graphe se remplissant automatiquementau fur et mesure que l’on avance en pas àpas lors du débug. C’est une versiongraphique de la pile d’appels, très pratiquepour voir l’enchaînement des appels auruntime, surtout qu’il est possible d’y ajouterdes commentaires.La version 2015 de Code Map apporte desfonctionnalités afin de rendre l’outil pluspratique :u Des filtres permettant de masquer des

éléments,u La possibilité de générer un graphe sans

recompiler la solution,u Une entrée dans le menu Architecture

permettant de créer un graphe vide.Cela peut paraître peu, mais lorsque l’onutilise Code Map régulièrement sur degrosses solutions ça change la vie !Enfin, pour tous ceux qui aiment mettre lesmains dans le cambouis, Microsoft proposeun SDK (Code Index SDK) permettant derequêter la base d’index de code créée parCode Map afin de faire vos propresextractions et analyses. Pour ceux intéressés, je vous recommandede lire les billets de Jean-Marc Prieur sur leblog MSDN.

Smart Unit TestsUne nouveauté de Visual Studio 2015 est lesSmart Unit Tests. Il s’agit d’unefonctionnalité pour aider les développeurs àgénérer automatiquement des tests unitairessur du code existant (donc dans un contextenon TDD). Elle hérite de la rechercheeffectuée sur Pex.Sur une méthode existante, il suffit de lancerla fonctionnalité via le menu contextuel, pourque Visual Studio génère un ensemble detests unitaires et que cela conduise à unecouverture de code de 100 %. Pour cela,l’outil va analyser l’ensemble des chemins

désinstaller s’il est référencé ou mis à jour s’ilexiste une mise à jour.Il est aussi maintenant possible desélectionner la version du package que l’onveut installer et de consolider une versionpour l’ensemble des projets d’une solution !

ExtensibilitéMicrosoft ne peut pas développer tous lesoutils nécessaires à l’ensemble desdéveloppeurs. C’est pourquoi l’une des forces de VisualStudio est son extensibilité permettant à desdéveloppeurs tiers ou des éditeurs deproposer des fonctionnalités non présentesde base qui s’intègrent parfaitement à l’IDEafin de l’enrichir et ainsi booster encore plusla productivité des développeurs.La plupart des outils tiers sont basés sur cesAPI d’extensibilité, et même les outilsdéveloppés par Microsoft se basent dessus.Il existe des extensions de tous types allantde l’ajout de commandes (ex. : ProductivityPower Tools) au support de nouveau type deprojet (PowerShell) ou à l’intégrationprofonde (ReSharper).

ConclusionComme vous avez pu le lire dans cet article,Visual Studio possède de nombreusesfonctionnalités permettant aux développeursde gagner du temps et d’améliorer la qualitéde leur code. La version 2015 de VisualStudio apporte de nouveaux outils et enrichitceux déjà existants afin de proposer l’un desmeilleurs IDE du marché.

p

d’exécutions de la méthode et générer lesparamètres permettant de passer par chacund’eux (Fig.11).Une fois les tests trouvés, il est alors possiblede les sauvegarder dans un nouveau projetde tests afin de ne pas impacter le codeexistant. Il ne s’agit pas d’une solutionmiracle, mais cela peut énormément aiderlorsque l’on a un code existant sans testsunitaires !

NuGetNuGet est bien connu des développeurs.NET et devient le standard pour la gestiondes dépendances et des packages externes.Malheureusement, l’interface graphiquen’avait pas évolué depuis les premièresversions et faisait perdre beaucoup de tempsdu fait de l’ajout de nombreux packages.Avec Visual Studio 2015, l’interface a étéentièrement revue afin de faciliter sonutilisation.La première nouveauté est que l’interfacen’est plus proposée sous forme de fenêtrede dialogue, mais comme un document aumême titre que les fichiers. Il est doncpossible de garder la fenêtre ouverte, de ladéplacer et de l’ancrer ailleurs (Fig.12).Finis aussi les onglets pour choisir d’afficherles packages non installés, ou ceux installésavec des mises à jour. Maintenant, il n’y aqu’une fenêtre affichant l’ensemble desinformations avec l’ajout de filtres pourchoisir d’afficher uniquement les packagesinstallés. Les actions proposées seront enfonction du statut du package sélectionné :installer si le package n’est pas référencé,

16

Productivité

Fig.11

Fig.12

Page 17: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

17

Hub "Performance and Diagnostics" de Visual Studio pour l’analyse Mémoire

Debug

Visual Studio 2013 évolue sans cesse avec de nouvelles fonctionnalités notables pour aider au debugging età l’analyse de problèmes liés aux performances : le hub "Performance and Diagnotics" est votre ami !La suite va vous montrer comment en tirer parti pour améliorer vos applications destinées au Store.

Fig.2

Fig.4

Christophe Nasarre

Sébastien Bovo

Developer Premier Field Engineer chez Microsoft Francehttp://iinspectable.wordpress.com/blogs.msdn.com/sbovo/ - @sbovo

Comment investiguer surune fuite mémoire en C# ?Une consommation de mémoire trèsimportante pouvant mener à des crashs d’uneapplication écrite en C# sera notre premierscénario. Son utilisateur se contente denaviguer dans un groupe d’informations et derevenir à l’écran de démarrage. Au bout d’uncertain nombre de navigations, l’applications’arrête, avec pour cause, une exception detype OutOfMemoryException.Avant l’Update 2 de Visual Studio 2013,l’investigation demande les actionssuivantes :u Surveiller la consommation mémoire de

l’application avec un outil tel que ProcessExplorer de SysInternals(http://aka.ms/procexplorer). Se focaliser surles Private Bytes (Mémoire réellement

utilisée) : la quantité de mémoiredemandée par l’application ne cessed’augmenter sans jamais diminuersignificativement.

u Ensuite, prendre des dumps del’application entre deux navigations avecProcDump (http://aka.ms/procdump).Chaque dump est une "photographie"complète de la mémoire utilisée ; ilcontient notamment toutes les pilesd’appels et les objets en mémoire. Cesdumps sont généralement exploités parun outil comme WinDbg (inclus dans leSDK Windows).

u Effectuer unGlisser/Déplacer deces dumps dansVisual Studio etutiliser DebugManaged Memory(Fig.1) avantd’analyser lesdifférences.

Mais comme dit mafille : ça c’était avant.Avec l’Update 2 deVisual Studio 2013 etévidement dans VisualStudio 2015, le hub"Performance and

Diagnostics" propose une analyse de laconsommation mémoire totalementintégrée. Nous le lançons à partir du menuANALYZE en sélectionnant ensuite MemoryUsage : Fig.2 et 3. Une fois l’analysedémarrée, il est possible de visualiserl’évolution de la mémoire (escaliers bleus) etmême le déclenchement des garbagecollections (triangles rouges) : Fig.4. Il estpossible de prendre des snapshots quicorrespondent aux dumps d’avantdirectement depuis la session de profilage :Fig.5. Une fois les snapshots pris, il ne reste

Fig.3

Fig.1

Fig.5

Page 18: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

18

Debug

Fig.10

plus qu’à arrêter le profilage. Nous pouvonsdéjà voir que plus de 122 Mo (pour 596objets) sont nouveaux et toujours enutilisation : Fig.6. Ensuite, il vous suffitd’effectuer un clic-droit sur le snapshot finalpuis Compare to / Snapshot #1 pourdemander à Visual Studio de nous mettre enévidence les objets qui diffèrent entre lesdeux captures : Fig.7. En triant sur lacolonne Count Diff, 12 instances deSampleDataGroup sortent du lot. Ces objetsne sont pas libérés, et, avec l’optiond’affichage Paths to Root, il est facile deremonter aux objets qui empêchent leurlibération ("roots" ou racines). En effet, nousavons comme racine un objet de typeSampleDataSource qui garde une référencesur une ObservableCollection référençantelle-même une List contenant nos 12instances de SampleDataGroup qui sontdonc toujours forcées de rester en mémoire(puisqu’étant référencées).Il ne reste plus ensuite qu’à rechercher dansle code de l’application pour quelle raisonces instances sont sans cesse ajoutées àcette liste; un indice : il n’est pas testé que lemodèle objet a déjà été chargé.A noter que, dans le tableau listant lesobjets, le nom du type de l’objet (le nom dela classe) est cliquable pour afficher le codesource correspondant : Fig.8.Il est donc facile d’en rechercher toutes les

utilisations par le code en cliquant sur le lienreferences que nous propose Visual Studioau-dessus la définition de la classecorrespondant à l’objet : Fig.9.

Comment améliorer l’utilisation mémoire d’une application WindowsStore Javascript ?Même si le code de votre application negénère pas de fuite mémoire, avant de lasoumettre au Store Windows, il estnécessaire de vérifier qu’elle n’est pas tropgourmande en mémoire. Car si tel était lecas, elle ne serait pas fonctionnelle sur lestablettes/téléphones possédant peu demémoire RAM. Prenons l’exemple d’une

Fig.9

Fig.8

Fig.7

Fig.6

application de photos en HTML/JavaScript. Le hub "Performance and Diagnostics" deVisual Studio propose le même type d’outild’analyse de pression mémoire en JavaScriptque pour les applications .NET : Fig.10. Lesmêmes fonctionnalités de captures mémoireà tout moment sont disponibles. Ainsi, deux captures sont prises entre unenavigation dans un groupe de photos etl’affichage d’une photo à partir desquellesune comparaison est effectuée ; non paspour trouver les différences comme dans lecas précédent mais pour identifier plusfacilement les objets qui nous intéressent(ceux qui occupent le plus d’espacemémoire) : Fig.11.L’examen permet de révéler rapidement

Page 19: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

19

Debug

Fig.11

en fonction de la densité de pixel de l’écransi nous adoptons le nommage suivant :u image.scale-100.jpgu image.scale-140.jpgu image.scale-180.jpgPour plus d’informations sur l’adaptation auxdifférents écrans et résolutions, voici le pointd’entrée : recommandations en matière demise à l’échelle d’après la densité en pixels -http://aka.ms/pixelscaleIl est à noter que les fonctionnalités quenous venons de vous présenter ne selimitent pas aux applications Windows StorePC/Tablettes mais sont aussi fonctionnellespour les applications Windows Phone 8.1.

p

Fig.12

plusieurs tags <img> de plus de 200Mo.Volumineuses comme images tout de même !Fig.12. Après investigations, les images surle disque ne font pas plus de 14Mo mais leurrésolution est souvent supérieure à 17000 x4500 ! Une fois décompressées pour êtreaffichées, ces images ont besoin de 17000 x4500 x 24 (bits par pixel) / 8 (pour avoir desoctets) = 229Mo. CQFD.Par conséquent, la solution est de retravaillerces images avec un outil comme Paint.NETpar exemple, pour en sauvegarder plusieurstailles et les utiliser en fonction de larésolution de l’écran et la densité de pixels.Lors de l’exécution, Windows nous facilite letravail car il va sélectionner l’image adéquate

RessourcesDébogage et diagnostics :http://aka.ms/vsdiag

Nouveautés pour les deux derniers Updatede Visual Studio 2013 :http://www.visualstudio.com/news/2014-aug-4-vshttp://www.visualstudio.com/news/vs2013-update4-rtm-vs

Recommandations en matière de mise àl’échelle d’après la densité en pixels :http://aka.ms/pixelscale

Using file or image resources (HTML) :http://aka.ms/appstart

Page 20: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

20

Preview 2015

Cloud FirstDerrière toute application mobile, il y a desAPI REST exposant les services du back-office. Avec VS 2015, vous pouvezdévelopper des applications Web modernesbasées sur ASP.NET 5. Cette toute nouvelleversion offre un modèle de programmationunifiée entre ASP.NET MVP et Web API, uneexpérience de développement sanscompilation, une configuration basée parenvironnement de déploiement. Maissurtout, cette version s’exécute sur lenouveau runtime .NET Core, qui est opensource, peut s’exécuter aussi bien sousWindows que sous OS X et Linux. Il supportele side-by-side versioning. Ce dernier pointoffre la possibilité d’exécuter en mode côte àcôte des applications Web exploitantdifférentes versions de librairies sans

Mobile FirstVS 2015 vous donne le choix des armes.Vous pouvez opter pour le développementde code natif partagé avec Visual Studio C++for Cross-Plateform Development. Il pourraêtre utilisé dans des applications Android ouWindows ou encore dans des applicationsXamarin Android.Si vous souhaitez capitaliser sur voscompétences de développement C#, vouspouvez privilégier l’utilisation de Xamarindont l’intégration avec Visual Studio 2015 aencore été améliorée avec des modèles deprojets Xamarin proposés en standard.Xamarin vous permet de développerdes applications mobiles natives ciblantiOS, Android et Windows Phone enmutualisant un maximum de codemétier et UI en C#.Si vous souhaitez capitaliser sur voscompétences de développement Web,Visual Studio Tools for Apache Cordovaest fait pour vous. Cette nouvelleversion supporte Apache Cordova 4.0.0et améliore l’intégration des outils dediagnostics distants, notamment pourla plateforme iOS, dans Visual Studio.Enfin, une des annonces majeures estla mise à disposition d’un émulateurAndroid intégré à Visual Studio 2015 etsupporté par la plateforme devirtualisation Hyper-V au même titreque l’émulateur Windows Phone. Cetémulateur supporte une configurationSmartphone 5’’ et une configurationtablette 7’’ avec KitKat 4.4.2.

Visual Studio 2015 : Mobile First, Cloud First

interférence. L’ensemble de ces avancéespermet de plus d’exécuter ces applicationsWeb ASP.NET 5 dans des conteneurs Dockerqui pourront être hébergés soit On-Premisesoit dans le Cloud sans adaptationparticulière en adoptant une architecture demicroservices.La version 7 d’Entity Framework permet, elleaussi, de nouveaux usages adaptés auxsolutions Cloud avec le support de bases dedonnées non relationnelles telles que lestables de stockage Azure ou encore Redis.Son nouveau runtime est compatible avecASP.NET 5. Afin de travailler au mieux avecles ressources Cloud d’Azure, de nouveauxoutils font leur apparition pour étendre VS2015 comme les Azure Resource ManagerTools, HDInsight Tools et la gestion des AzureWebJobs.

Microsoft fournit aussi un AzureCloud Code Analysis Pack quiessayera de détecter pour vous deszones de votre code qui peuventcauser des anomalies lors de la miseà l’échelle de votre application. Ilvous suggérera alors des designpatterns pour améliorer votre code.

Et le reste…De nombreuses autresfonctionnalités sont proposéescomme les Smart Unit Tests, lesupport de C++ 11 et 14,l’amélioration des outils dedébogage et de diagnostic, laversion 2.0 d’Application Insights…Je vous invite à visionner leswebcasts techniques qui ont étédiffusés à l’issue de l’événementConnect() pour les découvrir.

p

La version preview de VisualStudio 2015 a été dévoiléeen novembre 2014 lors del’événement Connect(). Cequ’il faut retenir de cettenouvelle version : c’estl’effort tout particulier qui aété mis en œuvre pourpermettre à chaqueentreprise de développerdes solutions qui adoptentune démarche Mobile First,Cloud First.

François Bouteruche, MVP ALMBlog :https://francoisbouteruche.wordpress.com/

Page 21: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

21

Le développement et le Cloud

DevOps se concentre sur lasuppression des barrièrestraditionnelles entre les équipes dedéveloppement et d’exploitation,et applique les pratiques agilescôté exploitation, grâce à desservices, plateformes et outilshybrides. Cette agilité permet unmeilleur partage des objectifs etune meilleure visibilité desapplications et des contraintesentre les équipes dedéveloppement et d’exploitationafin d’obtenir une plus grandeefficacité de travail.Les outils DevOps de Microsoft,comme Visual Studio ReleaseManagement, Visual StudioApplication Insights, Visual StudioOnline, System Center et lesservices Microsoft Azure, vouspermettent d’adapter les processuset les flux de travail à vos besoinsspécifiques, et d’intégrer d’autresoutils pour couvrir desenvironnements hétérogènes touten exploitant vos investissementsexistants. En adoptant les outilsDevOps de Microsoft, vous vousconcentrez sur ce qui compteréellement pour votre entrepriseen fournissant à vos équipes desoutils adaptés à leurs besoins.

Raccourcissez les cycles, détectezet corrigez plus rapidement desproblèmes en production.Améliorez la fiabilité de vosapplications et testez deshypothèses pour mieux orientervos investissements endéveloppement.

Les défis d’aujourd’hui.Les utilisateurs d’appareils mobiless’attendent à une nouvelle générationd’applications. Leurs exigencesconcernent des expériences riches surl’appareil de leur choix. Pour répondre àcette attente, les développeurs doivent :Optimiser les applications pourmobiles : créer la meilleure expérienceutilisateur sans ralentir la productivité nila mise sur le marché.Construire autour de l’existant :rendre disponibles les données du cœurde métier et les applications del’entreprise aux utilisateurs mobiles aulieu de créer des applications isolées.

LE DéVELOPPEMENT MOBILERéaliser la transformation mobilerapidement : les utilisateurs mobilessont en permanence à la recherche del’innovation. La mise sur le marché d’uneapp doit être très rapide, le « time tomarket » devient critique, car il peut fairetoute la différence entre une réussite etun échec.

Et si vous pouviez...... créer des expériences pour desappareils mobiles Windows, iOS etAndroid en utilisant la puissance etl’efficacité de Visual Studio, avec desservices dans le Cloud capables demonter en charge instantanément et

connectés à vos données, vosapplications et vos identités ?

Visual Studio et Azureconstituent la solutioncomplète adaptée auxcompétences déjà existantes

dans vos équipes. C’est unensemble d’outils, de technologies

et de services dans le Cloud mis à ladisposition des développeurs pourconstruire, tester, déployer, exploiter etsuperviser des applications pourmobiles.

Une solution complète pour créer desexpériences attrayantes sur desappareils Windows, iOS et Android.

DEV/TEST : DéVELOPPEMENT CLOUD ET ENVIRONNEMENTS DE TEST La solution de test et de développement Microsoftest construite sur une plateforme professionnelle quipeut faire face aux chargesles plus lourdes, que ce soitdans votre entreprise oudans le Cloud, une solutioncomplète de développementet de test sur demande, dansle Cloud.Microsoft Azure vous permetd’évoluer vers le Cloud àvotre rythme. Avec desservices d’infrastructure etde développement quis’intègrent parfaitement dans votre environnement On Premise, vous pouvez facilement faire migrer tout oupartie de vos éléments vers une infrastructure dedéveloppement dans le Cloud.

Construisez sur demande et en quelques minutes des environnementscomplets de test et de développement d’applications pour Windows oules autres plateformes.

DEVOPS

Page 22: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

22

MSDN Platforms

Dans un environnement de préproductionou dev/test, chaque utilisateur qui accède àl’environnement doit avoir une licence pourle logiciel qu’il utilise. Le programme delicencing est souvent coûteux et difficile àgérer pour des dev/test travaillant de façonindépendante. MSDN Platforms est un nouvel abonnementde Microsoft permettant d’optimiser larentabilité d’acquisition de licenceslogicielles de Microsoft pour les personnesimpliquées dans le processus dedéveloppement et de test, mais quin’utilisent pas l’offre complète des outils dedéveloppement Visual Studio.Chaque individu avec un abonnement MSDN

MSDN Platforms

Platforms accède aux logiciels, services etressources dont il a besoin pour créer desapplications de qualité pour le Web, leCloud, et Windows sans avoir à acheter deslicences logiciels supplémentaires. MSDNPlatforms fournit également un support etdes outils de formation qui peuventcontribuer à élucider les obstacles lors dudéveloppement et réduire les coûts deformation IT.L’abonnement MSDN Platforms inclut :u Logiciels Microsoft pour les

environnements Dev/Testu Logiciels et Services Microsoft pour une

utilisation en productionu Support et formation

SCéNARIOS D’USAGE CLIENTL’abonnement MSDN Platforms a étédéveloppé spécifiquement pour lespersonnes qui font partie du processusde développement et qui doivent avoiraccès aux logiciels et services Microsoft,mais qui n’utilisent pas les outils dedéveloppement Microsoft en fonctionde leurs rôles.Le personnel des Opérations IT peutprofiter de l’accès aux logiciels etservices Microsoft pour mettre en placedes environnements de développementet de test pour leur organisation IT. Lesdéveloppeurs multiplateformes ontaccès aux logiciels et services Microsoftpour créer des applications pour leWeb, le Cloud et Windows.

LES AVANTAGES DE MSDN PLATFORMS

Optimisation du ROI Un processus de développement efficace

Une entreprise toujours à lapointe de l’innovation

MSDN Platforms permet d’optimiser leretour sur investissement pour certainsindividus impliqués dans le processus dedéveloppement. C’est un moyen trèsrentable d’acheter des logiciels, desservices, de la formation et desressources pour un environnement dedéveloppement et des besoins de test.

MSDN Platforms contribue à améliorer laproductivité grâce à un accès facile àl’ensemble des ressources telles que lesupport professionnel et communautaireet l’e-learning, à plus de 15.000 logiciels.

MSDN Platforms permet d’équiperl’entreprise des dernières versions delogiciels, des services et support, ainsi,l’entreprise reste à la pointe del’innovation.

Tous les avantages de MSDN, sans Visual Studio ! MSDN Platformspermet l’accès des utilisateurs aux logiciels et services Microsoft.

Page 23: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans

http://www.visualstudio.fr : le site de l’équipe France.Retrouvez toutes lesinformations produits,livres blancs en Français etl’actualité de Visual Studio

et MSDN. Si vous avez un projet ou unequestion, contactez l’équipe marketing etvente au 01 45 36 77 17 [email protected] liste de nos partenaires revendeurs etservices est aussi disponible sur ce site.

Microsoft VirtualAcademy : Ceux qui réussissent necessent jamaisd’apprendre et les

technologies majeures ne cessent jamaisd’évoluer. Microsoft Virtual Academy (MVA)propose des formations Microsoft en ligneentièrement gratuites, menées par desexperts dans 12 langues différentes. Nous vous recommandons notamment le cours suivant : http://aka.ms/mvavs

L’assistant Visual Studio : en ajoutant un assistant à Visual Studio vouspourrez suivre des tutoriaux interactifs, vouspourrez lancer tous les pas-à-pas créés par lacommunauté. L’Assistant Visual Studio est unplugin additionnel à Visual Studio qui permetde lire des cours directement dans l’IDE touten permettant d’interagir avec celui-ci poureffectuer des tâches comme Ouvrir un fichier,Ouvrir une solution, Remplacer du texte,Ajouter un item dans un projet, Build unesolution... et bien d’autres !http://aka.ms/assistantVS

Developer code samples : Besoin d’aide pour utiliser une nouveauté duframework ou encore débuter un nouveauprojet ? Quoi de mieux qu’un bon exemplepour découvrir comment utiliser lafonctionnalité attendue ? C’est ce quepropose ce site : un ensemble d’exemplessur des points précis qui vous permettrontde progresser et d’appréhender facilementles différents aspects du langage.http://code.msdn.microsoft.com/

Channel 9 : Ce site regroupe les vidéosdes personnes quiconçoivent les produitschez Microsoft. Il estégalement un lieud’échange autour destechnologies. Les nombreuxévénements Microsoft qui

ponctuent l’année sont pour la plupartdisponibles sur ce site, notammentl’événement Connect() ; du mois denovembre 2014, pour la Preview de VisualStudio 2015. http://channel9.msdn.com

Le site MSDN (Microsoft DeveloperNetwork) réunit l’ensemble des ressourcestechniques et des services dont ledéveloppeur sur technologies Microsoft abesoin. Vous pouvez également participeraux discussions dans les Forums MSDN,rejoindre les communautés de développeurset rencontrer les experts Microsoft France.Inscrivez-vous sur ce site à la newsletterMSDN. Elle propose le meilleur desinformations techniques en provenance deséquipes de développement de MicrosoftFrance et de Microsoft Corp, mais aussi descommunautés francophones.http://msdn.microsoft.com/

Visual Studio Community 2013 :un IDE complet gratuit, des outils dedéveloppement mobiles cross-plateformespour Windows, iOS et Android, et l’accès àdes milliers d’extensions. Cette édition deVisual Studio est disponible gratuitementpour les étudiants, les contributeurs opensource, les start-ups, les développeursindépendants et sous certaines conditionsles PME. Pour télécharger cette édition :http://aka.ms/VScommunityFR

Essayez Microsoft Azuregratuitement pendant un mois : inscrivez-vous et obtenez 150 € à utiliser surtous les services Azure : machines virtuelles,bases de données SQL, sites Web, Push notifications sur mobile, diffusion en

continu de médias, Active Directory...Tous les détails sur http://azure.com

L’accélérateur Windows est un programmed’accompagnement personnalisé et gratuitpour aider les développeurs à créer leurapplication Windows 8 ou Windows Phone,et la publier sur le store Microsoft .http://www.microsoft.com/france/msdn/acceleratorwin8/win8.aspx

Pépinière Microsoft Azure : Vous avez un projet Cloud ? Une équipeMicrosoft vous accompagne dans votreprojet et met à votre disposition de l’aidepersonnalisée et gratuite. De la mise àdisposition de ressources techniques à uncoaching technique et du conseil business.Plus d’informations sur ce lien :http://www.microsoft.com/france/msdn/pepiniere-microsoft-azure/

BizSpark : est un programme réservé

aux start-ups de logiciels : sociétés de moinsde 3 ans, moins de 1 million de $ de CA etdont l’activité principale est la création d’unesolution logicielle on-premise ou dans leCloud. Les sociétés membres de BizSparkbénéficient de licences de développementvia un accès à MSDN Premium, du support,115 € par mois de crédits Azure pour 5associés pendant 3 ans. Plus d’informations :http://www.microsoft.com/bizspark/

L’AccélérateurMicrosoft Venturesà Paris : Un des 7 accélérateurs startupde Microsoft dans le monde,notre programme de 3 moispropose un vrai tremplin pourvotre entreprise. Nous travaillonsnotamment avec des startups àfort potentiel international sur ledéveloppement de leur produit, business etaussi le financement de leur entreprise. Pourplus d'informations, rendez-vous surmicrosoftventures.com/paris

23

Ressources

Evlampia Thoreau, Chef de Produit Visual StudioSite : www.visualstudio.fr

Page 24: Productivité Performance Mobilitédownload.microsoft.com/documents/France//visual_studio/...puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans