
selon un test de TechEmpower
ASP.NET Core est un framework .NET open source et multiplateforme permettant de créer des applications Web modernes en nuage sous Windows, Mac ou Linux. C'est un framework bâti sur les bases suivantes : multiplateforme, participation de la communauté, performance, modularité, souplesse, etc. Avec ASP.NET Core, il existe désormais deux déclinaisons de la plateforme .NET. Chacune disposant de son propre cycle de développement et les deux bénéficient du support de Microsoft. Bien qu’il s’agisse d’un framework construit sur une nouvelle pile Web, il présente un degré élevé de compatibilité conceptuelle avec ASP.NET MVC.
De ce fait, quelle différence note-t-on entre .NET Core et son homologue .NET Framework ? Contrairement à .NET Framework qui fonctionne uniquement sur Windows ou Windows Server, .NET Core peut être utilisé aussi bien sur Windows que sur Linux et OS X. La conséquence de cette ouverture est le manque de support d’applications qui reposent sur des technologies Microsoft comme WPF, WinForms ou encore ASP.NET WebForms. .NET Core est développé en open source avec la contribution de la communauté. Ce qui n’est pas le cas pour le .NET Framework.
.NET Core implémente de nombreuses API communes avec le Framework .NET. en plus des API qui sont spécifiques à Unix, Linux et OS X. Les API communes sont regroupées dans .NET Standard, qui est implémenté à la fois par .NET Core et .NET Framework. Ce qui signifie que tout code qui cible .NET Standard, peut s’exécuter sur .NET Core et .NET Framework. Cela rend assez simple le partage de code entre les deux plateformes. La dernière version stable du framework, la version 2.2 a été rendue disponible le 4 décembre passé. La version 3.0 quant à elle, est encore en développement. Mais en attendant, une version Preview 2 est disponible avec quelques changements notables tels que la prise en charge des flux asynchrones, la prise en charge des API de port pour Linux, un support pour ARM64 pour Linux, etc.
Pour permettre à ASP.NET de prendre en charge le framework JSON pour .NET dans les projets, il va falloir ajouter Json.NET comme un package indépendant. Toujours sur cette même lancée, l’équipe de Microsoft a décidé de supprimer la prise en charge de la compilation au moment de l’exécution des pages et des vues. Ce changement a été opéré afin de ne plus dépendre du compilateur Roslyn. Après ces mises à jour répétitives qu’a subi le .NET Core, Microsoft a fourni une synthèse sur ses deux outils à savoir le .NET Core et le .NET Framework, qui montre que .NET Core est plus performant que le .NET Framework.
À la vue de cela, un internaute explique que Microsoft a beaucoup travaillé pour améliorer les performances du .NET Core par rapport à .NET Framework. Pour lui, certains sujets restent encore à la traîne, mais d’autres par contre, ont été revus en profondeur. LINQ est devenu omniprésent ces dernières années, dit-il. La sérialisation, la compression, le networking, etc. dans les Web API sont bien plus rapides dans .NET Core que dans .NET Framework.
Ainsi, TechEmpower (un framework d’applications Web qui compare les projets offrant des services de conception, de stratégie, de gestion, de systèmes et de graphisme) a réalisé récemment une comparaison entre la version stable 2.2 de .NET Core avec plusieurs autres frameworks d’applications Web, d'infrastructures full-stack et micro-frameworks. Les résultats placent ASP.NET Core comme 3e serveur le plus rapide. Il est capable de répondre à 7 millions de requêtes HTTP en seulement une seconde.
Ces résultats concernent le serveur Web et le testeur de charge s’exécutant dans des conteneurs Docker, sur deux machines Linux physiques différentes connectées à un réseau de 10GbE, a écrit Ben Adams de Age of Ascent, qui rapporte les différents résultats des tests. « C'est aussi une quantité extraordinaire de bande passante ; assez pour saturer en permanence un lien de 10 Go/s », a-t-il estimé. Selon lui, ASP.NET Core serait très rapide sur toutes les plateformes et l’est plus encore lorsqu’il s’agit de Linux. Dans la comparaison avec d’autres serveurs bien connus, les résultats montrent qu’il est 1,78 fois plus rapide que nginx ; 2,93 fois plus rapide que le servlet de Java ( 7,76 fois plus rapide que le servlet sur Tomcat) ; 7,36 fois plus rapide que le package “net/HTTP” de Golang ; 8,06 fois plus rapide que node.js fonctionnant en cluster de 28 processus (car node.js est à thread unique).
Dans ce dernier cas, certains internautes indiquent que Node.js est totalement dépassé par les performances de ASP.NET Core et cela, quels que soient l’OS, le type de machine et le nombre de cœurs. Ils soulignent notamment les performances remarquables du framework sur Linux. La petite surprise, disent-ils, c’est les bons chiffres sur Ubuntu et ses pairs. On sent que la firme de Redmond a vraiment travaillé sur l’implémentation du .NET Core sur Linux, disent-ils. Néanmoins, ils soulignent quelques imperfections, rien n’étant jamais parfaite à 100 %. « Après, même si cela n’apparaît pas dans les chiffres, il y a tout de même quelques bémols. En effet, sans la désactivation des logs, les performances d'une ’application Web ASP.NET Core sont divisées par environ 5. Ce qui, lors des tests sur Windows, causait des erreurs sur 1 à 2 % des requêtes. Or, une application sans log n’est pas très réaliste en production », ont-ils déclaré.
Ils conseillent donc de préférer les fonctions qui facilitent le développement comme le nouveau concept de Middleware et de Pipeline. D’autres tests réalisés pour examiner les performances de ces outils sur une base de données montrent que ASP.NET Core peut fonctionner avec de nombreuses bases de données (Postgres, MySQL, etc.) avec des performances très remarquables. Il existe d’autres résultats des tests que vous pouvez visualiser sur le site Age of Ascent. D’après Adams, .NET et ASP.NET ont toujours été très productifs et l’avenir avec ASP.NET Core et .NET Core sera aussi productif que rapide.
Sources : Age of Ascent, TechEmpower
Et vous ?




Voir aussi





Vous avez lu gratuitement 18 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.