Productivité Performance Mobilité
édito Visual Studio : de 2013 à 2015 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. Visual Studio a toujours accompagné le développeur, supporté les nouveaux Windows et les évolutions techniques et technologiques. Que de changements en 20 ans et pas seulement sur l ergonomie et l interface! Visual Studio 2015 (VS2015) est un concentré de nouveautés et d évolutions : nouveau framework.net, nouvelle architecture de compilation, nouveau ASP.Net VS2015 sera le compagnon idéal pour développer des applications Windows 10. Visual Studio sera, plus que jamais, tourné vers le développement mobile et le Cloud Computing (développement Azure et intégration avec Visual Studio Online). Dans ce livre blanc, nous avons voulu mettre l accent sur Mobile First, Cloud First et comment VS2015 améliore la productivité du développement et le confort de programmation au quotidien. VS2015 apporte de nombreuses nouveautés et améliorations pour le développeur : Intellisense, refactoring, tooltips, Code Analysis, Code Lens, Code Map, Smart Unit Tests, NuGet, Extensibilité Plus que jamais, Visual Studio chouchoute le développeur! Autre point fort de VS2015 : le développement multiplateforme mobile, que ce soit en natif ou en JavaScript/HTML/CSS. Et VS2015 laisse le choix : C++, Apache Cordova, Xamarin. Le développeur peut développer rapidement ses apps pour Android, ios et Windows. Mobile First n est pas que du marketing, c est une réalité! Dans ce livre blanc, d autres aspects de Visual Studio sont abordés : comment faire des builds dans le Cloud, utiliser les puissantes fonctions de Release Management, monter des scénarios de Load Testing (dans le Cloud), et découvrir la puissance, parfois insoupçonnée, du Hub and Diagnostics de Visual Studio 2013. Sommaire Build avec Visual Studio Online 3 Load Testing 4 Orchestrez vos déploiements avec Release Management 6 Visual Studio et la mobilité 8 Boostez votre productivité avec Visual Studio 2015 13 Debugging & performances 17 Visual Studio 2015 20 DevOps, Dev/Tests 21 MSDN Platforms 22 Ressources 23 François Tonic éditeur & rédacteur en chef de Programmez! 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 Tonic Coordination Microsoft : Evlampia Thoreau - Maquette : Pierre Sandré - Relecture : Olivier Pavie - Imprimé en France. Février 2015. - Photos et illustrations tous droits réservés. 2
Build avec Visual Studio Online Build dans le Cloud Le processus de build est un élément important dans la vie d un projet. En effet dans une intégration continue, il permet de valider que le code source compile suite à chaque modification. En exécutant les tests, il est aussi le garant qu aucune régression n est introduite. Enfin il fournit un processus commun de gé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. Pierre-Henri Gache Consultant senior chez Cellenza Cellenza - Software Development Done Right Blog : http://www.pierrehenrigache.com/ Michel Perfetti Consultant senior chez Cellenza MVP VS ALM Blog : http://www.buildmeimfamous.net Twitter : @miiitch Comment créer un build La première étape consiste à se diriger vers la rubrique «Builds» du «Team Explorer» de Visual Studio. Si vous avez déjà créé des builds avec TFS, le processus est identique Fig.1. Dans cette section du «Team Explorer», vous pouvez créer votre build via le bouton «New Build Definition». Ce dernier déclenchera l ouverture de l écran de configuration qui regroupe plusieurs onglets et vous permettra de paramétrer les différentes options du build. Les deux plus importants sont «Trigger» et «Process». Le premier permet de configurer la manière dont sera déclenché le build : de façon manuelle, lors de chaque check-in ou encore à un horaire déterminé par exemple. Le second quant à lui contient le paramétrage du processus de génération. Pour terminer la création, il suffit de sauvegarder le paramétrage par défaut et vous aurez alors un build manuel qui compilera votre projet et exécutera les différents tests disponibles. Pour aller plus loin, vous pouvez customiser les différents paramétrages disponibles. Pour des besoins spécifiques, vous pouvez également éditer le template de build. Vous aurez alors accès au workflow complet qui sera exécuté Fig.2. Limitations par rapport à TFS Le contrôleur de Build étant hébergé dans le Cloud, 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 de contraintes qu il faut avoir à l esprit. Par exemple le processus de build ne pourra pas utiliser un logiciel autre que ceux installés par défaut. Ensuite le build ne devra pas excéder une heure et occuper plus de 75 Go. Enfin il ne devra pas avoir besoin des privilèges administrateurs ni être en mode interactif. Concernant le premier point, vous pouvez retrouver la liste des outils préinstallés à l adresse suivante : http://goo.gl/johe4d. Si toutefois vous rencontriez une de ces contraintes, la meilleure solution est d utiliser un contrôleur local pour les build en question, les autres pouvant être hébergés dans le Cloud séparément. Déploiement sur Azure Dans le cadre d un développement se destinant à être hébergé sur Azure, vous avez la possibilité de configurer le déploiement automatique de votre site lors de chaque check-in. Pour cela il suffit de se rendre sur la page de votre «Website» du portail Azure. Sur cette dernière vous retrouverez l option «Integrate source control». Cette dernière vous permet d associer votre «Team Project» au «Website» Fig.3. Lorsque l association sera effectuée, vous pourrez constater qu un nouveau build est disponible dans Visual Studio. Pour terminer le processus, il faut aller sur l onglet «General» pour activer le build. Ensuite, dans l onglet «Process» il faut paramétrer le chemin du «sln» correspondant à votre projet et terminer en enregistrant la configuration Fig.4. Maintenant lors de chaque commit, un build sera déclenché et votre site sera compilé et déployé sur votre «Website». Build vnext Le build de TFS n a quasiment pas évolué depuis TFS 2010 : le build est un processus sensible qui se prête mal à de grosses évolutions à chaque version de TFS. La migration de tous les builds pourrait être un frein à la migration. Brian Harry a annoncé lors de la conférence Connect de novembre 2014 une révolution : le système de build va changer pour s adapter aux nouveaux défis du développement d application moderne : Cloud & Cross Platform. De plus cette nouvelle version qui fonctionnera en parallèle de la version courante aura les avantages 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! Conclusion Le build est la première étape dans le processus d industrialisation et d automatisation de vos développements, donc ne la négligez pas. Testez les différents modes de déclenchement, déployez en staging, activez les tests : toutes ces fonctionnalités vous feront gagner du temps et en qualité. p Fig.3 Fig.1 Fig.2 Fig.4 3
Load testing dans le Cloud Load testing, indispensable Dans un monde hyper connecté où les sites Web et autres Apps sont notre quotidien, tester les performances de ces derniers que ce soit avant une release ou bien régulièrement pendant le cycle de vie de l application devient indispensable. Une telle démarche permet de mesurer la rapidité d exécution du code implémenté (performance Testing), son comportement face à la charge utilisateur attendue (Load Testing), le point de rupture de l application en termes de charge utilisateur (Stress Testing) et enfin, identifier dans quelle mesure l application sera scalable pour supporter la charge future (Capacity Planning). Fig.2 Fig.1 Michel Hubert, Manager Pôle Cloud & Integration, MVP Azure, Cellenza Radoine Douhou, Architecte, Cellenza mais dans la pratique, difficile à construire En pratique, mettre en place la solution de tests adéquate peut s avérer complexe. L infrastructure hébergeant la solution de test doit être suffisamment performante pour pouvoir supporter la charge produite par les injecteurs de stress, ces derniers devront être suffisamment paramétrables pour proposer plusieurs types de scénarios de test, etc. Difficile de justifier de tels investissements (en temps et en argent) pour une solution dont l usage et la valeur ajoutée peuvent apparaître peu évidents pour des décideurs loin de l IT. Cloud load testing avec VSO, la solution Pour faire face à cette problématique, Visual Studio (depuis la version 2013 Ultimate) et Visual Studio Online (VSO) proposent une solution de test basée sur la plateforme Azure nommée Web Performance and Load Test. Cette solution est la réponse aux peines communément rencontrées lorsque l on fait du testing : u Plus besoin de construire et maintenir l infrastructure hébergeant la solution. VSO provisionne automatiquement l infrastructure le temps du test, ce qui impacte de façon très bénéfique votre TCO. u Plus de problème de scalabilité liée aux limites de l infrastructure et de la technologie de test, VSO provisionne automatiquement le nombre d injecteurs nécessaire pour pouvoir exécuter vos stress test. u Le même «script de test» que vous pouvez exécuter dans le Cloud Azure ou à demeure en fonction de vos contraintes d accessibilité à l application Web à tester. Comment ça marche? Comme le montre le schéma de la Fig.1, le projet «Load Test» implémenté dans Visual Studio 2013 Ultimate peut être publié dans votre souscription VSO, lequel tire profit de l infrastructure Cloud Azure pour provisionner les agents nécessaires à l exécution dans les conditions adéquates du scénario de test. Ces agents sont chargés de requêter l application Web alors que le Controller collecte 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 Visual Studio ou bien dans Excel. Prenons un exemple Avant de démarrer un load test, il faut créer un projet «Web Performance and Load Test», à partir du menu «File/New Project». Après avoir créé vos tests Web, par enregistrement par exemple d un parcours Web, ajoutez un test de charge (Fig.2.) : Clic droit sur le projet, sélectionnez Add puis Load Test et suivez les directions de l assistant «Load Test» pour définir un certain nombre de paramètres comme le nombre d utilisateurs, la durée du test, le temps de «warm up», le test mix entre les différents Web tests, la répartition entre les profils de navigateurs, les bandes passantes, tout cela en fonction de votre cible. Azure, à toi de jouer Typiquement, tout commence à présent. À ce stade, l équipe de tests a besoin d une infrastructure pour lancer les tests. Plusieurs options lui sont offertes : soit elle utilise un infra on-premise, soit elle déploie des Test Agents et un Test controller dans Azure (IaaS), soit elle peut opter pour VSO Load Testing, une solution en mode SaaS de tests de charge. Pour ce faire, il faut créer un nouveau fichier «TestingSettings» et sélectionner l option «Visual Studio Online». Par défaut, les tests de charge en mode Cloud vont automatiquement démarrer un agent hébergé dans Azure tous les 500 utilisateurs. Chaque agent possède 4
Load testing dans le Cloud deux cœurs. Il est possible de modifier ce comportement avec la propriété du «RunSettings» nommée «Agent Count (Total Cores)». La version actuelle vous limite à un maximum de 10 agents ou 20 cœurs. Les tests de charge en mode Cloud requièrent également au minimum 25 utilisateurs par cœur. Ainsi si vous souhaitez 10 cœurs pour 10 utilisateurs, il ne vous sera alloué qu un agent. En lançant le test, Visual Studio vous indique le nombre réel de cœurs utilisés, mais surtout le nombre de virtual users/minutes vous permettant ainsi de connaître le coût de votre test. En effet, l unité d œuvre utilisée pour mesurer la consommation est la minute d utilisateur virtuel qui correspond au nombre d utilisateurs virtuel simulé par les agents multiplié par le temps du test. Si les agents simulent 10 utilisateurs par seconde pendant 1 minute, nous consommerons 600 utilisateurs virtuels/minutes. Visual Studio Online offre 20 000 utilisateurs virtuels/minute par mois. Au-delà de ce seuil, il vous sera facturé 0,0015 l utilisateur virtuel/minute. Un coût somme toute négligeable par rapport à l importance de ce type de tests et par rapport à une infrastructure dédiée on-premise. Données dynamiques Certes, des tests Web statiques vous donnent des informations détaillées sur la performance de vos applications, mais des tests Web dynamiques (plus proche de la réalité) vous donneront des informations plus précieuses. Par exemple, au lieu d envoyer en permanence l id 1000 pour afficher une page produit, il fait sens d utiliser différents id pendant l exécution d un test. Vous pouvez le faire avec une Fig.3 technique avancée appelée Data Binding. Pour associer des données à un test Web, vous devez tout d abord ajouter une source de données à votre test Web via la barre d outils. Les datas sources supportées sont des fichiers XML, CSV et des bases de données. Les fichiers XML et CSV sont copiés sur les machines virtuelles des agents. Donc pour les tests de charge en mode Cloud, les agents doivent être en mesure de se connecter à la source de données. Par conséquent, les sources de données de type base de données doivent reposer sur Azure SQL Database. Les propriétés de votre data source vont indiquer comment les tests vont parcourir les données : Do Not Move, Random, Sequential ou Unique. Cette dernière option n est pas compatible avec VSO. Pour finir, après avoir ajouté votre source de données, les valeurs de vos paramètres qui remplacent les chaînes de caractères fixes deviennent des listes déroulantes afin de les faire correspondre avec une colonne de votre source de données. Comprendre les tests de charge Les principales questions que vous vous posez lors d un test de charge sont les suivantes : 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 Studio fournit plusieurs types de rapports. Il va automatiquement les stocker avec les données d exécution à la fois pour vous et votre équipe dans VSO. Par exemple, grâce au rapport «Throughput», le graphique (Fig.3.) vous montre l exécution du test de charge et vous êtes capable en un coup d œil de vérifier le bon comportement ou non de votre application. Si des temps de réponse rapides sont couplés avec un nombre inattendu d erreurs, vous savez tout de suite qu il y a un service défaillant et vous pouvez stopper à tout moment votre test. Un autre aspect intéressant est la possibilité de travailler dans un environnement collaboratif. Les équipes agiles sont particulièrement intéressées par l impact sur la performance du sprint en cours. Pour y répondre, Visual Studio fournit deux rapports basés sur Excel qui vont vous aider à comparer deux tests et à examiner les tendances. Pour cela, téléchargez les données de VSO, cliquez sur le lien «View Report». Cela ouvrira une vue sur vos données incluant l option d ouvrir et de comparer vos jeux de tests dans Excel. Application Insights Les erreurs découvertes lors d un test de charge doivent être couplées à des techniques de collection de diagnostics. La plupart du temps il est difficile de diagnostiquer ces erreurs à cause d éléments de trace et de logs insuffisants ou incomplets. Depuis l update 2 de Visual Studio, il est possible d intégrer Application Insights avec vos tests de charge. Cette intégration avec un outil de monitoring digne de ce nom permet de tester des applications durant toutes les phases d un projet, du développement à la production. Cet outil permet aux équipes projet de trouver facilement les erreurs indépendamment du moment où elles ont été trouvées même si l erreur s est produite une semaine auparavant. Pour inclure les informations de diagnostics et de performance à vos tests de charge avec Application Insights, clic droit sur le nœud «Applications» de votre définition de tests. Ensuite, sélectionnez les composants d application insights que vous souhaitez inclure dans vos rapports de tests de charge. Conclusion VSO nous facilite la mise en œuvre de tests de montée en charge grâce à la puissance du Cloud Azure vous permettant de tester au plus tôt le comportement de votre application lors de pics de charge prévisibles ou non. Plus d excuses pour ne pas inclure cette typologie de tests dans votre démarche ALM /DevOps. Pour finir, Microsoft a mis à disposition récemment des REST APIs qui vous permettent également d automatiser l exécution de ces tests. p 5
Release Management Orchestrez vos déploiements avec Release Management Gagner en fiabilité et en efficacité lors des déploiements est devenu un point fondamental dans la réussite d un projet informatique. Pour ce faire, les méthodologies sont souvent à adapter, et l aide d outils est parfois nécessaire. La réponse de Microsoft à cette problématique est Release Management! Ce dernier permet d orchestrer facilement et efficacement le cycle de déploiement de n importe quelle application. Jérémy LANDON Consultant ALM - Infinite Square Pourquoi s outiller devient indispensable pour le déploiement? Parce qu une application peut être multienvironnements, avec de nombreux critères de validation et de nombreux intervenants : u Les besoins de backup de l intégration sont nettement inférieurs à ceux de la production, u L environnement d intégration ne sera basé que sur une seule machine, contrairement aux autres qui nécessitent un environnement plus riche, u Un système permettant de garder la continuité du service de l application doit potentiellement être mis en place lors de la migration sur la production, etc. Chaque étape du déploiement a son propre workflow, ses propres critères de validation et ses propres validateurs. Bref, sans une bonne organisation, cela peut devenir extrêmement complexe et anarchique. C est d autant plus vrai lorsque l on désire mettre en place du déploiement continu. En effet, la gestion du déploiement de l application est bien souvent chronophage et nécessite l intervention de nombreux acteurs. De plus cette tâche est risquée, stressante et conflictuelle. Chaque intervenant travaille en silo, suit sa propre procédure, et mobilise tous ses efforts dans cet instant où tout échec entraîne une perte de temps et de ressources. La conclusion est simple, un déploiement coûte cher, est très risqué, et demande une très bonne organisation. Un orchestrateur devient vite indispensable pour fournir un déploiement stable, modulable et évolutif. Microsoft propose depuis 2013 sa solution qui a l avantage d avoir, tout comme Visual Studio, un cycle de développement très court. Tous les trimestres, de nouvelles fonctionnalités sont livrées sur Release Management. L outil est compatible avec Team Foundation Server 2010, 2012, 2013 et Visual Studio Online! Comme sait le faire Microsoft, ces fonctionnalités s intègrent parfaitement avec les autres outils de la compagnie. Microsoft mise énormément sur cet outil et les évolutions ne cesseront d arriver. C est aujourd hui une valeur sûre pour améliorer efficacement la fluidité du déploiement des applications. Avec Release Management il est aisé d adapter son processus de déploiement en Fig.2 Fig.1 fonction de l environnement cible (backup, chaînes de connexions, plateforme de déploiement, etc.). L un des buts étant d automatiser au maximum le processus de déploiement afin de gagner en productivité et en fiabilité. La solution est décomposée en trois modules distincts à savoir : u L agent de déploiement est un service à installer sur les serveurs cibles. Il permet de réaliser un déploiement sur ceux-ci depuis une machine distante. Par contre, il est facultatif! En effet Release Management propose deux façons pour déployer : via l agent ou via du WinRM (Powershell DSC), cette dernière est nommée VNext. Fig.4 Fig.3 6
Release Management u Un client WPF pour administrer le serveur Release Management et modéliser et configurer les chaînes de déploiement. u Un serveur Release Management, comprenant une base de données SQL et exposant différents services utilisés par les autres composants. Comme pour l agent, il est facultatif, en effet Microsoft propose Release Management en mode SaaS via Visual Studio Online, c est ce dernier qui fera office de serveur Release Management dans le cloud.. Chaque module étant indépendant, la solution de Microsoft offre l avantage d être flexible, et ces deux modes de déploiement permettent d offrir une solution adaptée à tous. De plus Release Management offre à disposition des utilisateurs différents outils pour aider à la mise en place d un déploiement (installer ou désinstaller des composants, interagir avec SQL Server, déployer des rapports dans Microsoft SQL Reporting Services, gérer les fichiers, interagir avec Azure ). Des outils sont fournis par défaut, mais ils sont facilement extensibles, cette souplesse offre des possibilités infinies à l outil. Quelles applications profitent au mieux de Release Management? Toute application a besoin d assurer la qualité de son déploiement, de ce fait Release Management s applique à tous les types applications hébergés dans Team Foundation Server ou Visual Studio Online. Comment Release Management fonctionne-t-il? Le principe de Release Management est simple et part d une logique adaptée au déploiement d application; afin d assurer l intégrité d une application, chaque environnement utilisera les mêmes binaires. Le processus est donc : u Team Foundation Build génère l application et place le résultat dans un drop, u Les binaires de ce drop sont fournis totalement, ou en partie, à chacun des environnements, en fonction de ses besoins Fig.1. Les mêmes binaires, donc le même applicatif! La gestion des environnements est totalement gérée grâce à Release Management, et cette tâche, bien souvent difficile, est simplifiée. Comme évoqué précédemment, Release Management propose deux modes de déploiements : u Basé sur les agents de déploiement, u VNext (WinRM). Pour le premier mode, il suffit d installer l agent de déploiement sur la machine de destination. Lors de la configuration de celui-ci, il suffit d entrer l adresse du serveur Release Management : Fig.2. Release Management possède également une très bonne intégration avec Azure. La plateforme Cloud de Microsoft offre de nombreux avantages : flexibilité, coût, rapidité et stabilité. Configurer un serveur par agent est simple, en passant par Azure la tâche est encore plus simple! L outil va se baser sur un compte de stockage Azure, il suffira de fournir la certification de la souscription, le nom de stockage Azure et la clé de souscription. Une fois cette configuration réalisée, Release Management pourra détecter et utiliser les machines virtuelles Fig.3. La notion d environnement est très flexible et aisée à mettre en place dans Release Management; il est d autant plus simple de créer un workflow de déploiement. Release Management offre la possibilité de définir un environnement par étape, et de définir les règles d acceptation de chacune de ces étapes; il est aussi possible d y assigner un utilisateur ou un groupe (issu de Team Foundation Server ou Active Directory). Ces derniers devront valider les différentes phases du déploiement. Le déploiement d un applicatif sur un environnement est composé de 4 phases : u L étape d acceptation : permet d approuver ou rejeter la phase de déploiement [peut être automatisée], u L étape de déploiement : phase durant laquelle l application se déploie, u L étape de validation : phase durant laquelle un utilisateur ou un groupe d utilisateurs valide l applicatif déployé [avec Microsoft Test manager par exemple pour la recette], u L étape d approbation : dernière phase. Assignée la plupart du temps à une personne [mais il est possible de l affecter à plusieurs intervenants], elle permet de valider complètement le déploiement sur l environnement et donne la main à l étape suivante dans le workflow Fig.4. Release Management offre donc une grande flexibilité dans la réalisation de la chaîne de déploiement. Ne reste plus que la dernière phase : la mise en place du workflow de déploiement par environnement. Comme évoqué précédemment Release Management propose deux solutions : l'une basée par agent et l'autre sur VNext. Avec la première solution, Release Management propose une série d outils d aide au déploiement sous forme d actions, d une manière semblable à ceux offerts lors de la réalisation de process de build pour Team Foundation Build [déploiement de DacPac, copie de fichier, Rollback ]. Dans le mode VNext, il sera possible d utiliser un script PowerShell de déploiement ainsi que DSC pour configurer l environnement Fig.5. Au-delà de la technique, Release Management offre, sous forme d un Web access, une interface simple et à la portée de tous pour gérer les approbations des environnements Fig.6. Conclusion Le Release Management est un point important dans la réalisation d un logiciel, au-delà de la méthodologie un bon outillage peut apporter une énorme plus-value. Microsoft fourni avec Release Management un outil simple, flexible et surtout suivi pour aider dans la gestion de déploiement d applications. Enfin le plus gros avantage : que ce soit par Release Management On Premise ou par son homologue Release Management as a Service accessible via Visual Studio Online, mettre en place la solution de Microsoft demande un faible investissement tout en offrant un bénéfice immédiat et durable. p Fig.5 Fig.6 7
Mobilité 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 de devoir cibler les trois plateformes majeures : Android, ios et Windows Phone. Cela implique de devoir développer trois applications, avec trois langages différents, sur trois plateformes différentes. Chaque nouvelle version de l application nécessite une mise à jour des trois développements, chaque correction de bug nécessitant également de repasser sur les trois plateformes. 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 et Microsoft a décidé de prendre le problème à bras le corps en les intégrant dans Visual Studio. Dans cet article, nous étudierons notamment Apache Cordova, les possibilités de développement en C++ dans la version 2015 de Visual Studio, ainsi que les possibilités offertes par Xamarin. Apache Cordova Apache Cordova est un Framework opensource développé par la fondation Apache, permettant de créer des applications mobiles cross-plateformes en utilisant les langages HTML / CSS / JavaScript. L idée est de pouvoir cibler toutes les plateformes mobiles majeures en développant une seule application et en s émancipant des langages natifs comme Java, C#, Objective-C, ou autre, pour pouvoir interagir avec le device. Apache Cordova met à disposition un ensemble d API JavaScript permettant d accéder aux fonctionnalités natives. Comment cela fonctionne? Le principe Le principe d une application Cordova est de développer une application Web, en HTML / CSS / JavaScript, et de la packager sous la forme d une application native. Pour que le rendu de l application Web s adapte à tous les devices, il est nécessaire de développer une application Web responsive, par exemple à l aide du Framework CSS Bootstrap. Pour proposer un rendu plus fini, il est également recommandé de créer une application Web de type Single Page Application (SPA), par exemple à l aide des Fig.1 Fig.2 Frameworks AngularJS ou KnockoutJS. L idée est donc ici d avoir un seul code métier et un design unique sur toutes les plateformes Fig.1. Techniquement, le principe du Framework Cordova est de créer une application native composée uniquement d un composant WebView, propre à la plateforme ciblée. Ce composant WebView naviguera simplement sur l application Web, dont les fichiers (HTML, CSS, JavaScript, font, images, etc.) auront été embarqués en tant que ressources locales de l application native Fig.2. Accès aux fonctionnalités du device Pour pouvoir accéder aux fonctionnalités natives du téléphone, l application ainsi développée va pouvoir s appuyer sur les plugins Cordova. Un plugin Cordova permet d exposer une fonctionnalité native du device via une API JavaScript, qui sera utilisable depuis l application Web. Le rôle du plugin est alors de faire le lien entre l appel JavaScript et l exécution du code natif, en fournissant une implémentation par plateforme. L interface JavaScript étant la même pour chaque plateforme, l utilisation d un plugin se fait de manière identique, quelle que soit la cible. Par exemple, l accès aux contacts du téléphone se fait en utilisant le plugin «Contacts», qui expose les fonctions create, find et pickcontact, permettant respectivement de créer un contact, de rechercher un contact et d afficher un composant natif de sélection d un contact. Apache Cordova met à disposition un ensemble de plugins permettant d accéder aux fonctionnalités basiques du device, comme les notifications, la caméra, les contacts, l accéléromètre, etc. D autres acteurs ont également créé des plugins, y compris Microsoft via sa filiale «Microsoft Open Technology», avec notamment un connecteur Cordova pour Azure Mobile Services, disponible pour les plateformes Windows 8, Windows Phone 8 mais aussi ios et Android. Apache Cordova s appuie également sur une communauté active pour développer de nombreux plugins, majoritairement sur GitHub, comme un scanneur de code barre 8
Mobilité ou de QR Code, des connecteurs Facebook ou encore des notifications «Push». L engouement grandissant autour de Cordova fait que ce Framework devient de plus en plus complet et permet de développer des applications de plus en plus évoluées, tout en gardant l avantage de n avoir qu un seul développement à faire pour cibler plusieurs plateformes. Intégration avec Visual Studio Projet Cordova Visual Studio 2015, actuellement en version Preview, contient des outils permettant de faciliter le développement d applications avec le Framework Cordova. Lors de son installation, il vous sera demandé si vous souhaitez installer les outils de développement cross-platform. En acceptant, une seconde installation téléchargera puis installera un ensemble d outils, comme itunes, node.js, la JVM, le SDK Android et bien d autres Fig.3. Il est également possible de profiter de ces outils avec Visual Studio 2013 via l extension Multi- Device Hybrid Apps, actuellement en CTP 3. Un template de projet Visual Studio permet de démarrer une nouvelle application Cordova. Ce template se trouve dans la section JavaScript et se nomme Blank App (Apache Cordova) Fig.4. Un projet Visual Studio Cordova, d extension jsproj, est composé de plusieurs éléments Fig.5. Le fichier config.xml contient toutes les informations sur l application, notamment son nom, sa version, les domaines externes avec lesquels l application peut communiquer (pour par exemple récupérer des données d une API Web via une requête Ajax), les plugins utilisés, etc. Visual Studio propose un éditeur visuel permettant de renseigner plus facilement ces informations, sans avoir à connaître la syntaxe XML. Bien que très utile, cet éditeur n est pas totalement complet et il arrive régulièrement de devoir éditer manuellement le fichier config.xml. L éditeur visuel permet également de lister l ensemble des plugins proposés par Apache Cordova et Microsoft Open Technology, avec la possibilité de les ajouter au projet. Si le plugin souhaité ne fait pas partie de la liste précédente, il est possible de renseigner l url Git ou le chemin local sur lequel se trouve le plugin. Enfin, l éditeur contient trois onglets permettant de saisir les informations spécifiques aux plateformes Windows, Android et ios. Le dossier «res» du projet Cordova contient toutes les ressources à fournir pour la création de l application mobile, principalement les icônes et les splashscreens. Ces ressources sont regroupées dans un sous-dossier par plateforme, et sont fournies aux dimensions requises, ce qui permet de simplement remplacer leur contenu par celui souhaité, sans avoir à craindre d erreurs dans les dimensions. Le sous dossier «native» du dossier «res» sert à contenir les propriétés Android nécessaires à la distribution de l application, notamment le Keystore. Le dossier «merges» du projet Cordova est lui aussi composé d un sous dossier par plateforme. Chaque sous-dossier sert à définir des scripts spécifiques à une plateforme, par exemple dans le cas où une implémentation du moteur JavaScript d un navigateur mobile nécessite un ajustement. Les autres répertoires «css», «images» et «scripts» sont des dossiers propres à l application Web et peuvent contenir les ressources de l application, être modifiés ou supprimés. Enfin, le fichier index.html correspond à la page d entrée de l application, sur lequel l utilisateur sera dirigé lors du lancement de l application native. Debug Général Visual Studio 2015, ou Visual Studio 2013 combiné à l extension Multi-Device Hybrid Apps, offre un ensemble complet d outils de Fig.4 Fig.3 Fig.5 9
Mobilité Build et de Debug pour les plateformes Windows, Windows Phone, ios et Android Fig.6 et 7. Ripple Ripple est une extension du navigateur Chrome permettant d exécuter l application Cordova dans le navigateur, en émulant un environnement se rapprochant de l environnement mobile Fig.8. Ripple propose actuellement d émuler plusieurs devices, notamment des iphone, ipad, Blackberry ou Android. L avantage de cette extension est de pouvoir débugger rapidement son application depuis le navigateur, sans avoir à déployer sur un device, ou à utiliser un émulateur. Il est également possible d utiliser les outils développeurs de Chrome pour debugger l application, ce qui arrêtera le débuggeur de Visual Studio. Cet outil peut être utilisé pour les premières phases de Debug, afin de vérifier le fonctionnement global de l application ainsi que le design. Il est possible de modifier certaines propriétés du device, comme son orientation, sa position géographique, la batterie, de modifier l accéléromètre, de déclencher certains évènements (Passage en mode avion, etc.) et bien d autres. Ripple s exécutant sur le navigateur, il ne peut pas exécuter certains plugins nécessitant l utilisation du device, comme par exemple la caméra. Pour pouvoir continuer le debug, Fig.6 Ripple propose un mécanisme permettant de saisir manuellement les données qui auraient dû être retournées par l appel au plugin. En revanche, Ripple ne permet pas de se substituer totalement aux émulateurs et aux devices, et il est important de tester l ensemble de l application sur chaque plateforme. Windows Phone Pour le moment, Visual Studio 2015, ou l extension Multi-Device Hybrid Apps de Visual Studio 2013, ne permet pas de débugger une application Cordova sur Windows Phone. Il est cependant possible de tester l application Windows Phone générée, directement depuis l émulateur ou depuis un device Windows Phone. Android Visual Studio 2015 intègre un nouvel émulateur Android basé sur la version Kitkat (API 19, Android 4.4.4), fonctionnant sous Hyper-V comme les émulateurs Windows Phone. Cet émulateur se trouve dans la liste des devices sous le nom «VS Emulator Android Phone» ou «VS Emulator Android Tablet», (l option «Android Emulator» correspond à l émulateur fourni avec le SDK Android). Il est utilisable pour debugger des projets Apache Cordova, C++ mobile ou Xamarin Fig.7. Contrairement à l émulateur fourni avec le SDK Android, l émulateur de Visual Studio est très performant et permet de profiter d un environnement de test fidèle aux devices réels. Pour améliorer l expérience de debug, Visual Studio attachera Fig.7 Fig.8 automatiquement ses outils de débogage (console JavaScript, DOM Explorer, etc.) à l émulateur Android. Il sera ainsi possible d effectuer des modifications depuis Visual Studio qui seront impactées dans l émulateur. De manière identique aux émulateurs Windows Phone, l émulateur Android dispose d un ensemble d outils permettant de modifier les propriétés du device, comme son orientation, les informations réseau, la géolocalisation, etc, Fig.9. ios Le développement d une application ios nécessite l utilisation d un Mac et de l IDE Xcode. Visual Studio 2015 ne permet pas d échapper à cette contrainte mais intègre un mécanisme permettant de débugger directement depuis un device ios branché à un Mac. Ce mécanisme nécessite l installation d un agent sur le Mac, qui servira 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 tools s installe via la commande suivante : xcode-select install L installation de l agent sur le Mac s effectue via la ligne de commande suivante : sudo npm install -g vs-mda-remote --user=votre NomDutilisateur L exécution de l agent s effectue ensuite via la commande suivante : vs-mda-remote Lors de son exécution, l agent fournit un ensemble d informations (dont le nom d hôte sur le réseau, le port utilisé et un code PIN de sécurité) permettant la communication inter machines. Ces informations sont à saisir dans Visual Studio dans le menu Tools > Options > Tools for Apache Cordova > Remote Agent Configuration Fig.10. Il est également possible d exécuter l agent en supprimant le code PIN de sécurité via l option secure : vs-mda-remote secure false De cette manière le code PIN ne sera pas nécessaire, mais attention, le Mac sera accessible directement. Une fois la communication établie, il est possible de 10
Mobilité debugger l application Cordova sur un iphone, branché au Mac, ou sur un émulateur iphone Fig.11. Techniquement, Visual Studio enverra en HTTP les informations du projet qui seront interprétées par Xcode. Ensuite, le Mac transmettra les données du device ou de l émulateur à Visual Studio qui pourra retranscrire les informations comme s il s agissait d un debug en local. C++ Mobile et cross-plateformes Certains pourraient penser que le C++ est un vieux langage poussiéreux Microsoft vient de nous prouver (une nouvelle fois) le contraire en annonçant la possibilité d écrire des applications cross-plateformes mobiles en C++ avec Visual Studio 2015. Pour le moment seuls Windows (Phone) et Android sont supportés. ios ne l est pas encore. Un seul outil et plusieurs compilateurs Traditionnellement, Visual Studio est capable de générer des applications natives en C++ pour la majorité des plateformes Windows : Fig.10 Windows Phone, Windows Desktop, Windows Store Apps, etc. en utilisant le compilateur et sa chaîne d outils associés «C1xx/C2». Parfaitement intégrés à Visual Studio, il est possible de personnaliser entièrement la configuration selon vos besoins et vos envies. La grosse nouveauté provient de l intégration de CLang/LVVM dans Visual Studio. Il s agit d un compilateur C/C++/ObjectiveC Open Source, se voulant être une alternative à GCC. Il est alors possible de générer du code Natif ciblant les plateformes Android. En fonction du projet que vous créez, Visual Studio choisira automatiquement la bonne plateforme de compilation pour vous : C1xx/C2 ou CLang/LVVM. Que peut-on développer? Plusieurs possibilités de développements sont disponibles : u Des librairies de code natif pour vos applications Android. Il sera alors possible de les utiliser dans une application Android classique développée en Java (en utilisant JNI donc). Il est à noter que Microsoft a travaillé avec Xamarin pour faciliter ce scénario d écriture de code natif cross-plateformes. u Des applications Android natives. Oui, il est maintenant possible de créer une application Android (basée sur le «template» Native-Activity) complète depuis Visual Studio! Il s agit d un template orienté développement de jeux vidéo utilisant notamment OpenGL. u Débugger du code natif préexistant : il est possible de déployer un package utilisant du code natif sur votre device Android et de «brancher» Visual Studio sur celui-ci pour le débugger directement. Comment commencer? La première des choses est bien sûr d installer Visual Studio en prenant bien soin de cocher «C++ for cross-platform mobile development» dans l installateur. Une fois la première partie de l installation effectuée, un second écran vous proposera d installer les outils tiers nécessaires : le SDK Android, le SDK Android Natif, le SDK Java etc. Toujours surprenant de retrouver cela dans un produit Microsoft, mais ce sont maintenant des prérequis pour activer le développement d applications Android. Une fois l installation terminée, vous pouvez lancer Visual Studio pour créer un nouveau projet. Celui-ci vous proposera 4 nouveaux types de templates de projets dans la catégorie «Visual C++ à Cross platform» : librairies statiques (Android ou crossplatform) ou dynamiques (Android ou crossplatform). En choisissant un template de projet cross-plateformes, vous vous retrouverez dans une configuration bien connue des développeurs d applications universelles : un projet par plateforme (Windows Phone et Android) et un projet shared 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 APK depuis Visual Studio en utilisant les outils du Fig.11 Fig.9 Fig.12 11
Mobilité SDK Android. Tout est intégré dans Visual Studio! Fig.13. Une expérience de développement de qualité! Visual Studio 2015 ne se contente pas d utiliser simplement la chaîne de compilation CLang mais il propose une intégration aussi poussée qu avec le compilateur fait maison de Microsoft : IntelliSense, navigation rapide, aide au code, tout y est, sans compromis. L intégration vous permet aussi de vous faciliter la navigation en cas d erreur de compilation, en vous amenant directement au bon endroit dans le code depuis la fenêtre d erreurs. Aussi, le débogage n est pas en reste car il est possible de déployer, soit directement sur un téléphone, ou sur l émulateur (dont nous avons déjà parlé dans la partie Cordova). Visual Studio s attache alors à l un ou à l autre, et vous propose la même expérience que sur un développement classique : points d arrêts, évaluation d expressions, surveillance de variables, pas à pas, etc. Xamarin Une autre possibilité permettant d écrire une seule base de code pour plusieurs plateformes existe aussi : Xamarin! Xamarin peut être assimilé à un Framework permettant de développer des applications mobiles pour ios, Android et Windows Phone en s appuyant sur un langage de développement unique (C# ou F# pour les plus audacieux), permettant ainsi de mutualiser toute la logique applicative (en s appuyant sur une bibliothèque de classes portable ou sur un projet partagé). L un des points forts de Xamarin réside dans ce que le produit offre aux développeurs : tout ce qui est réalisable techniquement avec Objective-C ou Java peut être fait en C# avec Xamarin! Concrètement, cela signifie que tout ce qui concerne la logique métier, les accès aux données, la communication réseau, etc. seront partagés sur l ensemble des plateformes, alors que l interface graphique sera développée en utilisant les APIs natives, rendues accessibles en C#. Xamarin est composé de 4 produits : u Xamarin.Android (MonoDroid): représente la surcouche permettant l exécution d applications C# sur les plateformes Android, u Xamarin.iOS (MonoTouch) : permet aux applications Xamarin de s exécuter sur ios, u Xamarin.Mac : offre aux développeurs la possibilité d exécuter leurs applications sur OS X, Fig.13 u Xamarin Studio : un environnement de développement, basé sur MonoDevelop, permettant de développer des applications C# pour Android (sans disposer de Visual Studio) ou des applications ios sous OS X. Pourquoi choisir Xamarin? Si l on en croit les possibilités offertes par le produit, Xamarin semble être prometteur et se présente comme la solution idéale pour les développements d applications mobiles multiplateformes. 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 applications ios/android en utilisant Visual Studio et C# et donc, implicitement, de réutiliser le savoirfaire qu ils ont acquis lors de leurs développements précédents, bien qu ils ciblent de nouvelles plateformes. La courbe d apprentissage est donc extrêmement simple pour les développeurs ayant l 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 les paradigmes et les concepts des différentes plateformes pour lesquelles une application est développée afin de respecter au mieux les codes de l expérience utilisateur (par exemple, la navigation, le cycle de vie de l'application etc). Un autre avantage de Xamarin concerne les possibilités techniques offertes aux développeurs. En effet, lorsque l on regarde de plus près des applications ios ou Android, on constate que celles-ci sont très souvent peaufinées dans les moindres détails (animations, etc.). Force est de constater qu avec Xamarin, il sera possible de reproduire l ensemble de ces petits détails, car 100% des APIs sont couvertes! Autrement dit, tout ce qu il est possible de faire sur ios avec Objective-C ou sur Android avec Java peut être ré-implémenté, en C#, avec Xamarin. La collaboration avec Microsoft En plus de tous les points cités précédemment, Microsoft et Xamarin travaillent conjointement afin de faciliter la conception des applications pour Android et ios. Le tout au travers d'outils tels que Visual Studio où l'intégration est complète depuis la version 2013; de plus, sous sa dernière version (Visual Studio 2015), l'ide intègre un émulateur Android (bien plus performant que celui du SDK) à utiliser dans les projets Xamarin ou Cordova, il n'est donc plus nécessaire d'utiliser ceux fournis avec le Android SDK. Conclusion Nous avons pu voir que Microsoft a mis un accent particulier sur l outillage du développement cross-plateformes dans la version 2015 de Visual Studio. Visual Studio se positionne ainsi en tant qu outil incontournable pour développer des applications cross-plateformes, aussi bien en utilisant Xamarin, du C++, ou Cordova. Sa version définitive promet d être encore plus complète, en proposant des outils de debug encore plus évolués et plus poussés. De plus, tout l écosystème qui s est créé autour de Visual Studio et C# est entièrement réutilisable dans vos développements: que ce soient les plugins comme Resharper, GhostDoc, ou bien les outils de travail collaboratif tels que Team Foundation Server (TFS) / Visual Studio Online (VSO), Git / GitHub, etc. Vous serez donc en mesure de profiter un maximum de cette notion de «réutilisation»; ceci que ce soit en termes de compétences techniques, ou en termes d outils pour, au final, vous permettre de disposer de la meilleure productivité possible (et donc de limiter les temps de développement de vos application, y compris sur ces nouvelles plateformes). C est une bonne question et la réponse n est malheureusement pas absolue. Si vous possédez déjà des connaissances de développement Web ou si vous partez d un site Web responsive existant, Apache Cordova est sans doute la solution la mieux adaptée. Si, au contraire, vous êtes plus un développeur.net, Xamarin est sans doute l outil dont vous avez besoin. Finalement, un développeur C++ pourra créer des assemblies ou framework crossplateformes afin de gagner en productivité et maintenabilité. Dans tous les cas, l outil de développement universel capable de répondre à vos besoins sera Visual Studio! p 12
Boostez votre productivité avec Visual Studio 2015 Productivité Visual Studio est connu des développeurs travaillant sur les technologies Microsoft comme l un des meilleurs IDE. Outre le fait qu il permette de développer des applications Windows (et non Windows dans sa version 2015) et supporte de nombreux langages, il possède aussi un ensemble d outils et de fonctionnalités qui favorisent grandement la productivité des développeurs. Guillaume ROUCHON MVP Visual Studio ALM Consultant Senior chez Cellenza IDE L éditeur de Visual Studio 2015 a reçu de nouvelles fonctionnalités ainsi que des améliorations pour certaines déjà existantes. De plus en plus de développeurs travaillent sur des ordinateurs possédant un écran tactile, ou directement sur une tablette. Cependant Visual Studio 2013 ne supportait jusqu alors pas les opérations tactiles. C est maintenant le cas avec Visual Studio 2015 qui 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 avec des ordinateurs portables qui n ont pas toujours la même résolution qu un écran de bureau. Il faut alors régulièrement réarranger les fenêtres dans Visual Studio afin de s adapter à la résolution de l écran que l on utilise. Avec la version 2015, il est enfin possible de sauvegarder le layout de ses fenêtres et de rappeler une configuration préalablement sauvegardée (Fig.1). Cerise sur le gâteau, ces sauvegardes font partie de ce qui est associé à votre compte Microsoft, et pourront donc être accessibles de n importe quel ordinateur dès que vous vous serez connecté à votre compte! En parlant de compte Microsoft, Visual Studio 2015 intègre maintenant un gestionnaire de compte (Fig.2) afin de ne plus avoir à retaper perpétuellement ses identifiants à chaque fois que l on souhaite se connecter à un compte Azure, ou que l on jongle entre des identifiants personnels et des identifiants professionnels. Lorsque des identifiants sont nécessaires, Visual Studio 2015 propose de les sélectionner dans une liste existante. Des améliorations ont aussi été apportées à l éditeur de code en lui-même. On notera, par exemple, la coloration syntaxique des tooltips affichant du code (Fig.3). Il s agit, certes, d une petite fonctionnalité, mais le code visualisé devient bien 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 les frameworks. La dernière fonctionnalité ayant subi des améliorations importantes dans Visual Studio 2015 est le refactoring de code. Les développeurs C# avaient la chance d avoir les outils de refactoring natif les plus avancé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 des caractères d échappement en chaîne littérale (C++ 11). L accès au refactoring a aussi été simplifié via l ajout du raccourci clavier CTRL + <point>; la fonctionnalité est maintenant extensible permettant à la communauté de développer et de proposer ses propres fonctions de refactoring. Par ailleurs, la fonctionnalité de refactoring la plus utilisée, le renommage, se voit remise à jour avec l introduction du renommage en ligne : il suffit de sélectionner l élément, d appuyer sur le raccourci clavier, et de commencer à renommer. L ensemble des références sera mis à jour en direct au fur et à mesure de la frappe (Fig.4). Code Analysis L analyse statique existe depuis la sortie de FxCop. Cet outil permet de définir un ensemble de règles de codages à respecter; il analyse ensuite les binaires générés afin de valider que l ensemble des règles est respecté. FxCop a ensuite été intégré à Visual Studio sous le nom de Code Analysis. Bien que l outil apporte beaucoup à la qualité du code, le très (trop?) grand nombre de règles, et le fait que celles-ci ne Fig.3 Fig.1 Fig.2 Fig.4 13
Productivité soient validées qu après compilation, sont un frein à l utilisation de Code Analysis. D autre part, il n est pas des plus facile de mettre en place des jeux de règles personnalisées pouvant correspondre à l ensemble des types de projets que l on aura dans sa solution, et de faire en sorte que ces jeux soient bien partagés et utilisés par l ensemble de l'équipe de développement. C est en se basant sur ces constats que Microsoft a revu sa copie dans Visual Studio 2015 et a mis à jour Code Analysis avec les «analyseurs de code»! Les analyseurs de code sont distribués sous forme d assemblies via des packages NuGet. Cela permet, pour les développeurs, de facilement les retrouver et les intégrer, et, pour les éditeurs, de facilement les distribuer avec leurs outils. Ces analyseurs s intègrent au projet comme des références (Fig.5), ce qui permet non seulement de voir rapidement quels analyseurs et quelles règles sont en place sur un projet, mais aussi de les gérer simplement. Plus besoin de différents «RuleSets» spécifiques à chaque projet, ni de questionnement quant à où les stocker; tout est géré au niveau du projet et s intègre parfaitement à un gestionnaire de sources et au travail en équipe comme n importe quel autre package NuGet! Bien entendu, le système à base de RuleSets est toujours présent. L autre point noir de Code Analysis est le fait que l analyse ait lieu après la build, lorsque le développeur a fini l ensemble de ses modifications. Il peut, dans ce cas, se retrouver frustré et perdre du temps à revenir sur son code pour y appliquer les corrections ou recommandations fournies par Code Analysis. Avec l arrivée de Roslyn, l équipe en charge de Code Analyser a pu mettre en place un moteur afin que celui-ci valide les règles directement lorsque le développeur écrit son code! Comme pour les erreurs de syntaxe, le développeur sera informé s il viole une règle de code ou une bonne pratique de développement et pourra ainsi la corriger tout de suite. Les analyseurs pourront même lui proposer le code à mettre en place pour corriger la règle (Fig.6). Cela va permettre d ajouter un nouveau scénario d utilisation avec Code Analyser pour les développeurs de librairies : fournir des analyseurs permettant de corriger les mauvaises utilisations du composant directement dont le développeur code, et ainsi compléter ou remplacer les différents livres blancs ou sites expliquant les bonnes pratiques d utilisation. On notera au passage, afin d améliorer la productivité des développeurs utilisant Code Analyser, que celui-ci intègre ses résultats directement dans la fenêtre des erreurs, et non plus dans une fenêtre à part. Il n y a donc maintenant plus qu un seul endroit où regarder ses erreurs et avertissements. Cet ajout a été rendu possible par la refonte de la fenêtre d erreur autorisant plusieurs sources, et permettant une personnalisation des colonnes ainsi que l ajout de filtre sur celle-ci, façon Excel (Fig.7). On retrouvera donc, 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 Lens Code Lens est une fonctionnalité permettant d'obtenir des informations contextuelles au niveau des classes et des méthodes (Fig.8). Lorsque la solution est locale et non liée à Fig.6 Fig.5 un gestionnaire de sources, Code Lens affiche : u Le nombre de références à l élément, u Le nombre de tests unitaires utilisant la méthode avec le nombre de tests réussis. Le nombre de références permet de facilement savoir si une méthode ou une classe est peu ou beaucoup utilisée dans la solution. Lorsque l on reprend du code existant, c est très pratique pour voir s il n y a pas du code mort (attention quand même aux appels dynamiques ). Il est possible, en cliquant sur le lien, d afficher la liste des références, et ainsi de pouvoir naviguer vers l une d elles ou d afficher l ensemble de ces références dans une fenêtre Code Map. Le nombre de tests unitaires est très utile pour voir si nos classes sont bien couvertes par des tests et si ceux-ci continuent de passer. Comme pour les références, un clic sur le lien fera apparaître la liste des tests et permettra de les lancer. Une fois la solution connectée à un gestionnaire de source supporté (TFVC ou Git), Code Lens affichera d autres informations 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 pour calculer ces informations, dans le cas de Git, Fig.7 14
Productivité tout se fait en local. L outil est donc compatible, quel que soit le repo Git (GitHub, VSO, TFS ). Le nombre de changements représente le nombre de check-in ou commit contenant des modifications sur l élément. Cela permet d avoir une idée si l élément change beaucoup ou non. Un clic sur le lien fera apparaître la liste de l ensemble des changements avec diverses informations telles que le commentaire associé, l auteur, la date et l historique du changement s il s agit d une fusion. Les changements à venir affichent le nombre de changements ayant eu lieu dans d autres branches, mais non fusionnés avec la branche courante. Cela permet de facilement rester informé des modifications qui peuvent être faites par d autres membres de l équipe dans d autres branches. Comme pour l indicateur précédent, un clic sur le lien affichera la liste des changements à venir avec les mêmes informations. Les éléments de travail et bogues associés ne fonctionnent qu avec un gestionnaire de sources dans TFS. Ils affichent les éléments de travail qui ont été associés à des changements ayant eu lieu sur l élément permettant ainsi, depuis le code, de récupérer le besoin ayant conduit au code actuel. Les revues de codes permettent de voir la liste des revues de code sur l élément. Encore une fois, cela va simplifier la vie du développeur s il a besoin de comprendre pourquoi le code a été fait ainsi. Le dernier indicateur est celui concernant les personnes ayant travaillé sur l élément. Dans Visual Studio 2015, cet indicateur a été revu afin de proposer une visualisation sous forme de graphique plutôt qu une simple liste (Fig.9). On pourra donc voir un historique des contributeurs avec un classement des plus gros d'entre eux. Cela Fig.8 Fig.9 Fig.10 peut s avérer très utile si l on veut poser des questions à un développeur; on saura rapidement qui a travaillé dernièrement sur cet élément et qui a le plus travaillé dessus. Les indicateurs Code Lens présentés cidessus sont ceux fournis par Microsoft en standard, mais la fonctionnalité est extensible, et il est possible de développer des extensions ajoutant d autres indicateurs. Par exemple, le Microsoft CodeLens Code Health Indicator (http://aka.ms/codelenshealth) rajoute l indice de maintenabilité de la méthode. Code Map Code Map est une évolution des graphes de dépendances proposant aux développeurs une représentation graphique du code et des relations entre les différents éléments (Fig.10). L intérêt principal d une telle fonctionnalité est de gagner en temps, lorsque l on arrive sur une base de code inconnue. Les graphes Code Map étant générés directement à partir du code, ils sont toujours à jour (contrairement aux documentations) et il est généralement plus simple pour une personne de suivre les relations entre différentes parties du code via des graphes, qu en lisant des lignes de code. Pour l instant Code Map ne marche qu avec les langages C# et VB.NET, mais Microsoft travaille afin d y inclure C++ et Typescript. Les graphes Code Map peuvent être générés à différents niveaux : u Assembly u Namespace u Classe u Méthode Il est possible de partir d un graphe sur les assemblies, de supprimer les éléments qui ne nous intéressent pas (les assemblies de tests, les assemblies externes standards ) puis de zoomer petit à petit sur les composants afin de rentrer plus dans le détail. Chaque élément dans le graphe est typé, qu il s agisse des composants (classe, méthode, assembly ) comme des liens (héritage, implémentation, appel ). Il est donc simple de construire un graphe d héritage ou un graphe d appel. Par ailleurs, un double clic sur un élément affichera le code concerné. Cela permet de simplifier deux scénarios assez communs. Le premier scénario est de comprendre les dépendances entre les différentes assemblies et vérifier si l on n a pas introduit, par erreur, au fur et à mesure des développements, de mauvaises dépendances. Par exemple, référencer dans la partie interface graphique un composant tiers qui devrait être encapsulé par la couche métier. Si un tel lien 15
Productivité existe, on pourra alors zoomer sur l assembly en question, et chercher plus en détail le namespace puis la classe et enfin la ou les méthodes qui font appel à ce composant. Le deuxième scénario est de comprendre sur un code existant l enchaînement des appels depuis une méthode donnée. Par exemple, comprendre ce qui se passe lorsque l utilisateur va cliquer sur un bouton de l application. On affichera dans un graphe la méthode gérant l évènement, puis on ajoutera au fur et à mesure les méthodes appelées. Il est aussi possible de faire l inverse en recherchant les appelants pour, par exemple, trouver l ensemble des chemins qui appellent une méthode d accès aux données. Code Map peut aussi s utiliser lors du débug d un programme, cela va permettre d avoir un graphe se remplissant automatiquement au fur et mesure que l on avance en pas à pas lors du débug. C est une version graphique de la pile d appels, très pratique pour voir l enchaînement des appels au runtime, surtout qu il est possible d y ajouter des commentaires. La version 2015 de Code Map apporte des fonctionnalités afin de rendre l outil plus pratique : 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 on utilise Code Map régulièrement sur de grosses solutions ça change la vie! Enfin, pour tous ceux qui aiment mettre les mains dans le cambouis, Microsoft propose un SDK (Code Index SDK) permettant de requêter la base d index de code créée par Code Map afin de faire vos propres extractions et analyses. Pour ceux intéressés, je vous recommande de lire les billets de Jean-Marc Prieur sur le blog MSDN. Smart Unit Tests Une nouveauté de Visual Studio 2015 est les Smart Unit Tests. Il s agit d une fonctionnalité pour aider les développeurs à générer automatiquement des tests unitaires sur du code existant (donc dans un contexte non TDD). Elle hérite de la recherche effectuée sur Pex. Sur une méthode existante, il suffit de lancer la fonctionnalité via le menu contextuel, pour que Visual Studio génère un ensemble de tests unitaires et que cela conduise à une couverture de code de 100 %. Pour cela, l outil va analyser l ensemble des chemins d exécutions de la méthode et générer les paramètres permettant de passer par chacun d eux (Fig.11). Une fois les tests trouvés, il est alors possible de les sauvegarder dans un nouveau projet de tests afin de ne pas impacter le code existant. Il ne s agit pas d une solution miracle, mais cela peut énormément aider lorsque l on a un code existant sans tests unitaires! NuGet NuGet est bien connu des développeurs.net et devient le standard pour la gestion des dépendances et des packages externes. Malheureusement, l interface graphique n avait pas évolué depuis les premières versions et faisait perdre beaucoup de temps du fait de l ajout de nombreux packages. Avec Visual Studio 2015, l interface a été entièrement revue afin de faciliter son utilisation. La première nouveauté est que l interface n est plus proposée sous forme de fenêtre de dialogue, mais comme un document au même titre que les fichiers. Il est donc possible de garder la fenêtre ouverte, de la déplacer et de l ancrer ailleurs (Fig.12). Finis aussi les onglets pour choisir d afficher les packages non installés, ou ceux installés avec des mises à jour. Maintenant, il n y a qu une fenêtre affichant l ensemble des informations avec l ajout de filtres pour choisir d afficher uniquement les packages installés. Les actions proposées seront en fonction du statut du package sélectionné : installer si le package n est pas référencé, Fig.11 Fig.12 désinstaller s il est référencé ou mis à jour s il existe une mise à jour. Il est aussi maintenant possible de sélectionner la version du package que l on veut installer et de consolider une version pour l ensemble des projets d une solution! Extensibilité Microsoft ne peut pas développer tous les outils nécessaires à l ensemble des développeurs. C est pourquoi l une des forces de Visual Studio est son extensibilité permettant à des développeurs tiers ou des éditeurs de proposer des fonctionnalités non présentes de base qui s intègrent parfaitement à l IDE afin de l enrichir et ainsi booster encore plus la productivité des développeurs. La plupart des outils tiers sont basés sur ces API d extensibilité, et même les outils développés par Microsoft se basent dessus. Il existe des extensions de tous types allant de l ajout de commandes (ex. : Productivity Power Tools) au support de nouveau type de projet (PowerShell) ou à l intégration profonde (ReSharper). Conclusion Comme vous avez pu le lire dans cet article, Visual Studio possède de nombreuses fonctionnalités permettant aux développeurs de gagner du temps et d améliorer la qualité de leur code. La version 2015 de Visual Studio apporte de nouveaux outils et enrichit ceux déjà existants afin de proposer l un des meilleurs IDE du marché. p 16
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. Christophe Nasarre Sébastien Bovo Developer Premier Field Engineer chez Microsoft France http://iinspectable.wordpress.com/ blogs.msdn.com/sbovo/ - @sbovo Comment investiguer sur une fuite mémoire en C#? Une consommation de mémoire très importante pouvant mener à des crashs d une application écrite en C# sera notre premier scénario. Son utilisateur se contente de naviguer dans un groupe d informations et de revenir à l écran de démarrage. Au bout d un certain nombre de navigations, l application s arrête, avec pour cause, une exception de type OutOfMemoryException. Avant l Update 2 de Visual Studio 2013, l investigation demande les actions suivantes : u Surveiller la consommation mémoire de l application avec un outil tel que Process Explorer de SysInternals (http://aka.ms/procexplorer). Se focaliser sur les Private Bytes (Mémoire réellement utilisée) : la quantité de mémoire demandée par l application ne cesse d augmenter sans jamais diminuer significativement. u Ensuite, prendre des dumps de l application entre deux navigations avec ProcDump (http://aka.ms/procdump). Chaque dump est une "photographie" complète de la mémoire utilisée ; il contient notamment toutes les piles d appels et les objets en mémoire. Ces dumps sont généralement exploités par un outil comme WinDbg (inclus dans le SDK Windows). u Effectuer un Glisser/Déplacer de ces dumps dans Visual Studio et utiliser Debug Managed Memory (Fig.1) avant d analyser les différences. Mais comme dit ma fille : ça c était avant. Avec l Update 2 de Visual Studio 2013 et évidement dans Visual Studio 2015, le hub "Performance and Fig.5 Diagnostics" propose une analyse de la consommation mémoire totalement intégrée. Nous le lançons à partir du menu ANALYZE en sélectionnant ensuite Memory Usage : Fig.2 et 3. Une fois l analyse démarrée, il est possible de visualiser l évolution de la mémoire (escaliers bleus) et même le déclenchement des garbage collections (triangles rouges) : Fig.4. Il est possible de prendre des snapshots qui correspondent aux dumps d avant directement depuis la session de profilage : Fig.5. Une fois les snapshots pris, il ne reste Fig.3 Fig.2 Fig.4 Fig.1 17
Debug plus qu à arrêter le profilage. Nous pouvons déjà voir que plus de 122 Mo (pour 596 objets) sont nouveaux et toujours en utilisation : Fig.6. Ensuite, il vous suffit d effectuer un clic-droit sur le snapshot final puis Compare to / Snapshot #1 pour demander à Visual Studio de nous mettre en évidence les objets qui diffèrent entre les deux captures : Fig.7. En triant sur la colonne Count Diff, 12 instances de SampleDataGroup sortent du lot. Ces objets ne sont pas libérés, et, avec l option d affichage Paths to Root, il est facile de remonter aux objets qui empêchent leur libération ("roots" ou racines). En effet, nous avons comme racine un objet de type SampleDataSource qui garde une référence sur une ObservableCollection référençant elle-même une List contenant nos 12 instances de SampleDataGroup qui sont donc toujours forcées de rester en mémoire (puisqu étant référencées). Il ne reste plus ensuite qu à rechercher dans le code de l application pour quelle raison ces instances sont sans cesse ajoutées à cette liste; un indice : il n est pas testé que le modèle objet a déjà été chargé. A noter que, dans le tableau listant les objets, le nom du type de l objet (le nom de la classe) est cliquable pour afficher le code source correspondant : Fig.8. Il est donc facile d en rechercher toutes les utilisations par le code en cliquant sur le lien references que nous propose Visual Studio au-dessus la définition de la classe correspondant à l objet : Fig.9. Comment améliorer l utilisation mémoire d une application Windows Store Javascript? Même si le code de votre application ne génère pas de fuite mémoire, avant de la soumettre au Store Windows, il est nécessaire de vérifier qu elle n est pas trop gourmande en mémoire. Car si tel était le cas, elle ne serait pas fonctionnelle sur les tablettes/téléphones possédant peu de mémoire RAM. Prenons l exemple d une application de photos en HTML/JavaScript. Le hub "Performance and Diagnostics" de Visual Studio propose le même type d outil d analyse de pression mémoire en JavaScript que pour les applications.net : Fig.10. Les mêmes fonctionnalités de captures mémoire à tout moment sont disponibles. Ainsi, deux captures sont prises entre une navigation dans un groupe de photos et l affichage d une photo à partir desquelles une comparaison est effectuée ; non pas pour trouver les différences comme dans le cas précédent mais pour identifier plus facilement les objets qui nous intéressent (ceux qui occupent le plus d espace mémoire) : Fig.11. L examen permet de révéler rapidement Fig.6 Fig.7 Fig.8 Fig.10 Fig.9 18
Debug plusieurs tags <img> de plus de 200Mo. Volumineuses comme images tout de même! Fig.12. Après investigations, les images sur le disque ne font pas plus de 14Mo mais leur résolution est souvent supérieure à 17000 x 4500! Une fois décompressées pour être affichées, ces images ont besoin de 17000 x 4500 x 24 (bits par pixel) / 8 (pour avoir des octets) = 229Mo. CQFD. Par conséquent, la solution est de retravailler ces images avec un outil comme Paint.NET par exemple, pour en sauvegarder plusieurs tailles et les utiliser en fonction de la résolution de l écran et la densité de pixels. Lors de l exécution, Windows nous facilite le travail car il va sélectionner l image adéquate en fonction de la densité de pixel de l écran si nous adoptons le nommage suivant : u image.scale-100.jpg u image.scale-140.jpg u image.scale-180.jpg Pour plus d informations sur l adaptation aux différents écrans et résolutions, voici le point d entrée : recommandations en matière de mise à l échelle d après la densité en pixels - http://aka.ms/pixelscale Il est à noter que les fonctionnalités que nous venons de vous présenter ne se limitent pas aux applications Windows Store PC/Tablettes mais sont aussi fonctionnelles pour les applications Windows Phone 8.1. p Ressources Débogage et diagnostics : http://aka.ms/vsdiag Nouveautés pour les deux derniers Update de Visual Studio 2013 : http://www.visualstudio.com/news/2014-aug-4-vs http://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 Fig.11 Fig.12 19
Preview 2015 Visual Studio 2015 : Mobile First, Cloud First La version preview de Visual Studio 2015 a été dévoilée en novembre 2014 lors de l événement Connect(). Ce qu il faut retenir de cette nouvelle version : c est l effort tout particulier qui a été mis en œuvre pour permettre à chaque entreprise de développer des solutions qui adoptent une démarche Mobile First, Cloud First. 20 François Bouteruche, MVP ALM Blog : https://francoisbouteruche.wordpress.com/ Mobile First VS 2015 vous donne le choix des armes. Vous pouvez opter pour le développement de code natif partagé avec Visual Studio C++ for Cross-Plateform Development. Il pourra être utilisé dans des applications Android ou Windows ou encore dans des applications Xamarin Android. Si vous souhaitez capitaliser sur vos compétences de développement C#, vous pouvez privilégier l utilisation de Xamarin dont l intégration avec Visual Studio 2015 a encore été améliorée avec des modèles de projets Xamarin proposés en standard. Xamarin vous permet de développer des applications mobiles natives ciblant ios, Android et Windows Phone en mutualisant un maximum de code métier et UI en C#. Si vous souhaitez capitaliser sur vos compétences de développement Web, Visual Studio Tools for Apache Cordova est fait pour vous. Cette nouvelle version supporte Apache Cordova 4.0.0 et améliore l intégration des outils de diagnostics distants, notamment pour la plateforme ios, dans Visual Studio. Enfin, une des annonces majeures est la mise à disposition d un émulateur Android intégré à Visual Studio 2015 et supporté par la plateforme de virtualisation Hyper-V au même titre que l émulateur Windows Phone. Cet émulateur supporte une configuration Smartphone 5 et une configuration tablette 7 avec KitKat 4.4.2. Cloud First Derrière toute application mobile, il y a des API REST exposant les services du backoffice. Avec VS 2015, vous pouvez développer des applications Web modernes basées sur ASP.NET 5. Cette toute nouvelle version offre un modèle de programmation unifiée entre ASP.NET MVP et Web API, une expérience de développement sans compilation, une configuration basée par environnement de déploiement. Mais surtout, cette version s exécute sur le nouveau runtime.net Core, qui est open source, peut s exécuter aussi bien sous Windows que sous OS X et Linux. Il supporte le side-by-side versioning. Ce dernier point offre la possibilité d exécuter en mode côte à côte des applications Web exploitant différentes versions de librairies sans interférence. L ensemble de ces avancées permet de plus d exécuter ces applications Web ASP.NET 5 dans des conteneurs Docker qui pourront être hébergés soit On-Premise soit dans le Cloud sans adaptation particulière en adoptant une architecture de microservices. La version 7 d Entity Framework permet, elle aussi, de nouveaux usages adaptés aux solutions Cloud avec le support de bases de données non relationnelles telles que les tables de stockage Azure ou encore Redis. Son nouveau runtime est compatible avec ASP.NET 5. Afin de travailler au mieux avec les ressources Cloud d Azure, de nouveaux outils font leur apparition pour étendre VS 2015 comme les Azure Resource Manager Tools, HDInsight Tools et la gestion des Azure WebJobs. Microsoft fournit aussi un Azure Cloud Code Analysis Pack qui essayera de détecter pour vous des zones de votre code qui peuvent causer des anomalies lors de la mise à l échelle de votre application. Il vous suggérera alors des design patterns pour améliorer votre code. Et le reste De nombreuses autres fonctionnalités sont proposées comme les Smart Unit Tests, le support de C++ 11 et 14, l amélioration des outils de débogage et de diagnostic, la version 2.0 d Application Insights Je vous invite à visionner les webcasts techniques qui ont été diffusés à l issue de l événement Connect() pour les découvrir. p
Le développement et le Cloud DEVOPS DevOps se concentre sur la suppression des barrières traditionnelles entre les équipes de développement et d exploitation, et applique les pratiques agiles côté exploitation, grâce à des services, plateformes et outils hybrides. Cette agilité permet un meilleur partage des objectifs et une meilleure visibilité des applications et des contraintes entre les équipes de développement et d exploitation afin d obtenir une plus grande efficacité de travail. Les outils DevOps de Microsoft, comme Visual Studio Release Management, Visual Studio Application Insights, Visual Studio Online, System Center et les services Microsoft Azure, vous permettent d adapter les processus et les flux de travail à vos besoins spécifiques, et d intégrer d autres outils pour couvrir des environnements hétérogènes tout en exploitant vos investissements existants. En adoptant les outils DevOps de Microsoft, vous vous concentrez sur ce qui compte réellement pour votre entreprise en fournissant à vos équipes des outils adaptés à leurs besoins. Raccourcissez les cycles, détectez et corrigez plus rapidement des problèmes en production. Améliorez la fiabilité de vos applications et testez des hypothèses pour mieux orienter vos investissements en développement. DEV/TEST : DéVELOPPEMENT CLOUD ET ENVIRONNEMENTS DE TEST La solution de test et de développement Microsoft est construite sur une plateforme professionnelle qui peut faire face aux charges les plus lourdes, que ce soit dans votre entreprise ou dans le Cloud, une solution complète de développement et de test sur demande, dans le Cloud. Microsoft Azure vous permet d évoluer vers le Cloud à votre rythme. Avec des services d infrastructure et de développement qui s intègrent parfaitement dans votre environnement On Premise, vous pouvez facilement faire migrer tout ou partie de vos éléments vers une infrastructure de développement dans le Cloud. Construisez sur demande et en quelques minutes des environnements complets de test et de développement d applications pour Windows ou les autres plateformes. LE DéVELOPPEMENT MOBILE Les défis d aujourd hui. Les utilisateurs d appareils mobiles s attendent à une nouvelle génération d applications. Leurs exigences concernent des expériences riches sur l appareil de leur choix. Pour répondre à cette attente, les développeurs doivent : Optimiser les applications pour mobiles : créer la meilleure expérience utilisateur sans ralentir la productivité ni la mise sur le marché. Construire autour de l existant : rendre disponibles les données du cœur de métier et les applications de l entreprise aux utilisateurs mobiles au lieu de créer des applications isolées. Réaliser la transformation mobile rapidement : les utilisateurs mobiles sont en permanence à la recherche de l innovation. La mise sur le marché d une app doit être très rapide, le «time to market» devient critique, car il peut faire toute la différence entre une réussite et un échec. Et si vous pouviez...... créer des expériences pour des appareils mobiles Windows, ios et Android en utilisant la puissance et l efficacité de Visual Studio, avec des services dans le Cloud capables de monter en charge instantanément et connectés à vos données, vos applications et vos identités? Visual Studio et Azure constituent la solution complète adaptée aux compétences déjà existantes dans vos équipes. C est un ensemble d outils, de technologies et de services dans le Cloud mis à la disposition des développeurs pour construire, tester, déployer, exploiter et superviser des applications pour mobiles. Une solution complète pour créer des expériences attrayantes sur des appareils Windows, ios et Android. 21
MSDN Platforms MSDN Platforms Tous les avantages de MSDN, sans Visual Studio! MSDN Platforms permet l accès des utilisateurs aux logiciels et services Microsoft. Dans un environnement de préproduction ou dev/test, chaque utilisateur qui accède à l environnement doit avoir une licence pour le logiciel qu il utilise. Le programme de licencing est souvent coûteux et difficile à gérer pour des dev/test travaillant de façon indépendante. MSDN Platforms est un nouvel abonnement de Microsoft permettant d optimiser la rentabilité d acquisition de licences logicielles de Microsoft pour les personnes impliquées dans le processus de développement et de test, mais qui n utilisent pas l offre complète des outils de développement Visual Studio. Chaque individu avec un abonnement MSDN Platforms accède aux logiciels, services et ressources dont il a besoin pour créer des applications de qualité pour le Web, le Cloud, et Windows sans avoir à acheter des licences logiciels supplémentaires. MSDN Platforms fournit également un support et des outils de formation qui peuvent contribuer à élucider les obstacles lors du développement et réduire les coûts de formation IT. L abonnement MSDN Platforms inclut : u Logiciels Microsoft pour les environnements Dev/Test u Logiciels et Services Microsoft pour une utilisation en production u Support et formation SCéNARIOS D USAGE CLIENT L abonnement MSDN Platforms a été développé spécifiquement pour les personnes qui font partie du processus de développement et qui doivent avoir accès aux logiciels et services Microsoft, mais qui n utilisent pas les outils de développement Microsoft en fonction de leurs rôles. Le personnel des Opérations IT peut profiter de l accès aux logiciels et services Microsoft pour mettre en place des environnements de développement et de test pour leur organisation IT. Les développeurs multiplateformes ont accès aux logiciels et services Microsoft pour créer des applications pour le Web, le Cloud et Windows. Optimisation du ROI LES AVANTAGES DE MSDN PLATFORMS Un processus de développement efficace Une entreprise toujours à la pointe de l innovation MSDN Platforms permet d optimiser le retour sur investissement pour certains individus impliqués dans le processus de développement. C est un moyen très rentable d acheter des logiciels, des services, de la formation et des ressources pour un environnement de développement et des besoins de test. MSDN Platforms contribue à améliorer la productivité grâce à un accès facile à l ensemble des ressources telles que le support professionnel et communautaire et l e-learning, à plus de 15.000 logiciels. MSDN Platforms permet d équiper l entreprise des dernières versions de logiciels, des services et support, ainsi, l entreprise reste à la pointe de l innovation. 22
Evlampia Thoreau, Chef de Produit Visual Studio Site : www.visualstudio.fr http://www.visualstudio.fr : le site de l équipe France. Retrouvez toutes les informations produits, livres blancs en Français et l actualité de Visual Studio et MSDN. Si vous avez un projet ou une question, contactez l équipe 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 réussissent ne cessent jamais d apprendre et les technologies majeures ne cessent jamais d évoluer. Microsoft Virtual Academy (MVA) propose des formations Microsoft en ligne entièrement gratuites, menées par des experts 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 vous pourrez suivre des tutoriaux interactifs, vous pourrez lancer tous les pas-à-pas créés par la communauté. L Assistant Visual Studio est un plugin additionnel à Visual Studio qui permet de lire des cours directement dans l IDE tout en permettant d interagir avec celui-ci pour effectuer des tâches comme Ouvrir un fichier, Ouvrir une solution, Remplacer du texte, Ajouter un item dans un projet, Build une solution... et bien d autres! http://aka.ms/assistantvs Developer code samples : Besoin d aide pour utiliser une nouveauté du framework ou encore débuter un nouveau projet? Quoi de mieux qu un bon exemple pour découvrir comment utiliser la fonctionnalité attendue? C est ce que propose ce site : un ensemble d exemples sur des points précis qui vous permettront de progresser et d appréhender facilement les différents aspects du langage. http://code.msdn.microsoft.com/ Channel 9 : Ce site regroupe les vidéos des personnes qui conçoivent les produits chez Microsoft. Il est également un lieu d échange autour des technologies. Les nombreux événements Microsoft qui ponctuent l année sont pour la plupart disponibles sur ce site, notamment l événement Connect() ; du mois de novembre 2014, pour la Preview de Visual Studio 2015. http://channel9.msdn.com Le site MSDN (Microsoft Developer Network) réunit l ensemble des ressources techniques et des services dont le développeur sur technologies Microsoft a besoin. Vous pouvez également participer aux discussions dans les Forums MSDN, rejoindre les communautés de développeurs 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 développement de Microsoft France et de Microsoft Corp, mais aussi des communautés francophones. http://msdn.microsoft.com/ Visual Studio Community 2013 : un IDE complet gratuit, des outils de développement mobiles cross-plateformes pour Windows, ios et Android, et l accès à des milliers d extensions. Cette édition de Visual Studio est disponible gratuitement pour les étudiants, les contributeurs open source, les start-ups, les développeurs indépendants et sous certaines conditions les PME. Pour télécharger cette édition : http://aka.ms/vscommunityfr Essayez Microsoft Azure gratuitement pendant un mois : inscrivez-vous et obtenez 150 à utiliser sur tous les services Azure : machines virtuelles, bases de données SQL, sites Web, Push notifications sur mobile, diffusion en Ressources continu de médias, Active Directory... Tous les détails sur http://azure.com L accélérateur Windows est un programme d accompagnement personnalisé et gratuit pour aider les développeurs à créer leur application Windows 8 ou Windows Phone, et la publier sur le store Microsoft. http://www.microsoft.com/france/msdn/accelerator win8/win8.aspx Pépinière Microsoft Azure : Vous avez un projet Cloud? Une équipe Microsoft vous accompagne dans votre projet et met à votre disposition de l aide personnalisée et gratuite. De la mise à disposition de ressources techniques à un coaching technique et du conseil business. Plus d informations sur ce lien : http://www.microsoft.com/france/msdn/pepinieremicrosoft-azure/ BizSpark : est un programme réservé aux start-ups de logiciels : sociétés de moins de 3 ans, moins de 1 million de $ de CA et dont l activité principale est la création d une solution logicielle on-premise ou dans le Cloud. Les sociétés membres de BizSpark bénéficient de licences de développement via un accès à MSDN Premium, du support, 115 par mois de crédits Azure pour 5 associés pendant 3 ans. Plus d informations : http://www.microsoft.com/bizspark/ L Accélérateur Microsoft Ventures à Paris : Un des 7 accélérateurs 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 développement de leur produit, business et aussi le financement de leur entreprise. Pour plus d'informations, rendez-vous sur microsoftventures.com/paris 23