Agence web » Actualités du digital » Quelle est la différence entre .NET Framework et .NET Core?

Quelle est la différence entre .NET Framework et .NET Core?

Microsoft fournit deux environnements d'exécution .NET différents: .NET Framework et .NET Core. Les deux implémentent le .NET Standard et le code entre chacun est assez compatible croisé, mais .NET Framework ne fonctionne que sur Windows. Nous discuterons des différences entre les deux environnements d’exécution.

La réponse courte: compatibilité multiplateforme

La réponse rapide est que .NET Core fonctionne sous Linux et macOS, tandis que .NET Framework ne fonctionne que sous Windows. Vous utilisez .NET Core lorsque vous avez besoin d'une compatibilité multiplate-forme et vous utilisez .NET Framework lorsque vous avez besoin de services spécifiques à Windows et de packages NuGet qui n'ont pas été portés vers .NET Core.

.NET Core est le successeur de .NET Framework, c'est donc certainement ce que vous voulez choisir à l'avenir. Il laisse derrière lui certaines fonctionnalités uniquement Windows, mais beaucoup d'entre elles peuvent toujours être prises en charge avec l'extension Windows Compatibility Pack.

Dans l'ensemble, le noyau et le cadre sont à peu près les mêmes, mais dans la pratique, ils présentent de légères différences. .NET Core et .NET Framework utilisent la même API, appelée .NET Standard, mais Core est open-source, tandis que Framework est l'implémentation Windows uniquement de Microsoft.

En général, Core est un peu plus léger que Framework, car il est conçu pour et couramment utilisé avec Docker dans les backends basés sur des microservices. En plus de pouvoir utiliser Linux en premier lieu (nécessaire pour Docker), l'image résultante sera un peu plus petite avec .NET Core.

Au-delà de cela, la plupart des différences résident dans les différences de package NuGet. Par exemple, Entity Framework Core est un peu différent d'Entity Framework 6, qui s'exécute sur .NET Framework. ASP.NET Core est très différent d'ASP.NET 4, car ils en ont beaucoup repensé pour .NET Core.

Quand utiliser .NET Core

Vous devez utiliser .NET Core sur .NET Framework lorsque:

  • Tu avoir besoin compatibilité multiplateforme. Cela inclut l'utilisation d'architectures Docker et microservices.
  • Vous démarrez un nouveau projet et vous n'avez qu'à en choisir un. (.NET Core est plus récent.)
  • Vous n'utilisez pas d'outils, de bibliothèques ou de packages NuGet spécifiques à Windows qui dépendent de .NET Framework.
  • Vous voulez les meilleures performances possibles. Microsoft recommande .NET Core avec ASP.NET sur .NET Framework.
  • Vous souhaitez exécuter plusieurs versions de .NET Core les unes à côté des autres. Framework ne prend pas en charge cela.
  • Vous voulez un accès CLI sous Linux ou exécutez votre serveur de build CI / CD sous Linux.

Quand utiliser .NET Framework

Vous devez utiliser .NET Framework sur .NET Core lorsque:

  • Vous ciblez uniquement les déploiements Windows.
  • Vous faites un usage intensif des packages et des bibliothèques Windows, tels que Windows Forms, WPF, ASP.NET Web Forms / Pages et Windows Workflow Foundation.
  • Les technologies que vous utilisez ne sont pas ajoutées par le pack de compatibilité Windows pour .NET Core.
  • Vous l'utilisez déjà et la migration demanderait trop d'efforts.

Comment passer à .NET Core

Habituellement, ce sera "comment passer de Framework -> Core", car tout projet existant sur .NET Core n'aura probablement pas besoin de revenir à l'ancien .NET Framework.

Si vous utilisez quelque chose de spécifique à Windows, vous ne pouvez pas. Vous êtes bloqué sur .NET Framework jusqu'à ce que les composants que vous utilisez obtiennent les versions Core, et pour certaines choses qui ne se produiront pas comme avec ASP.NET WebForms.

La solution la plus simple serait de créer une nouvelle solution et un nouveau projet basés sur .NET Core et de transférer votre code. Si vous avez une application simple, c'est probablement la solution la plus simple.

Sinon, vous pouvez utiliser dotnet try-convert, ou suivez le guide de portage de Microsoft.

Pour les grands projets complexes, vous pouvez utiliser l'analyseur de portabilité .NET. Il s'agit d'un outil de Microsoft qui analysera votre projet, vous indiquera la difficulté d'une conversion et vous montrera quelles devraient être les prochaines étapes. Il peut également créer un graphique dirigé de vos dépendances, ce qui peut vous aider à voir ce qui nécessite une analyse. Certains projets seront plus difficiles à porter que d'autres, et si vous utilisez quelque chose qui n'est pas disponible dans Core, vous ne pourrez peut-être pas du tout effectuer le portage sans solution de contournement.

★★★★★