Estou perdido. O que aconteceu com ASP.NET MVC 5?
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.
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.
- 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 .
-
([34]} eu observo que ASP.NET MVC 5 foi onde tínhamos tanto
System.Web.Mvc
eMicrosoft.Web.Mvc
espaços de nomes - o que é confuso. Felizmente, isso foi de curta duração e irrelevante hoje.
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ãoSystem.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 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 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.
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).
Ciclo De Vida Do Produto
A Microsoft ainda suporta isto, e ainda não foi anunciado o fim da vida,
Se quiseres, continua a usá-lo. Lembre-se que os usuários VB6 e ASP clássico são ainda sendo suportado pela Microsoft.Quadro / Reforma Dos Produtos
ASP.NET MVC 4 de julho de 2019
ASP.NET MVC 5
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.