Dev
Microsoft officialise la sortie de .NET 9
Par Laurent Delattre, publié le 13 novembre 2024
Le framework de développement multiplateforme open-source de Microsoft est très populaire dans les entreprises, notamment pour le développement d’applications Windows. Mais depuis quelques années, il gagne également en puissance en matière de développement cross-plateformes. Cette édition estampillée « 9 » se focalise essentiellement sur un boost des performances et l’intégration des développements d’IA.
Lancé par Microsoft en 2002, .NET est une plateforme de développement qui visait à l’origine à simplifier la création d’applications pour Windows. Elle a introduit le langage C# et le Common Language Runtime (CLR), facilitant l’exécution de code managé. Rapidement, la plateforme s’est imposée comme la solution de prédilection pour le développement d’applications Windows notamment en entreprise. Mais avec les tergiversations de Microsoft autour des Runtimes de Windows 8 et le désamour de Windows auprès de développeurs désormais bien plus intéressés par les plateformes mobiles et le Web, .NET a perdu de sa superbe et connu une traversée du désert.
Jusqu’à ce qu’en 2014, Microsoft décide de tout réinventer avec « .NET Core » et de changer le paradigme de départ en faisant de cette nouvelle mouture une plateforme véritablement open source et multiplateforme, permettant aux développeurs de cibler Windows, macOS et Linux. Une révolution qui imposait également C# en langage de développement cross-plateforme. En 2020, .NET 5 unifie les différentes implémentations (.NET Framework Windows et .NET Core) sous une seule bannière « .NET », simplifiant le développement d’applications sur divers environnements, y compris mobiles. Depuis, .NET continue d’évoluer tous les ans, offrant des performances améliorées, une compatibilité étendue et une communauté active, consolidant sa position comme outil essentiel pour le développement d’applications modernes. Après une décennie passée à se réinventer, .NET est supporté par une communauté de plus 100.000 contributeurs et plus de 5 millions de développeurs. Et le langage C# figure dans le Top 5 des langages les plus populaires aussi bien dans le classement Octoverse de GitHub que dans l’index TIOBE ou le classement PYPL.
C’est pourquoi « .NET » reste toujours aussi important pour les entreprises et pourquoi la sortie d’une nouvelle version doit forcément interpeller les DSI dont les équipes de développement ont construit un puissant historique .NET.
Cette semaine, Microsoft a officialisé la sortie de « .NET 9 » à quelques jours de l’ouverture de sa grande messe de fin d’année, la « Microsoft Ignite Conference ».
« .NET 9 est la version de .NET la plus productive, moderne, sécurisée, intelligente et performante à ce jour, » écrit l’équipe .NET dans son billet d’annonce. « C’est le résultat d’une nouvelle année d’efforts intensifs de la part de milliers de développeurs du monde entier. Cette nouvelle version comprend des milliers d’améliorations en termes de performance, de sécurité et de fonctionnalités. Vous découvrirez des améliorations considérables dans l’ensemble de la pile .NET, des langages de programmation aux outils de développement, en passant par les workloads, vous permettant de construire des applications multi-OS avec une plateforme unifiée et d’y intégrer facilement l’IA. »
Des performances en hausse
Selon Microsoft, plus de 1000 optimisations de performance ont été insufflées dans .NET 9 dont la plus importante s’avère la réécriture de Server GC (le système de gestion de la Garbage Collection des applications côté serveur) qui ne cherche désormais plus à s’adapter aux ressources disponibles sur la machine mais – de façon plus granulaire et utile – aux besoins des applications. Il en résulte un gain de mémoire vive qui peut atteindre 93% et un gain de performance de 15% notamment dans les environnements microservices s’appuyant sur des processeurs à centaine de coeurs!
Par ailleurs, le .NET runtime a été optimisé pour améliorer les performances d’exécution sur les processeurs à architecture ARM mais également tirer profit de fonctionnalités spéciales comme Intel AVX10 ou ARM64 SVE.
Microsoft détaille l’essentiel des optimisations apportées à .NET 9 dans un très long et très technique document à consulter ici : Performance Improvements in .NET 9 – .NET Blog
Simplifier l’adoption de l’IA
Dans la foulée de .NET 8 et des priorités du moment, .NET 9 introduit plusieurs nouveautés facilitant l’intégration de fonctionnalités IA au cœur applications .NET. Parmi celles-ci on retiendra un accès facilité aux modèles d’OpenAI, l’intégration de la version 4.0 de ML.NET (le framework ML pour .NET qui prend en charge de nouveaux tokenizers (pour des modèles tels que OpenAI o1, Llama, CodeGen, Phi ainsi que le support de nouveaux algorithmes de tokenisation tels que Tiktoken, BPE, SentencePiece, WordPiece), des fonctionnalités avancées avec TensorPrimitives et Tensor (avec un nouveau type pour représenter les données multidimensionnelles), etc.
Microsoft a collaboré avec des partenaires de l’écosystème IA pour fournir des clients C# compatibles avec des bases de données vectorielles, telles que Qdrant et Milvus. Cette interopérabilité facilite le stockage et la récupération efficace de données vectorielles, cruciales pour les applications d’IA.
Surtout, Microsoft a collaboré avec Semantic Kernel afin de fournir un ensemble d’abstractions C# pour l’écosystème .NET pour simplifier les intégrations et unifier les interactions avec la multitude de services IA. « Nous avons cherché à supprimer les barrières à l’entrée face à la multiplication des API » expliquent les responsables de .NET. « C’est pourquoi, en collaboration avec Semantic Kernel, nous introduisons un ensemble d’abstractions dénommées Microsoft.Extensions.AI et Microsoft.Extensions.VectorData. Elles fournissent une couche unifiée d’abstractions C# pour interagir avec les services d’IA, tels que les petits et grands modèles de langage (SLM et LLM), les embeddings, les bases de données vectorielles et les middlewares ».
Et pour enfoncer le clou et démontrer le potentiel de .NET en matière d’IA, Microsoft rappelle par ailleurs que « des entreprises dans tous les secteurs ont adopté .NET pour créer des expériences d’IA de premier ordre pour leurs clients, notamment H&R Block, Blip et KPMG. Par ailleurs, .NET anime votre assistant de programmation préféré, GitHub Copilot, et la toute nouvelle expérience Microsoft Copilot a été reconstruite de fond en comble avec .NET. »
Des expériences Windows et multiplateformes plus conviviales
Le framework « .NET Core » était à l’origine pensé pour les applications côté serveur. Mais avec l’unification des frameworks opérée depuis « .NET 5 », les expériences côté clients sont désormais tout aussi fondamentales.
« .NET 9 » apporte ainsi pléthore de nouveautés pour à la fois proposer des applications Windows plus modernes avec « WinUI 3 » ou des applications cross-plateformes plus conviviales avec « .NET MAUI ».
Côté Windows, Microsoft respecte enfin tous les développeurs Windows historiques à commencer par ceux qui avaient tout tablé sur WPF ! Car avec .NET 9, WPF fait son grand retour. Les applications WPF sont désormais pleinement supportées par .NET 9 et bénéficient d’un thème « Fluent AI » cohérent avec WinUI et Windows 11.
Par ailleurs, WinUI permet désormais de rapidement, itérativement et simplement moderniser les anciennes applications Windows qu’elles aient été développées en WinForms ou en WPF. Les développeurs peuvent ainsi moderniser progressivement les expériences utilisateur, fenêtre après fenêtre, boîte de dialogue après boîte de dialogue, sans tout reprendre d’un coup.
Côté développement « multi-plateformes », « .NET 9 » soigne les intégrations natives avec le support des dernières nouveautés d’iOS, macOS et Android. Microsoft promet des expériences plus fluides et plus cohérentes d’une plateforme à l’autre, notamment grâce à l’intégration de composants signés Syncfusion. Pour rappel, le framework de développement multiplateforme “.NET MAUI”, lancé en 2022, permet de créer des application mobiles et desktop en C# et XAML. Il supporte Windows, macOS, iOS (et iPadOS) et Android. Les applications créées avec .NET MAUI sont compilées en code natif et accèdent aux API natives de chaque plateforme. L’illustration ci-dessous résume les nouveautés apportées au framework dans .NET 9.
Accélérer les développements Web Full Stack
Sans surprise .NET 9 introduit également un ensemble d’améliorations clés à la couche ASP.NET Core ainsi qu’à Blazor.
Côté ASP.NET, la gestion des ressources statiques a été optimisée. Lors de la construction, ASP.NET Core identifie automatiquement les ressources Web statiques et génère des versions avec empreinte digitale de ces fichiers. Cette empreinte digitale garantit que le nom du fichier est unique, ce qui évite l’utilisation de versions obsolètes et permet une mise en cache agressive des fichiers. En outre, les fichiers sont précompressés ce qui réduit leur taille de téléchargement sans surcharger le serveur.
Côté Blazor, le framework qui permet de développer des applications Web en C# plutôt que JavaScript, de nombreuses optimisations de performance ont été insufflées. Mais la nouveauté la plus importante est la capacité de détecter le mode de rendu de composants pendant l’exécution afin de l’ajuster en conséquence. Il est aussi enfin possible de désactiver des éléments interactifs lors du pré-rendu pour les réactiver ensuite au cours des interactions. « Blazor est meilleur que jamais dans .NET 9 pour vous permettre de créer de belles applications Web et hybrides modernes. Cette version apporte des améliorations de performances dans tous les domaines de Blazor, un nouveau modèle d’application Blazor Hybrid et Web, ainsi que de nouvelles APIs permettant aux développeurs de créer des expériences encore plus conviviales » explique l’éditeur.
On notera que Microsoft a également apporté d’importantes améliorations à .NET Aspire, sa pile de développement « cloud-native » destinée à simplifier la création d’applications cloud distribuées, résilientes et observables. La liste des améliorations est consultable ici : What’s new in .NET Aspire 9.0
Bref, on le voit, .NET 9 constitue une mise à jour très importante de la plateforme. Elle démontre le dynamisme retrouvé de cet écosystème. Un dynamisme essentiel alors que la concurrence est féroce que l’on parle de Java (finalement toujours très présent en entreprise), de Node.js (qui domine dans l’univers Backend), ou encore de l’univers Python (devenu incontournable dans les développements IA).
À LIRE AUSSI :
À LIRE AUSSI :