L’open source .NET est « trop sous-financé », selon AWS • The Register
RÉ:INVENTER “Nous avons constaté que l’open source .NET est sous-financé”, a déclaré Saikat Banerjee, responsable du développement logiciel AWS, lors d’une session re:Invent cette semaine.
“Ce qui est triste avec l’open source .NET, c’est que nous l’appelons toujours open source tiers. Ça ne devrait pas l’être.”
Au cours de la session, AWS a parlé de sa prise en charge de .NET open source, y compris le financement et les crédits AWS pour les projets, le portage d’outils du .NET Framework Windows uniquement, les contributions de code à l’effort de portage du framework Windows Communication Foundation (WCF) pour traverser -platform .NET et code pour activer la connectivité Active Directory à partir de conteneurs Linux.
Pourquoi le géant du cloud est-il fan de la technologie Microsoft ? « Au cours des deux dernières années, nous avons passé beaucoup de temps à faire passer les clients du .NET Framework au .NET Core, afin que les clients puissent s’éloigner des licences Windows et SQL Server et utiliser les technologies natives Linux et Cloud », a déclaré Mayur. Dewaikar, chef de produit senior AWS.

Une diapositive de re:Invent expliquant pourquoi AWS aime .NET (cliquez pour agrandir)
.NET Core (maintenant officiellement appelé .NET) est la version open source et multiplateforme, publiée pour la première fois en 2016. Le portage d’applications n’est pas toujours simple. Les applications qui appellent COM ou d’autres API Windows natives ne fonctionneront pas sous Linux, et les composants du .NET Framework, y compris les formulaires Web ASP.NET et la plupart des Windows Communication Foundation (WCF) ne font pas partie de .NET Core.
Il s’agit d’une situation unique, où AWS investit dans une partie de la plate-forme de développement de Microsoft pour aider ses clients à s’éloigner des autres parties. L’allégation de sous-financement de l’open source .NET peut également sembler surprenante, puisque Microsoft a créé la Fondation .NET qui, selon elle, est “une organisation indépendante à but non lucratif créée pour soutenir un écosystème open source innovant, commercialement convivial autour du plate-forme .NET.” AWS est répertorié comme l’un des 10 seuls sponsors d’entreprise.
Le chemin de l’open source .NET n’a cependant pas été facile, et une série d’incidents l’année dernière comprenait l’aveu d’un membre du conseil d’administration qu’il avait “violé la confiance du chef de projet”. Se disputer une fonctionnalité .NET que Microsoft a supprimée de .NET open source au profit de Visual Studio, avant de s’excuser et de la ramener, est un autre rappel de l’ambivalence de l’entreprise envers l’aspect open source de .NET.NET.
Cela dit, l’équipe .NET de Microsoft a mis beaucoup d’énergie dans la plateforme et sur le plan technique, salue les efforts des contributeurs externes dont AWS. Un exemple notable est la tâche WCF. “Le projet Core WCF a été lancé par un développeur de Microsoft dans l’équipe WCF”, a déclaré Banerjee. “Nous avons contacté cette personne au début du développement et travaillons ensemble depuis. Nous sommes en phase avec Microsoft sur ce projet.”
Selon Banerjee, AWS essaie “d’améliorer WCF, pas de le laisser avec les limitations dont il dispose”. Les travaux incluent la prise en charge de l’identité fédérée pour les liaisons HTTP et l’extension de la prise en charge de la mise en file d’attente des messages WFC “pour inclure d’autres courtiers de messages” en plus de Microsoft Message Queue (MSMQ), tels que RabbitMQ et Amazon SQS (Simple Queuing Service).
“Nous avons contribué à une conception qui fournit une couche pour ce cadre de messagerie, afin que vous puissiez fournir une implémentation du cadre de messagerie que vous souhaitez utiliser.”
Un autre domaine clé est Active Directory (AD). “Un projet sur lequel nous travaillons cette année est la connectivité AD à partir de conteneurs Linux”, a déclaré Banerjee. “Lorsque les clients commencent à se moderniser, ils nous disent qu’il est difficile de s’éloigner d’AD, car AD connecte toutes leurs organisations.”
Dans Windows AD, un compte de service géré de groupe (gMSA) est souvent utilisé comme compte pour les services d’application. “C’est une excellente architecture qui peut être portée sur Linux”, a déclaré Banerjee. AWS a travaillé sur un composant appelé extracteur d’informations d’identification. “C’est un démon qui se trouve sur vos instances Linux”, a-t-il déclaré. Cela permet l’utilisation de gMSA dans des conteneurs Linux.
Un troisième domaine qui maintient certaines applications .NET mariées à Windows est les applications ASP.Net Web Forms. “Il n’y a aucun moyen pour les clients de porter une application Web Forms sur .NET Core”, a déclaré Banerjee.
AWS n’essaie pas d’implémenter Web Forms pour Linux, mais a ajouté la fonctionnalité Web Forms à Blazor dans son assistant de portage pour .NET, Blazor est une technologie d’application Web qui s’exécute sur .NET Core. “C’est loin d’être terminé”, a déclaré Banerjee, “et nous demandons à la communauté de participer.” L’équipe envisage également des options pour porter les applications Web Forms vers AngularJS ou ReactJS.
.NET sans serveur, en particulier Lambda, est un autre problème délicat. “Les clients nous ont dit que lorsqu’ils lancent Lambdas avec .NET, il y a toujours un problème de démarrage à froid. Le problème n’est pas seulement la nécessité de charger le runtime .NET à chaque fois qu’une fonction s’exécute, mais aussi le “JIT (just in time ) ) le compilateur se joint à chaque fois pour compiler le code intermédiaire .NET en code natif et cela prend également beaucoup de temps.”
La solution dans les versions récentes de .NET 7 est la compilation AOT (Ahead of Time). Par conséquent, AWS a travaillé sur des outils Lambda pour .NET qui ajoutent une compilation AOT native aux fonctions Lambda. La technologie SnapStart récemment annoncée pour Lambda peut également aider à cela, bien qu’actuellement seul Java soit pris en charge.
Du côté de la communauté, AWS offre jusqu’à 5 000 $ chacun pour un maximum de 10 projets communautaires, ainsi que des crédits AWS.
“À l’heure actuelle, .NET est la troisième plate-forme la plus populaire derrière Python et Java pour le développement d’applications sur AWS”, a déclaré Dewaikar.
Bien que le cloud Azure de Microsoft soit mieux adapté aux applications .NET, les entreprises qui se sont normalisées sur AWS peuvent vouloir leur code .NET avec leurs autres déploiements cloud. Ces efforts pour éloigner Windows de .NET profitent également aux utilisateurs d’Azure, car bon nombre des mêmes arguments s’y appliquent. Les machines virtuelles Linux ou les services d’application sont plus rentables et l’utilisation de conteneurs Linux facilite les déploiements Kubernetes. C’est la nature de l’open source ; l’investissement d’AWS profite également aux clients de Microsoft. ®