Je garde la tête basse sur divers projets et apparemment, Microsoft a été en train de faire de gros changements et cela me rend confus. ASP.NET Core a fait son apparition lorsque j'ai installé Visual Studio 2017 l'année dernière et est allé créer un nouveau projet. Soudain, j'ai eu le choix entre .NET Framework, .NET Standard et .NET Core. Je les ai donc un peu examinées et j'ai constaté que ces deux dernières sont, en quelque sorte, des versions abrégées du cadre complet. J'ai lu ce billet de Scott Hanselman ASP.NET 5 est mort - Présentation de ASP.NET Core 1.0 et de .NET Core 1. J'ai également trouvé cela, ce qui m'a permis d'éviter ASP.NET Core: Choisissez entre ASP.NET et ASP.NET Core . Ma conclusion était: "Le noyau est nouveau, vous pouvez continuer à utiliser le cadre complet". J'ai donc créé un nouveau site ASP.NET MVC à l'aide de .NET Framework 4.6.2 et Microsoft.AspNet.Mvc 5.2.3.
Depuis la création de ce projet, j'ai trouvé ce qui semblait être des bogues dans MVC et Entity Framework, mais je me suis rendu compte que la seule mention d'eux sur le Web semblait être dans Core et que c'était le seul endroit où ils étaient considérés en train d'être corrigés.
Aujourd'hui, j'essaie de rechercher la documentation sur System.Web.Mvc.Controller et System.Web.Mvc.JsonResult et elle a disparu sauf dans la documentation principale. J'ai finalement réussi à le creuser ici où il est indiqué qu'il n'est plus maintenu?
J'ai compris à ce point à propos de Core et j'ai dit: "OK, pourquoi devrais-je m'en soucier? Je vais continuer à faire ce que je fais et à vérifier lorsque cela sera fait." Mais maintenant, il semble que 4.6.2 n'est même plus supporté. Quelqu'un peut-il expliquer ce qui se passe? Est-ce que mon projet NET 4.6.2/MVC 5.2.3 est maintenant obsolète avant même d'avoir fini de l'écrire? Si non, pourquoi la documentation a-t-elle été retirée et cachée? Je crains que certaines de mes dépendances ne soient même pas disponibles ou compatibles avec Core.
(Cette réponse est régulièrement mise à jour chaque fois qu'une nouvelle annonce .NET est faite. Elle a été mise à jour avec les détails d'ASP.NET Core 3.0, .NET 3 et .NET 5)
Microsoft a besoin d'un bon slap pour la confusion au cours des 3 dernières années sur .NET Core/DNX, ASP.NET Core, .NET Standard, .NET 5 et les autres.
(et je dis cela en tant qu'ancien FTE SE dans DevDiv ... ("salut de la construction 16!"))
System.Web.Http
) qui ne partage pas grand chose avec ASP.NET MVC _ (System.Web.Mvc
). Tenter de combiner un service API Web ASP.NET avec une application Web ASP.NET MVC dans le même projet est un exercice fastidieux.System.Web.dll
ou toute dépendance (maintenant héritée) IIS (par exemple, l'ancien pipeline de demandes, IHttpHandler
et IHttpModule
n'existent plus)). Microsoft.AspNet
et pas System.Web
. C'était une source de confusion pour moi. Cela signifie que la mise à niveau de projets de ASP.NET MVC et ASP.NET WebAPI vers ASP.NET Core n'est pas triviale, bien que leur architecture fondamentale de Controllers et de Middleware soit identique.Je remarque que "Core" est la marque hot de Microsoft destinée à la génération actuelle de plates-formes .NET fonctionnant avec .NET Core (c’est-à-dire qu’elles ne possèdent aucune dépendance de Windows et qu’elles sont donc portables). (Tout comme le fait que Microsoft ait bloqué "Actif" dans les années 90 s’ils utilisaient COM ou ActiveX, par exemple, Active Desktop, Active Channels, ActiMates, Active Directory, ActiveSync, etc.). - De plus, Entity Framework Core _ n'a toujours pas beaucoup de fonctionnalités d'Entity Framework 6, car il s'agit en réalité d'une réécriture, mais elle finira par atteindre la parité.
Parce qu'il existe de nombreux programmes d'exécution .NET et BCL actuellement disponibles (.NET Framework, .NET Core, UWP, Xamarin (qui utilise Mono), Unity et d'autres), Microsoft a introduit .NET Standard, qui est essentiellement un redémarrage de le concept de bibliothèque de classes portable: les projets Visual Studio ciblent un sous-ensemble connu de fonctionnalités communes au lieu d'une implémentation spécifique. (Je souhaite juste qu'ils commencent la numérotation des versions à partir de 4 pour correspondre à .NET Framework au lieu de commencer à 1.0
parce que cela m'a fait penser à 2001 encore une fois.) - mais la partie importante est que ASP.NET Core 1 _ et ASP.NET Core 2 cible .NET Standard au lieu de .NET Core - ce qui signifie que ASP.NET Core s'exécute par dessus .NET Framework sous Windows en plus de l’exécution de .NET Core.
Je remarque que toutes les précédentes techniques de compatibilité inter-plateformes .NET sont maintenant obsolètes (y compris le ciblage de sous-ensembles Compact Framework, de bibliothèques de classes portables et même de "projets partagés" dans Visual Studio), car elles étaient destinées à d'autres éditions de .NET. existent plus longtemps, tels que .NET Compact Framework, XNA, Silverlight et le sous-ensemble de Windows Phone 7.
En mai 2019, Microsoft a annoncé ".NET 5" . En bref, le .NET Framework est remplacé par .NET Core (plus précisément: la prochaine version de .NET Core après .NET Core 3.0 sera appelée .NET 5.). Cette annonce ne concerne nullement ASP.NET Core, à part le fait que .NET 5 supportera pleinement les applications ASP.NET Core 3. qui y sont exécutées. (ASP.NET Core 4 sera probablement publié d'ici là de toute façon)
System.Web.dll
). La plate-forme ASP.NET MVC est maintenant obsolète.System.Web.dll
.System.Web.dll
.System.Web.Mvc.dll
.System.Web.dll
.System.Web.Mvc.dll
.System.Web.Http.dll
.System.Web.dll
sous OWIN.(Je me suis emporté pour faire ça ...)
Cette réponse essaiera de se concentrer uniquement sur ASP.NET MVC 5 et le moins possible de noyau ASP.NET.
Cycle de vie du produit
Microsoft le prend toujours en charge et aucune annonce de fin de vie n’a encore été annoncée,
Cadre/Retrait du produit
ASP.NET MVC 4 1er juillet 2019
ASP.NET MVC 5
Donc, si vous aimez, continuez à l'utiliser. N'oubliez pas que les utilisateurs VB6 et classiques ASP sont toujours pris en charge par Microsoft.
.NET Framework 4.5.2 et versions ultérieures sont toujours pris en charge si vous consultez la documentation de Microsoft sur le cycle de vie du produit.
Maintenance
Cependant, vous devez noter qu'ASP.NET MVC 5 est en mode maintenance, car les ressources de développement sont presque toutes sur ASP.NET Core.
Vous obtenez,
Si vous surveillez les packages NuGet pertinents, vous remarquerez que même récemment, Microsoft les met à jour pour corriger les vulnérabilités de sécurité, etc.
L’avis que vous avez vu dans Microsoft Docs met en fait l’accent sur la toute première phrase "Nous ne mettons plus ce contenu à jour régulièrement". Cela est parfaitement logique dans la mesure où ASP.NET MVC 5 est solide, vous ne devez donc pas vous attendre à ajouter de nouveaux matériaux.
Vous avez déclaré: "Depuis la création de ce projet, j'ai trouvé ce qui semblait être des bogues dans MVC et Entity Framework, mais je me suis rendu compte que la seule mention de ceux-ci sur le Web semblait être dans Core et que c'était le seul endroit où ils étaient considérés en train d'être corrigés." . "
Cela dépend vraiment de quels "bugs" vous parlez. Comme je l'ai dit plus tôt, les problèmes liés à la sécurité font encore l'objet de corrections, mais les bogues comportant des solutions de contournement ou des limitations fonctionnelles ont moins de chances d'être résolus. C'est un projet open source, donc si vous le souhaitez vraiment, vous pouvez résoudre le problème vous-même, en dernier recours.
Du côté des nouvelles fonctionnalités, Microsoft rétrograde certaines fonctionnalités d'ASP.NET Core, telles que l'injection de dépendance, le nouveau système de configuration, afin de simplifier la migration à un certain degré. Mais n'attendez pas grand chose.
Migration
Pensez à migrer vers ASP.NET Core si vous le pouvez.