Estou perdido. O que aconteceu com ASP.NET MVC 5?

Tenho estado a manter a cabeça baixa a trabalhar em vários projectos e aparentemente a Microsoft tem estado ocupada a fazer grandes mudanças e está a confundir-me. ASP.NET o Core veio pela primeira vez para o meu radar quando instalei o Visual Studio 2017 no ano passado e fui criar um novo projeto e de repente teve escolhas de.NET Framework, .NET Standard, e .net Core. Então eu olhei para eles um pouco e vi que os dois últimos são, de alguma forma, versões abreviadas do quadro. Li Este post de Scott Hanselman. ASP.NET 5 está morto-introduzindo ASP.NET Core 1.0 e. NET Core 1.0 também encontrei isto, que me afastou de ASP.NET principal: escolher entre ASP.NET e ASP.NET principal O meu ponto de vista era: "o núcleo é novo, podes continuar a usar a estrutura completa."Então criei um novo ASP.NET MVC site usando. NET Framework 4.6.2 e Microsoft.AspNet.Mvc 5.2.3.

Desde que criei aquele projecto, encontrei o que pareciam alguns erros no MVC e no MVC. Entidade Framework apenas para descobrir que a única menção deles na web parece estar no núcleo e esse é o único lugar que eles estão sendo considerados corrigidos.

Hoje, estou a tentar ver a documentação do sistema.Site.Acidente de viação.Controlador e sistema.Site.Acidente de viação.JsonResult e desapareceu, excepto nos documentos principais. Finalmente desenterrei-o aqui onde diz que já não está a ser mantido?

eu entendi isto muito Sobre o núcleo e disse, " ok, porque eu deveria importas-te? Vou continuar a fazer o que estou a fazer e verificar isso quando estiver feito."Mas agora parece que o 4.6.2 já não é suportado. Alguém pode explicar o que se passa? O meu Projecto Net 4.6.2 / MVC 5.2.3 está obsoleto antes de eu terminar de O escrever? Em caso negativo, por que razão a documentação foi retirada e escondida? Estou preocupado que algumas das minhas dependências possam nem estar disponíveis para ou Compatíveis com o núcleo.

Author: xr280xr, 2018-07-17

2 answers

(esta resposta é atualizada regularmente sempre que um anúncio novo. NET é feito, e foi atualizado com detalhes de ASP.NET Core 3.0, .NET 3 e .NET 5)

A Microsoft precisa de uma boa palmada para a quantidade de confusão no passado 3 anos 5 anos mais de. NET Core / DNX, ASP.NET Core, .net Standard, .NET 5 e o resto.

