web-dev-qa-db-fra.com

Différence entre ASP.NET Core (.NET Core) et ASP.NET Core (.NET Framework)

Quelle est la différence entre ASP.NET Core Web (.NET Core) et ASP.NET Core Web (.NET Framework)?

et est-ce que .NET Framework fournit performances similaires à celle de .NET Core?

71
Justin Homes

Cela peut être déroutant au début, mais il est important de se rappeler: en fin de compte, "ASP.NET Core" n'est qu'un ensemble de packages NuGet pouvant être installés dans votre projet.

ASP.NET Core sur .NET Core est une plate-forme ASP.NET Core multiplate-forme. Il peut fonctionner sous Windows, Mac et Linux (y compris Docker). Le serveur n'a pas besoin de .NET Core installé - les dépendances peuvent être groupées avec l'application.

ASP.NET Core sur .NET Framework est ASP.NET Core sur "complet" ou "desktop" .NET Framework (par exemple .NET Framework 4.6. 2) Ces applications ne peuvent fonctionner que sous Windows, mais tout le reste d'ASP.NET Core se comporte de la même manière.

Selon le tests de performance que vous avez lié, les deux auront des performances supérieures à ASP.NET 4.6, bien que .NET Core soit actuellement le plus élevé:


ASP.NET 4.6: <50 000 req/s

ASP.NET Core (CLR): 400 Ko/s

ASP.NET Core (.NET Core, Linux): 900k req/s

ASP.NET Core (.NET Core, Windows):> 1,1 million de req/s

Cependant, ces repères sont légèrement plus anciens (février 2016) et reflètent un code pré-RTM. Je ne serais pas surpris s'ils se sont améliorés depuis.

89
Nate Barbettini

ASP.NET Core avec .NetCore est un multiplate-forme (il peut fonctionner sous Windows, Linux ou d'autres plates-formes), cadre hautement performant , à source ouverte pour la création d’applications modernes, en nuage et connectées à Internet. Il a la capacité d'héberger sur IIS, Nginx, Apache, Docker ou un hôte autonome dans votre propre processus.

ASP.NET Core est livré entièrement sous forme de packages NuGet . Cela vous permet d'optimiser votre application pour inclure uniquement les packages NuGet nécessaires. En fait, les applications ASP.NET Core 2.x ciblant .NET Core ne nécessitent qu'un seul package NuGet. Les avantages d’une surface d’application réduite comprennent une sécurité renforcée, un entretien réduit et des performances améliorées.

Il n'est pas nécessaire d'installer .Net Framework pour exécuter asp.net core avec une application .net core. Une application ASP.NET Core avec .net Core est une application de console qui crée un serveur Web dans sa méthode Main. Il utilise le serveur Web Kestrel pour exécuter l'application.

Nous pouvons également utiliser des éditeurs tels que Visual Studio Code, Atom pour exécuter l'application.

Il ne prend pas en charge Aspx, WPF, WCF et WebServices comme maintenant. Il prend en charge l'injection de dépendance intégrée. Utilise coreclr qui est le runtime dans asp.net core avec .net core.

Asp.Core avec le framework .Net . Le framework .Net a commencé bien avant 2005 et continuait à ajouter de nouvelles fonctionnalités, ce qui le rendait un peu complexe. plus lourd. Ce n'est pas multiplateforme. Il prend en charge Aspx, WPF, WCF et WebServices

. Plan d’exécution du Net Framework enter image description here

. Plan d’assurance de base net enter image description here

7
Nayas Subramanian

ASP.NET CORE utilisant .NET Core - toutes les dépendances sont autonomes, peuvent utiliser la plupart des packages de nugets, mais ne peuvent pas utiliser Windows packages spécifiques, peut exécuter sur Windows, Linux, Mac

ASP.NET CORE utilisant .NET Framework - la plupart des dépendances sont autonomes, ne s'exécutant que sur des fenêtres, auront accès à Paquets de nuget spécifiques à Windows, nécessite la version du framework .net qui est ciblée et installée sur la machine

3
Nathan Alard