Même si les annonces concrètes de produits sont une part importante de la conférence BUILD qui se tient actuellement à San Francisco, Microsoft fournit des informations plus discrètes, car techniques, mais dont l’impact est potentiellement plus important. C’est le cas de tout ce qui touche à la plateforme de développement .NET, avec notamment la création d’une fondation open source et la présentation d’un nouveau compilateur qui jouera certainement un grand rôle dans l’avenir.
Une fondation .NET centrée sur le code open source
La création d’une fondation .NET n’était pas un évènement particulièrement attendu. Elle représente pourtant une étape significative dans le cycle de vie de la plateforme car une grande partie des éléments qui la composent passe en modèle open source. La fondation comprend déjà des représentants de Microsoft, GitHub et Xamarin et, comme dans le cas de Mozilla, servira à assurer la gouvernance globale de la plateforme.
En l’état, la fondation .NET débute son existence avec un total de 24 projets. Parmi eux, 18 proviennent de Microsoft, et on retrouve parmi les plus importants tout ce qui touche à ASP.NET ou presque, WinJS ou encore le nouveau compilateur Roslyn, qui porte désormais l’appellation officielle « .NET Compiler Platform ». Notez que Roslyn en particulier sera disponible sous licence Apache 2.0. Six autres projets proviennent de Xamarin, notamment MimeKit et MailKit. Pour rappel, Xamarin est une entreprise produisant des outils qui permettent aux développeurs de créer des applications iOS et Android depuis Visual Studio avec la plateforme .NET. Son directeur technique, Miguel di Icaza, est d’ailleurs l’un des membres fondateurs de la fondation .NET.
Certains seront sans doute étonnés de voir Microsoft basculer des pans entiers de sa technologie vers des licences open source, mais la firme change de fusil d’épaule. Il s’agit pour simplifier d’un choix pouvant avoir un impact concret sur le taux d’adoption de ses technologies. Comme nous l’indiquions précédemment dans l’actualité sur Office tactile pour Windows, le monde applicatif devient plus important pour Microsoft que le système d’exploitation lui-même. La diffusion des technologies menant aux applications est donc une étape cruciale, autant que le modèle de développement, devenu par ailleurs « universel ».
Un compilateur .NET pour produire du code natif
Si la fondation sera certainement importante, des annonces plus techniques ont également été réalisées. C’est le cas de la préversion d’un nouveau compilateur baptisé « .NET Native » qui, comme son nom l’indique, est capable de compiler un code natif depuis un projet .NET. Cette préversion peut être installée sur un Visual Studio 2013 équipé de la Release Candidate de l’Update 2. Le statut non finalisé du projet limitera d’ailleurs les plateformes supportées au x64 et à ARM, le support du x86 devant arriver plus tard, ainsi qu’au langage C#.
Contrairement à une compilation .NET classique, le résultat est une véritable application native, avec tout ce que cela implique. Microsoft annonce des temps de démarrage jusqu’à 60 % plus rapide, une conséquence logique puisque le framework .NET n’a pas besoin d’être chargé, et aucune machine virtuelle n’est créée. Autre conséquence, l’empreinte mémoire est d’autant réduite. L’objectif global est donc de garder la productivité du C# tout en permettant les performances du C++.
Le développement du projet reste sous la houlette de .NET avec les avantages qui sont liés à ce type de plateforme. Il s’agit donc bien d’un code MSIL qui est envoyé au compilateur. Mais le travail de ce dernier change complètement. Le code concerné du framework est compilé en même temps et l’application ainsi produite est autonome. Elle ne dépend donc plus d’une version particulière du framework.
Une étape importante dans la nouvelle stratégie
Le travail réalisé aura à terme un impact très important sur les boutiques d’applications. Le développeur enverra en effet un code unique à Microsoft pour une publication sur le Store. De là, il sera compilé pour correspondre à l’architecture de l’appareil qui demande à télécharger l’application. Pour l’instant, la préversion ne permet de créer que des applications Windows de type Modern UI mais les évolutions permettront plus tard de réaliser la compilation de tout type de projet. Ce sera notamment le cas des applications de bureau, Microsoft indiquant dans sa FAQ que ces dernières « sont une part importante » de sa stratégie. Pour l’instant, cette « compilation dans le cloud » reprend le modèle de Windows Phone 8 et de sa boutique.
Lorsque le compilateur .NET Native sera disponible en version finale, il pourra être utilisé avec l’intégralité des projets .NET. Cependant, bien qu’un tel projet puisse largement faire progresser l’utilisation de la plateforme, il n’a pas vocation à remplacer la compilation habituelle. Il s’agira d’un produit complémentaire car le code natif ne répond pas à toutes les situations, et certains éditeurs préfèreront garder le fonctionnement par machine virtuelle, qui offre d’autres avantages.
Ceux qui souhaitent en savoir davantage sur .NET Native pourront lire l’annonce officielle du projet, ainsi que la FAQ, qui répond à de nombreuses questions.