61 votes

La différence entre l'utilisation de la ASP.NET de Base de l'Application Web (.NET Core) avec net461 défini comme le seul cadre et à l'aide de la (.NET Framework) modèle

Avec la sortie de la .NET de Base RC2 Microsoft fait-il si il y a maintenant 3 Application Web templates:

ASP.NET Application Web (.NET Framework) - L'ancien
ASP.NET de Base de l'Application Web (.NET Framework) - la nouvelle, à l'hébergement sur Windows uniquement
ASP.NET de Base de l'Application Web (.NET de Base) - Linux, OSX, Windows

Je suis en train d'utiliser le nouveau Noyau de l'Application Web modèle, mais sans essayer de cible Linux, OSX, Windows, donc il semble que la ASP.NET de Base de l'Application Web (.NET Framework) est parfait pour moi. Il m'a fallu du temps mais j'ai appris que pour ajouter une bibliothèque de classe qui va travailler avec ce type de projet, vous devez ajouter une Bibliothèque de classes (.NET de Base) et de changer les cadres de la section de seulement net461 pour correspondre à l'Application Web.

  "frameworks": {
    "net461": { }
  }

Ma Question:

Quelle est la différence entre la création d'un ASP.NET de Base de l'Application Web (.NET de Base) et dans le projet.json faire net461 le seul cadre

et

juste la création d'un ASP.NET de Base de l'Application Web (.NET Framework) est un projet qui ne comprend que des net461 par défaut.

Existe-il d'autre différence que je ne suis pas au courant de aime la façon dont les projets sont publiés, etc...?

44voto

devfric Points 4045

Quelle est la différence entre la création d'un ASP.NET de Base de l'Application Web (.NET de Base) et dans le projet.json de décisions.NET461 la seule cible Cadre

C'est la même chose que de faire un ASP.NET Core Web Application (.NET Framework) de projet. Le type de projet entre les deux est déterminé par l' project.json et vous changé dans votre project.json de ciblage .NET Core pour le ciblage de l' .NET Framework. Dans la version précédente/versions bêta d' ASP.NET Core il était possible d'avoir les deux Cadres en project.json mais vous ne pouvez les publier. Pas sûr si cela est encore possible.

juste la création d'un ASP.NET de Base de l'Application Web (.NET Framework) est un projet qui ne comprend.NET461 par défaut.

Existe-il d'autre différence que je ne suis pas au courant de aime la façon dont les projets sont publiés, etc Si vous ciblez le .NET Framework et pas .NET de Base de votre application ne peut pas être multi-plateforme et votre application ne peut fonctionner sur Windows et pas Linux/Mac.

La raison pour laquelle il n'y étant distincte ASP.NET Core Application Web (.NET Core) et ASP.NET Core Application Web (.NET Framework) c'est parce que ce dernier vous permet d'utiliser des fonctions, packages ou 3ème partie les bibliothèques qui dépendent de Windows et le même .NET Framework ou supérieur doit être installé sur la machine.

L'ancien n'a pas l' .NET Framework exigence, mais il permet à votre application d'être multi-plateforme et lorsque vous publiez votre application, elle publie tous les dépendants .NET Core fichiers dll afin de publier le répertoire de cette façon de contourner l' .NET Framework condition de montage.

Il sera également affecter la compilation comme si vous ciblez .NET Core et de faire usage d'un Windows fonction spécifique ou d'un package, vous obtiendrez une erreur de compilation.

Vous pouvez facilement basculer entre les deux en ajustant votre project.json de la cible de l'un ou de l'autre.

Microsoft Docs

Vous devez utiliser .NET de Base pour votre serveur d'application lorsque:

  • Vous avez de la croix-plate-forme de besoins.

  • Vous ciblez les microservices.

  • Vous êtes à l'aide de conteneurs Docker.

  • Vous avez besoin de haute performance et des systèmes évolutifs.

  • Vous avez besoin d'à côté .NET versions de l'application.

Vous devez utiliser .NET Framework pour votre serveur d'application lorsque:

  • Votre application utilise actuellement .NET Framework (recommandation est d'étendre le lieu de migration)
  • Vous avez besoin d'utiliser des tiers .NET les bibliothèques ou les packages NuGet pas disponible pour .NET de Base.
  • Vous avez besoin d'utiliser .NET des technologies qui ne sont pas disponibles pour .NET de Base.
  • Vous avez besoin d'utiliser une plate-forme qui ne prend pas en charge .NET de Base.

Mise à jour (2018/10/30)

Il a été annoncé qu' ASP.Net Core 3 qui a une date de sortie en 2019 T1, ne supporte qu' .NET Core et PAS .NET Framework

Comme annoncé sur le .NET Blog plus tôt ce mois-ci, .NET Framework aurez de moins en moins de la plate-forme plus récente et la langue de fonctionnalités qui viennent .NET Noyau de progresser, en raison de la mise à jour en place de la nature de .NET Framework et le désir de limiter les modifications qui pourraient casser les applications existantes. Pour assurer ASP.NET de Base peuvent tirer pleinement parti des améliorations à venir .NET Noyau de progresser, ASP.NET de Base s'exécute uniquement sur .NET de Base à partir de 3.0. Aller de l'avant, vous pouvez penser ASP.NET de Base comme faisant partie de l' .NET de Base.

Les clients utilisant ASP.NET Base sur .NET Framework d'aujourd'hui peuvent continuer à le faire dans un cadre entièrement pris en charge la mode à l'aide de l'2.1 version LTS. De Support et de dépannage pour 2,1 continuera au moins jusqu'au 21 août 2021 (3 ans après sa déclaration comme une version LTS) en conformité avec le .NET de la Politique de Soutien.

7voto

Nips Points 772

D'abord voir la différence dans le projet.des fichiers json lorsque vous créez ASP.NET de Base des Applications Web qui s'adressent à différents cadres.

difference between asp.net core with different frameworks

Selon votre question, si vous modifiez le cadre de ASP.NET de Base de l'Application Web(.NET de Base).json seul à avoir l' net461 et d'économiser, il va restaurer les paquets et donnera l'erreur suivante.

enter image description here

Si vous supprimez Microsoft.NETCore.App de la dépendance et enregistre le fichier, Il va à nouveau de restaurer les dépendances et de ne donner aucune erreur.

Si vous remarquez que la première image, c'est enfin devenu une ASP.NET de Base de l'Application Web .NET Framework.

3voto

pawan nepal Points 272

J'étais confus au premier abord. La principale différence est que ASP.NET Application Web (.NET Framework) est la normale asp.net que nous avons été à l'aide. Il contient App_Start dossier web.config, Global.asax etc.. (Comme MVC5,Vous obtenez l'idée..).

Alors que ASP.NET de Base de l'Application Web (.NET Framework) est un cadre de base(MVC6). (Qui ne dépendent pas du Système.Web). Tout nouveau projet.json.. de démarrage.cs et le programme.cs etc... Et il prend en charge toutes les anciennes bibliothèques de .net framework.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X