web-dev-qa-db-fra.com

Pourquoi utiliser l'intégralité du .NET Framework avec ASP.NET Core?

Avec ASP.NET Core 1.0, on peut s’exécuter sur .NET Core ou sur le full .NET Framework conformément à la documentation ici . J'essaie de comprendre la dernière option pour laquelle on choisirait ASP.NET Core + le .NET Framework complet? 

Je comprends la différence entre le .NET Framework complet et le .NET Core. Toutefois, si je souhaitais utiliser l'intégralité du .NET Framework, pourquoi ne pas simplement utiliser ASP.NET 4.6? Je pensais que l'idée était un 1-2 poinçon avec ASP.NET Core au dessus de .NET Core permettant de nombreux avantages comme le déploiement multiplateforme, la modularisation, la possibilité de déployer sur un conteneur Docker, les performances, etc. Sans .NET Core Je ne crois pas que quelque chose sur cette liste soit toujours valide, alors quel est le cas d’utilisation du framework .NET complet + ASP.NET Core? Qu'est-ce que ASP.NET Core seul me fournit toujours sans .NET Core?

31
atconway

.NET Core permettant de nombreux avantages tels que le déploiement multiplate-forme, la modularisation, la possibilité de déployer dans un conteneur Docker, les performances, etc. Sans .NET Core, je ne crois pas que rien de cette liste soit toujours valide.

Le seul avantage que vous ne retirez pas si vous choisissez le framework .NET complet par rapport à .NET Core est la multiplateforme. Tous les autres avantages du déploiement, de la modularisation, du menu fixe, des performances, etc. sont toujours valables.

Nous exécutons notre application Web ASP.NET Core sur l’ensemble de la structure et nous bénéficions désormais des avantages de Dependency Injection en tant que citoyen de première classe, grâce à la technologie NuGet intégrée, un pipeline de requêtes HTTP simplifiant qui améliore nos performances, en mode ouvert pour que tous les problèmes puissent être résolus par une brève visite à GitHub), la modularité (il reste encore quelque chose que nous ne pouvons pas personnaliser à nos besoins après presque un an maintenant), etc. Et nous savons que nous n’avons pas besoin de déployer sur un système d’exploitation autre que Windows, de sorte que nous pouvons toujours bénéficier de tous les avantages de la structure complète.

Mise à jour de Tseng

Eh bien, vous pouvez toujours cibler la totalité du .NET Framework sous Linux, par exemple. Là vous avez besoin de mono 4.6 installé là. Il y a quelques limitations car toutes les classes ne sont pas implémentées en mono, mais la majorité est et dans le cas contraire (c'est-à-dire le cryptage), vous devez contourner

Mise à jour de atconway

Il est également intéressant de noter que VB.NET n'est pas pris en charge par .NET Core si cela est nécessaire. 

26

Toutefois, si je souhaitais utiliser l'intégralité du .NET Framework, pourquoi ne pas simplement utiliser ASP.NET 4.6?

Si j'utilise ASP.NET 4.6 au lieu d'ASP.NET Core 1, je ne pourrai pas utiliser ASP.NET Core MVC. Aucune des fonctionnalités de cette page de documentation ne serait mise à ma disposition! Je devrais construire une application MVC5. Boooo!

J'essaie de comprendre la dernière option pour laquelle on choisirait ASP.NET Core + le .NET Framework complet?

Je suppose qu'une autre façon de poser cette question serait: "Pourquoi prendriez-vous le chemin rouge alors que vous pouvez emprunter le chemin brun?"

 enter image description here

Un argument pour le faire de cette façon est le déploiement. Si vous avez un groupe de serveurs Windows existants contenant IIS, vous devrez installer un logiciel supplémentaire sur chacun d'eux et les configurer pour exécuter des applications Core. IIS devient simplement un proxy inverse pour votre application .NET Core.

Cependant, si ces applications étaient construites sur le .NET Framework, vous n'auriez pas à le faire. Vous pouvez toujours utiliser le déploiement Web (par exemple) pour les déplacer sur les serveurs. Peut-être avez-vous d'autres paramètres de configuration IIS existants que vous ne souhaitez pas migrer.

En utilisant ASP.NET Core 1.0 et en ciblant le .Net Framework, vous pouvez tirer parti des nouvelles fonctionnalités d'ASP.NET Core MVC sans avoir à modifier votre infrastructure existante.

6
Will Ray

L’utilisation de Full .NET Framework avec Asp.Net Core présente un avantage important: la disponibilité de bibliothèques et d’infrastructures matures développées principalement pour cibler les versions précédentes de .NET. 

Mais en passant de temps en implémentant de plus en plus de bibliothèques pour cibler le noyau .NET et en développant plus de fonctionnalités pour le noyau .NET lui-même, cet avantage peut disparaître.

5
farid bekran

Avoir à tirer parti des technologies héritées telles que OLE DB qui ne sera jamais implémentée dans NET Core System.Data est une autre raison.

2
Alan B

Une chose à considérer est que cela peut être un chemin de migration. Supposons, par exemple, que vous souhaitiez migrer vers .NET Core une application ASP.NET 4.6 existante. Vous souhaitez tirer parti des fonctionnalités d'ASP.NET Core telles que TagHelpers, Dependency Injection, etc., mais vous n'êtes pas prêt ni en mesure d'utiliser .NET Core Framework. Vous développez donc l’application ASP.NET Core, en ciblant uniquement le framework complet .NET. Ensuite, vous passez à l’étape suivante et à plusieurs cibles, en optant pour le framework complet .NET et le framework .NET Core. Cela vous donne la possibilité de déployer facilement vers IIS avec le cadre complet ou multiplate-forme avec le cadre de base. À partir de là, vous pouvez décider d’éliminer ou non le cadre complet.

0
saluce