(E estou a dizer isso como um antigo FTE SE em DevDiv... Olá do edifício. 16!"))
  • ASP.NET Também conhecido por "System".Web " agora está morto. A WebForms está morta (hurrah!)
  • ASP.NET a MVC , lançada em 2008, foi construída em ASP.NET, mas contornou a maior parte da infra-estrutura WebForms.
    • ASP.NET MVC tem a sua própria versão separada de ASP.NET e ASP.NET API Web (e ASP.NET principal ). Ligou-se a ASP.NET MVC 5's documentation - this is not the same thing as ASP.NET 5.
  • ASP.NET Web API lançado em 2012, é um irmão de ASP.NET MVC, em que é construído no topo do ASP.NET muito, mas tinha a sua própria biblioteca de classe (System.Web.Http) que não compartilhar muito com ASP.NET MVC (System.Web.Mvc). A tentar combinar um ASP.NET serviço de API Web com um ASP.NET a aplicação web do MVC no mesmo projeto é um exercício de dor.
  • ASP.NET MVC 5 foi lançado em 2014 como uma atualização para ASP.NET MVC 4 . Não tem relação com ASP.NET 5 .
  • ASP.NET o MVC 6 nunca foi lançado. Foi enrolado em ASP.NET 5 que depois se tornou ASP.NET principal O seu objectivo era combinar ASP.NET MVC e ASP.NET API Web em um único plataforma.
  • ASP.NET Core foi lançado em 2016 como um projeto melhorado de ASP.NET MVC 5 mas sem as dependências de System.Web.dll ou qualquer (agora-legado) destas dependências (por exemplo, o oleoduto antigo pedido, IHttpHandler e IHttpModule já não existem).
    • Note que ASP.NET o espaço de nomes raiz da biblioteca de classes do Core é agora Microsoft.AspNet e não System.Web. Isto foi uma fonte de confusão para mim. Isto significa que os projectos de modernização de ASP.NET MVC e ASP.NET WebAPI to ASP.NET o núcleo não é trivial, apesar de sua arquitetura fundamental de controladores e Middleware serem os mesmos.
  • . net Core é uma nova versão do CLR e BCL que é explicitamente portátil e funciona no Windows, Linux e macOS.
    • .NET Core 1.0 e .NET Core 2.0's bibliotecas de classe base, foram considerados anêmicos comparado com o cheios de gordura .NET Framework que é um Windows exclusivas.
    • com . net Core 3.0 e o open-sourcing de WinForms, WPF e outros componentes do.NET Framework, o .net Core está agora preparado como um substituto para o. NET Framework no Windows para o desenvolvimento de novas aplicações.
  • . net 5 será o novo nome do núcleo. net depois de . net Core 3 ser lançado (. net 5 é esperado em torno do final de 2020).
    • . net 5 não tem absolutamente nada a ver com ASP.NET 5, 0 nem ASP.NET MVC 5.
    • Não existe nenhum Núcleo 4 nem quadro 5.0.
    • "ASP.NET Núcleo .NET 5" parece ser o nome final para a primeira versão do ASP.NET Núcleo visando especificamente .NET 5.

    Eu observo que "Core" é a marca da Microsoft hot para a geração atual de plataformas. NET que trabalham com o núcleo. NET (ou seja, eles não têm dependências do Windows e assim são portatil). (Assim como a Microsoft prendeu "ativo" em coisas na década de 1990, se eles usaram COM ou ActiveX, por exemplo, Desktop Ativo, canais ativos, ActiMates, Active Directory, ActiveSync, etc).

    • adicionalmente Entity Framework Core ainda está faltando muita funcionalidade do Entity Framework 6, Isso é porque é uma reescrita, basicamente - mas ele vai chegar à paridade eventualmente.

    Porque existem muitas vezes. net runvezes e BCLs disponíveis actualmente (. NET Framework,. net Core, UWP, Xamarin (que usa Mono), Unity e outros) a Microsoft introduziu . net Standard que é basicamente um reboot do conceito de biblioteca de Classes Portátil: onde o Visual Studio projects visa um subconjunto conhecido de funcionalidade comum em vez de uma implementação específica. (só queria que começassem a numeração da versão de 4 para corresponder ao Framework. NET em vez de começar em {[[9]} porque isso fez-me pensar sobre 2001 outra vez.) - mas o importante é que ASP.NET o Núcleo 1 e ASP.NET Core 2 alvo .NET Padrão em vez de .NET - Core, o que significa que ASP.NET Núcleo é executado no topo do .NET Framework no Windows além de correr em cima .NET Núcleo de bem.

    eu observo que todas as técnicas de compatibilidade entre plataformas anteriores. Net são agora obsoletas (incluindo subconjuntos compactos de Framework, bibliotecas de classe Portáteis, e até mesmo "projetos compartilhados" em Visual Studio), como eles eram significa para outras edições do .NET que já não existem, como o .net Compact Framework, XNA, Silverlight, e o subconjunto do Windows Phone 7.

    Em maio de 2019, A Microsoft anunciou". net 5". Em resumo, o . NET Framework está a ser substituído por . net Core , e a próxima versão do. NET Core após o. NET Core 3.0 será nomeada . net 5). Este anúncio não diz respeito a ASP.NET núcleo de todo, além do fato de que a. net 5 vai totalmente suporte ASP.NET Core 3.0 aplicações em execução nele.

    Durante todo o verão de 2020, a Microsoft finalizou a Microsoft. NET 5 e a Microsoft. ASP.NET núcleo. A partir de outubro de 2020, ASP.NET as versões do pacote NuGet do Core saltaram de 3.1.x a 5.0.0 - assim parece que o próximo grande lançamento de ASP.NET o núcleo será versionado 5.x.x o que sugere a sua libertação pode {[56] } ser nomeado " ASP.NET Core 5 "embora os recentes artigos do Microsoft blog sugerem que o nome será" ASP.NET Núcleo .NET 5" - embora, dado que todo este thread foi criada a partir da confusão sobre "ASP.NET MVC 5" vs "ASP.NET 5" eu tenho certeza de que a nomenclatura-lo "ASP.NET Núcleo 5" ou "ASP.NET Núcleo .NET 5" será absolutamente não ser confuso em todos os, não, senhor-ee-bob!

    Em resumo:

    • ASP.NET MVC 5 :
      • ASP.NET MVC 5 foi um sucessor de curta duração de ASP.NET MVC 4 .
      • Foi lançado ao lado de ... ASP.NET Web API 2 em 2014.
    • realmente funcionou em cima de ASP.NET 4 (i.e..net 4.x version of System.Web.dll). Note que todo o ASP.NET a biblioteca MVC está agora obsoleta.
  • ASP.NET 5 foi EOL'D e renomeado como ASP.NET principal e inclui a funcionalidade de "ASP.NET MVC 5" embutido.
  • ASP.NET principal 1 e ASP.NET o Core 2 Pode correr tanto no Core. net (cross-platform) como no Framework. net (Windows) porque tem como alvo o padrão. net.
  • ASP.NET o Core 3 {[23] } Agora só funciona em . net Core 3.0 .
  • ASP.NET o núcleo 4 não existe e nunca existiu.
  • ASP.NET o núcleo 5 existe (a partir de agosto de 2020) no entanto, o seu nome oficial parece ser "ASP.NET Core for .NET 5" and it only runs on . net 5 .
  • Todos eles (por ordem cronológica):

    • ASP.NET 1 - 2001. Included WebForms . Rodou no. NET Framework 1.0 e 1.1. System.Web.dll.
    • ASP.NET 2.0 - 2005. Included WebForms . Funcionou no. NET Framework 2.0. System.Web.dll.
    • ASP.NET MVC 1 e ASP.NET MVC 2 - 2008-2009. Correu em cima de ASP.NET 2.0. System.Web.Mvc.dll.
    • ASP.NET 4.0 - 2010. Included WebForms . Funcionou no. NET Framework 4.0. Não havia nenhum ASP.NET 3, 0 . System.Web.dll.
    • ASP.NET MVC 3 e ASP.NET MVC 4 - 2010-2013. Correu em cima de ASP.NET 4.0. System.Web.Mvc.dll.
    • ASP.NET Api 1 - 2012. Correu em cima de ASP.NET 4, 0 . System.Web.Http.dll.
    • ASP.NET MVC 5 - 2013. Apenas mais uma actualização para ASP.NET MVC . Correu em cima de ASP.NET 4.0 mas também pode ser executado independentemente sem System.Web.dll sob OWIN.
    • ASP.NET API 2 - 2013. Irmão de ASP.NET MVC 5 . Também podia correr sem ASP.NET 4, 0 abaixo OWIN.
    • ASP.NET MVC 6 - 2014-2015. Interrompido após atingir o estado de candidato à libertação e reiniciado como ASP.NET MVC 1.0 principal em 2016, que é o componente MVC e API Web de ASP.NET principal 1.
    • ASP.NET 5 - 2014. Grande reinicialização de ASP.NET descrito aqui . As principais alterações incluíram a fusão MVC, páginas Web e API Web - e a remoção de WebForms. ASP.NET 5 alcançou o status de candidato à liberação, mas foi então renomeado como ASP.NET principal Nunca houve um ASP.NET 6 .
    • ASP.NET Core 1 - 2016. Executa em Framework 4.5 ou . net Core 1. 0 .
    • . net Core - 2016. Portátil e mínimo. net runtime e biblioteca de classe.
    • norma net - 2017. Uma maneira para os programas de atingir um conjunto comum de funcionalidades que estarão presentes em todas as implementações. Net (. Net Framework 4.5 e mais tarde,. net Core 2.0 e mais tarde, Xamarin, etc).
    • ASP.NET núcleo 2 - 2017-2018: onde estamos hoje. Executa em Framework 4.6.1 ou . net Core 2. 0 . (A partir do final de 2018, há agora ASP.NET Core 2.1).
    • ASP.NET Núcleo 3 - No final de outubro de 2018, a Microsoft anunciou ASP.NET Core 3.0 será agora executado somente no próximo .NET Core 3.0 (assim ele não será mais executado no .NET Framework 4.7.x). Isto é um movimento controverso porque significa que há agora não há caminho de actualização de ASP.NET núcleo 2.x to ASP.NET núcleo 3.x para aplicações que rodam no.NET Framework 4.7.x por causa de dependências que ainda não suportam o núcleo.net, o que significa que provavelmente não haverá um padrão. net 3.0.
    • . net 5 - Maio de 2019: a Microsoft anunciou a próxima versão do. NET Core após . net Core 3.1 não seria chamado de ".net Core 4.0 "nor". net Core 5.0", mas iria saltar para a versão 5.0 e abandonar a marca "Core", daí ". net 5.0".
    • ASP.NET Core 3.0 on .net 5 - no anúncio de Maio de 2019 de . net 5 , a Microsoft também afirmou que ASP.NET as aplicações Core 3.0 serão executadas no. net 5. Actualmente, não é claro se ASP.NET núcleo 2.as aplicações x serão capazes de executar sem modificações no.net 5.
    • ASP.NET Core vNext on. net 5 - August 2020: With the impending release of . net 5, a Microsoft alterou os números de versão dos pacotes NuGet para ASP.NET Principal para 5.0.0. A Microsoft ainda não se referiu formalmente/oficialmente a este novo lançamento de ASP.NET núcleo como "ASP.NET núcleo 5", mas eu vejo isso como uma conclusão inevitável.
    • ASP.NET Núcleo .NET 5 A mais recente artigo do blog a partir de setembro de 2020 sugere que a Microsoft está se referindo a próxima versão do ASP.NET Core como "ASP.NET Núcleo .NET 5" (sim, isso é um bocado, pelo menos ele não é tão ambíguo como anteriormente nomes).
    Cronologia e bloco Diagrama Deixei-me levar por fazer isto...)

    Diagram with a timeline of ASP.NET and a block diagram showing how the components of .NET Framework, ASP.NET and ASP.NET MVC come together

     238
    Author: Dai, 2020-10-28 00:17:13
    Esta resposta vai tentar concentrar-se apenas em ASP.NET MVC 5, e tão pouco ASP.NET núcleo o mais possível.

    Ciclo De Vida Do Produto

    A Microsoft ainda suporta isto, e ainda não foi anunciado o fim da vida,

    Https://www.asp.net/support

    Quadro / Reforma Dos Produtos

    ASP.NET MVC 4 de julho de 2019

    ASP.NET MVC 5

    Se quiseres, continua a usá-lo. Lembre-se que os usuários VB6 e ASP clássico são ainda sendo suportado pela Microsoft.

    O Framework 4.5.2 e acima ainda são suportados se verificar a documentação da Microsoft sobre o ciclo de vida do produto.

    Manutenção

    No entanto, tem de reparar ASP.NET MVC 5 está em Modo de manutenção, uma vez que os recursos de desenvolvimento estão quase todos ligados ASP.NET núcleo agora.

    Tu tens,

    • sistema imprevisível liberta de NuGet.org.

    Se monitorizar os pacotes NuGet relevantes, deve observe que mesmo recentemente a Microsoft atualiza-os para corrigir vulnerabilidades de segurança e assim por diante.

    • bloqueei a documentação.

    O aviso que você viu dos documentos da Microsoft, de fato enfatiza na primeira frase " Nós não estamos mais atualizando este conteúdo regularmente."Faz todo o sentido ASP.NET MVC 5 é sólido como rocha, então você não deve esperar que novos materiais sejam adicionados mais.

    • correcções muito limitadas de erros e novas funcionalidades.

    Tu afirmou que "Desde a criação desse projeto, eu encontrei o que parecia ser alguns bugs MVC e Entity Framework, apenas para descobrir que a única menção a eles na web parece estar no Núcleo e que o único lugar que eles estão sendo levados a ser fixado."

    Bem, isso realmente depende de que "bugs" você está falando. Como eu disse anteriormente, questões relacionadas à segurança ainda estão sendo corrigidas, mas bugs com workarounds ou limitação funcional são menos propensos a serem corrigidos. É um projeto de código aberto, então se você realmente quiser, você pode resolver os problemas por conta própria, como último recurso.

    Do lado das novas funcionalidades, a Microsoft faz backport de algumas funcionalidades do ASP.NET núcleo, como injeção de dependência, novo sistema de configuração, para simplificar a migração em certo grau. Mas não esperes muito.

    Migração

    Considere migrar para ASP.NET núcleo, se puder.
     10
    Author: Lex Li, 2020-06-20 09:12:55