Retour sur Microsoft Experiences 16
Après une édition 2015 riche en annonces et en émotions, Microsoft a amorcé la communication autour de la prochaine édition des TechDays en annonçant un changement radical : les TechDays s’appellent désormais « Experiences ». À l’annonce de cette évolution début 2016, je me souviens avoir pensé que cela collait bien à l’idée de fracture et de changement que Microsoft souhaitait véhiculer : fini l’entreprise autocentrée sur ses produits, place à un nouveau MS qui s’ouvre sur le monde et qui s’enrichit des expériences de ses utilisateurs.
Au programme de cette journée technique :
- Plénière technique
- Tester, monitorer et déployer son application mobile
- UWP + Xamarin : du nouveau en terre du milieu
- Open source : la nouvelle donne pour une organisation IT agile et innovante
- Les nouveautés de C# 7
Contrairement aux années précédentes, où les experts techniques de MS se succédaient sur scène, la plénière d’ouverture de cette première édition d’Experiences a été ponctuée par les interventions de différents clients de Microsoft avec lesquels ils avaient eu l’occasion de travailler sur de nouveaux produits. Sont donc montés sur scènes des membres de la DSI d’AccorHotels, de Dassault Systèmes et de Docker. Cette nouvelle façon d’aborder l’ouverture de l’événement a semblé tout à fait pertinente et en parfait accord avec l’idée de travailler autour des « expériences » des utilisateurs pour s’améliorer.
Le speaker a donc profité de sa discussion autour des évolutions côté DSI chez AccorHotels pour présenter StaffHub, qui est un nouvel outil intégré à Office 365 destiné à la gestion de plannings et de ressources humaines en environnement professionnel. Si l’outil en lui-même n’a rien de révolutionnaire, sa présentation aura permis d’introduire Microsoft Bot Framework, qui, comme son nom l’indique, permet au développeur de développer de jolis bots en C#. L’idée est plutôt séduisante et basée sur « LUIS », l’analyseur syntaxique capable de détecter des intentions dans du texte et capable de s’intégrer dans des outils existants type Slack, Facebook Messenger ou encore Skype. Côté technologique, Bot Framework est utilisable environnement Node.JS ou .NET.
Après un passage sur l’intégration de Xamarin à Microsoft, nous avons eu l’honneur de voir Scott Guthrie (!) monter sur scène pour nous parler d’Azure et de la multitude de softwares / services / PaaS qu’il est capable de proposer depuis sa création. Sur fond de discours commercial (où on nous rappelle que les « régions » Azure sont plus nombreuses que celles de Google, AWS et SalesForces réunies), on a pu entendre parler de :
- Azure security center : un service de monitoring dans le cloud qui surveille les machines virtuelles, la performance réseau, les données et les applications d’un compte Azure dédié.
- Fonctions serverless intégrées à Azure
- Azure analytics services : service d’analyse realtime des données envoyées par nos applications dans Azure via du machine learning. On retrouve ainsi (comme dans GCP) de l’analyse de discours / texte, des agrégateurs de news ou encore de la reconnaissance faciale intégrés directement au dashboard Azure et utilisable en quelques clics.
La plénière s’est terminée par une intervention de Ben Golub, le CEO de Docker, venu vanter les mérites de leur tout nouveau partenariat avec Microsoft.
Pour la première fois depuis que je participe à cet événement, j’ai été (relativement) déçu de cette plénière. En effet, exception faite de BotFramework, il n’y a eu presque aucune annonce inédite faite durant les deux heures de talk. Tout les sujets traités avaient été plus ou moins mentionnés ou annoncés sur différents blog spécialisés durant les mois précédents l’événement. Cela s’explique sans doute par les profonds changements en cours chez MS actuellement, mais j’avais eu la sensation, par le passé, d’avoir été habitué à mieux. Heureusement, le reste de cette journée technique a largement été à la hauteur des précédentes éditions !
Chez MS, l’événement de l’année a clairement été le rachat de Xamarin au mois de février. Cette acquisition témoigne selon moi d’une véritable volonté pour MS de devenir un acteur incontournable dans le monde du développement cross-platform, et le nombre impressionnant de talks qui y étaient consacrés vient conforter mon idée. J’ai donc décidé de m’orienter principalement vers des conférences à ce sujet puisque, j’en suis certain, nous serons de plus en plus appelés à travailler avec ces outils dans les années à venir.
Tester, monitorer et déployer son application mobile
D’où ma participation à « Tester, monitorer et déployer son application mobile » qui, je dois l’avouer, m’a vraiment bluffé. Durant cette session on nous a présenté une stack diablement efficace, destinée à produire des applications mobiles de qualité et qui s’articule autour de trois artefacts : VisualStudio TeamSystem, HockeyApp et Xamarin Test Cloud.
Pour rappel, VSTS est une sorte de TFS online intégrant un git pour le versionning, une usine de build et un système de tickets se couplant aisément à des plateformes externes (type slack, etc …).
Pour ce qui est de HockeyApp, c’est une plateforme permettant le déploiement d’application mobiles en environnement de recette destinée (entre autres) à faciliter le monitoring et la collecte de métriques pour une application distribuée à un panel de beta testeurs.
Si j’avais déjà plus ou moins entendu parler des deux premiers éléments de cette stack, Xamarin Test Cloud a été une découverte totale pour moi. L’idée derrière cet outil est simplissime : le développement mobile implique de façon systématique de tester son application sur un nombre immense de devices et versions d’OS pour couvrir au maximum le parc d’appareils en circulation. La problématique devient évidente : comment se procurer 10, 20, 60 ou 250 mobiles et tablettes différents ? C’est ici que Xamarin Test Cloud intervient : cachés dans un entrepôt Danois, plus de 2500 appareils physiques (liste complète ici) sont mis à disposition des utilisateurs pour leur permettre de tester leurs applications mobiles 24h/24h.
C’est une véritable évolution dans le monde du développement mobile, dans la mesure où les résultats des tests joués dans Xamarin Test Cloud seront directement remontés dans VSTS après chaque exécution. Ainsi, le développeur voulant s’assurer de la position d’un élément dans son UI lorsque son application tourne sur un Asus ZenFone ou un Samsung Galaxy S5, n’aura plus qu’à les sélectionner dans l’interface de Xamarin Test Cloud et à lancer son test dessus. La seule interrogation subsistant avant que je sois totalement conquis était celle de la sécurité : comment envoyer une application gérant des données sensibles sur des appareils physiques pouvant être volés ou détournés ? Réponse simple des speakers : chaque mobile est restauré à l’état d’usine une fois qu’il est libéré par un utilisateur. Imparable, et vraiment stupéfiant ! J’espère sincèrement pouvoir tester tout ça le plus rapidement possible.
UWP + Xamarin : du nouveau en terre du milieu
Concrètement, pas de grosses nouveautés pour qui a déjà expérimenté le développement cross-platform avec Xamarin. On nous parle des Xamarin natif pour iOS & Android puis de Xamarin.Forms. Quelques stats intéressantes sur le partage de code : dans le cadre de l’utilisation en mode natif, seules les Portable Class Libraries (la partie business la plupart du temps) pourront être utilisées de façon commune dans les applications W10/Universal, iOS et Android, mais toutes les vues et classes d’interactions devront être codées spécifiquement.
En revanche, Xamarin.Forms permet de mutualiser de 90 à 98% du code source pour toutes les plateformes visées. C’est là l’essence même du cross-platform et je ne crois pas avoir déjà vu un framework capable d’utiliser autant de code mutualisé. A ce titre, je recommande la lecture de l’excellent « Creating Mobile Apps with Xamarin.Forms » de Charles Petzold. Les speakers rappellent tout de même, à juste titre, qu’avec Xamarin.Forms, le côté fonctionnel sera à privilégier par rapport à l’aspect physique de l’application puisque les « effets wahou » spécifiques à chaque plateforme seront difficilement utilisables.
Je n’avais par contre pas eu l’occasion d’entendre parler de « Windows UI Composition » qui est une nouvelle couche graphique venant s’intercaler en XAML et DirectX. Ce service permet fluidifier les animations décrites en XAML. Après quelques petites démos on se rend bien compte que cela est beaucoup plus fluide que ce qu’on a pu connaître auparavant en XAML : cela s’explique par le fait que ces animations soient gérées directement pas ce service et plus par le thread graphique de l’application comme c’était le cas jusqu’à présent.
J’ai pour habitude, lors des TechDays, de ne pas me consacrer uniquement à la technique de la journée en allant à au moins un talk à vocation plus « philosophique ». J’ai ainsi pu assister à une session intitulée « Open source : la nouvelle donne pour une organisation IT agile et innovante » et menée par Hervé Lemaitre, Business Evangelist chez RedHat. Et les idées véhiculées sont plutôt claires :
- La majeure partie des innovations dans le monde IT sont nées ou ont été développées dans le monde open source
- Les géants du web se sont construits autour de l’open source
Plus que ces vérités générales, le propos de cette session, tel que je l’ai compris, était de rappeler l’orientation naturelle de la culture open source vers l’innovation et l’expérimentation. Ainsi, de par sa capacité à amener la flexibilité, l’open source devient un facteur crucial d’évolution du SI d’une entreprise dans toutes ces dimensions :
- Culture / esprit d’entreprise
- Processus / méthodologie de travail
- Technologies / infrastructures et applications
Des propos qui, en somme, sont venus renforcer et corroborer la nouvelle politique d’ouverture si chère a MS en ce moment.
Nouveautés C# 7
Cette journée s’est terminée pour moi par les nouveautés de C# 7. J’avais déjà pu prendre connaissance de ce qui a été mentionné lors de cette session grâce à ce billet paru le 17 septembre, mais les voir en live a permis de saisir quelques petites subtilités. Plutôt que de plagier ce qui a déjà été écrit précédemment, je vous invite à prendre connaissance des évolutions proposées par la septième version de C# dans le très bon article d’Olivier Dahan.
Il conviendra de rappeler que, comme pour la version 6, C# 7 ne propose pas de grosses évolutions comme ont pu l’être async/await ou encore LINQ, mais simplement des « améliorations » syntaxiques destinées à apporter du confort et de la lisibilité dans le travail des développeurs. Cela s’explique, comme l’a rappelé Misturu Furata durant la session, par le fait que C# ait énormément évolué ces dernières années et qu’il sera de plus en plus difficile de le faire changer en profondeur sans casser ses principes de base, et donc de créer un nouveau langage.
Renommer son événement le plus important de l’année devait être, pour MS, l’occasion de marquer une vraie cassure avec son ancienne organisation autocentrée. L’effet à été plutôt réussi bien que, selon moi, tout cela ait été dans la plus pure continuité des annonces faites lors de la précédente édition, qui elle s’appelait encore TechDays. MS en a fini de ne voir le monde qu’à travers Windows, .NET et ses licences Office. Microsoft nouvelle formule est ouvert sur le monde IT et ses partenaires, et semble leur apporter autant de crédit qu’à ses propres équipes. Il n’y a presque plus de distinction entre le software opensource et celui développé en environnement MS, même .NET s’est ouvert et MS est désormais cité par certains médias comme « le plus gros contributeur opensource » de l’année. Mais à l’heure du virage imposé par l’avènement du cloud et de l’everything-as-a-service, l’entreprise avait-elle vraiment le choix ? Rien n’est moins sûr, mais Microsoft semble très clairement déterminé à relever ce défi.
Vidéo : Conférence plénière journée technique