
la branche web d'Amazon investirait dans les outils de portage à partir du Framework .NET réservé à Windows
Lors d'une session re:Invent cette semaine, Saikat Banerjee, responsable du développement logiciel chez AWS, a déclaré : « Nous avons constaté que l'open source .NET est largement sous-financé… Ce qui est triste avec l'open source .NET, c'est que nous l'appelons encore open source tierce partie. Cela ne devrait pas être le cas ».
Lors de la session, AWS a parlé de son soutien à l'open source .NET, y compris le financement et les crédits AWS pour les projets, les outils de portage à partir du Framework .NET réservé à Windows, les contributions de code dans un effort pour porter le framework Windows Communication Foundation (WCF) vers .NET multiplateforme, et le code pour permettre la connectivité Active Directory à partir de conteneurs Linux.
.NET Core (désormais officiellement juste appelé .NET) est la version open source et multiplateforme, publiée pour la première fois en 2016. Le portage des applications n'est pas toujours simple. .NET repose sur un runtime hautes performances utilisé en production par de nombreuses applications à grande échelle. Les fonctionnalités .NET permettent aux développeurs d’écrire du code fiable et performant de manière productive.
- Code asynchrone
- Attributs
- Réflexion
- Analyseurs de code
- Délégués et expressions lambda
- Événements
- Exceptions
- Garbage collection
- Types génériques
- LINQ (Language Integrated Query).
- Programmation parallèle
Les applications et bibliothèques .NET sont générées à partir du code source et d’un fichier projet, à l’aide de l’interface CLI .NET ou d’un environnement de développement intégré (IDE) comme Visual Studio. « Ces deux dernières années, nous avons passé beaucoup de temps à faire passer les clients de .NET Framework à .NET Core, afin qu'ils puissent s'affranchir des licences Windows et SQL Server et utiliser Linux et les technologies natives du cloud », a déclaré Mayur Dewaikar, chef de produit senior chez AWS.
Les applications qui font appel à COM ou à d'autres API Windows natives ne fonctionneront pas sur Linux, et certaines parties du .NET Framework, notamment ASP.NET Web Forms et une grande partie de Windows Communication Foundation (WCF), ne font pas partie de .NET Core. Il s'agit d'une situation étrange, où AWS investit dans une partie de la plateforme de développement de Microsoft afin d'aider ses clients à migrer vers d'autres parties.
L'allégation de sous-financement de l'open source .NET peut également sembler surprenante, étant donné que Microsoft a créé la Fondation .NET, qui se présente comme « une organisation indépendante à but non lucratif créée pour soutenir un écosystème open source innovant et commercialement convivial autour de la plateforme .NET. » AWS figure sur la liste des 10 entreprises sponsors.
Le chemin de l'open source .NET n'a pourtant pas été sans heurts, et une série d'incidents survenus l'année dernière a notamment amené un membre du conseil d'administration à admettre qu'il avait « violé la confiance du responsable du projet ». Une dispute au sujet d'une fonctionnalité de .NET que Microsoft a supprimée de l'open source .NET au profit de Visual Studio, avant de s'excuser et de la rétablir, a été un autre rappel de l'ambivalence de l'entreprise à l'égard de l'aspect open source de .NET.
Windows Communication Foundation
L'équipe .NET de Microsoft a consacré beaucoup d'énergie à la plateforme et, sur le plan technique, salue les efforts des contributeurs externes, dont AWS. Un exemple notable est le travail sur WCF. « Le projet Core WCF a été lancé par un développeur de Microsoft dans l'équipe WCF », a déclaré Banerjee. « Nous avons été mis en relation avec cette personne très tôt dans le développement et nous travaillons ensemble depuis. Nous sommes en phase avec Microsoft sur ce projet. »
Windows Communication Foundation (WCF) est une infrastructure permettant de créer des applications orientées service. À l’aide de WCF, il est possible d’envoyer des données sous forme de messages asynchrones d’un point de terminaison de service à un autre. Un point de terminaison de service peut faire partie d'un service disponible en continu et hébergé par IIS, ou il peut s'agir d'un service hébergé dans une application.
Un point de terminaison peut être un client d'un service qui demande des données auprès d'un point de terminaison de service. Les messages peuvent être simplement constitués d'un caractère ou d'un mot unique envoyé au format XML, ou se présenter sous la forme d'un flux de données binaires plus complexe. Voici quelques exemples de scénarios :
- service sécurisé pour traiter des transactions commerciales ;
- service qui fournit des données actuelles à d'autres services, comme un rapport sur le trafic ou tout autre service de surveillance ;
- service de conversation qui permet à deux personnes de communiquer ou d'échanger des données en temps réel ;
- application de tableau de bord qui interroge les données d'un ou de plusieurs services et les présente de manière logique ;
- Exposition d'un workflow implémenté à l'aide de Windows Workflow Foundation en tant que service WCF.
Alors que la création d’applications de ce type était possible avant l’existence de WCF, WCF rend le développement des points de terminaison plus facile que jamais.
Selon Banerjee, AWS essaie « d'améliorer WCF, et non de le laisser avec les limitations qu'il avait. » Le travail comprend la prise en charge de l'identité fédérée pour les liaisons HTTP, et le travail visant à étendre la prise en charge de la mise en file d'attente des messages WFC « pour inclure d'autres courtiers de messages » aux côtés 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, de sorte que vous pouvez fournir une mise en œuvre du cadre de messagerie que vous voulez utiliser. »
Active Directory
Un autre domaine clé est celui d'Active Directory (AD). « Un projet sur lequel nous avons travaillé cette année est la connectivité AD à partir de conteneurs Linux », a déclaré Banerjee. « Lorsque les clients commencent à se moderniser, ils nous ont dit qu'il est difficile de se détacher d'AD, car AD connecte toute leur organisation. » Un annuaire est une structure hiérarchique qui stocke des informations sur les objets du réseau.
Un service d'annuaire, tel que Active Directory Domain Services (AD DS), fournit les méthodes permettant de stocker les données d'annuaire et de les mettre à la disposition des utilisateurs et des administrateurs du réseau. Par exemple, AD DS stocke des informations sur les comptes d'utilisateurs, comme les noms, les mots de passe, les numéros de téléphone, etc. et permet aux autres utilisateurs autorisés sur le même réseau d'accéder à ces informations.
Active Directory stocke des informations sur les objets du réseau et permet aux administrateurs et aux utilisateurs de trouver et d'utiliser facilement ces informations. Active Directory utilise un magasin de données structuré comme base d'une organisation logique et hiérarchique des informations de l'annuaire.
Ce magasin de données, également appelé répertoire, contient des informations sur les objets Active Directory. Ces objets comprennent généralement des ressources partagées telles que des serveurs, des volumes, des imprimantes et des comptes d'utilisateurs et d'ordinateurs du réseau. Pour plus d'informations sur le magasin de données Active Directory, voir Magasin de données de l'annuaire.
La sécurité est intégrée à Active Directory par l'authentification de la connexion et le contrôle d'accès aux objets de l'annuaire. Avec une seule connexion au réseau, les administrateurs peuvent gérer les données et l'organisation de l'annuaire sur l'ensemble de leur réseau, et les utilisateurs autorisés du réseau peuvent accéder aux ressources partout sur le réseau. L'administration basée sur des règles facilite la gestion du réseau, même le plus complexe. Pour plus d'informations sur la sécurité d'Active Directory, consultez la section Présentation de la sécurité. Active Directory comprend également :
- un ensemble de règles, le schéma, qui définit les classes d'objets et d'attributs contenus dans l'annuaire, les contraintes et les limites des instances de ces objets, ainsi que le format de leurs noms ;
- un catalogue global qui contient des informations sur chaque objet du répertoire. Cela permet aux utilisateurs et aux administrateurs de trouver des informations sur l'annuaire, quel que soit le domaine de l'annuaire qui contient réellement les données ;
- un mécanisme d'interrogation et d'indexation, afin que les objets et leurs propriétés puissent être publiés et trouvés par les utilisateurs ou les applications du réseau ;
- un service de réplication qui distribue les données de l'annuaire sur un réseau.
Tous les contrôleurs de domaine d'un domaine participent à la réplication et contiennent une copie complète de toutes les informations d'annuaire pour leur domaine. Toute modification des données d'annuaire est répliquée sur tous les contrôleurs de domaine du domaine.
Dans Windows AD, un compte de service géré par 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é credentials fetcher. « Il s'agit d'un démon qui se trouve sur les instances Linux », a-t-il déclaré. Cela permet d'utiliser les gMSA dans des conteneurs Linux.
ASP.Net Web Form
Un troisième domaine qui retient certaines applications .NET sous Windows est celui des applications ASP.Net Web Form. « Il n'y a aucun moyen pour les clients de porter une application Web Forms vers .NET...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.