Foi anunciado em 20/01/2014 o release do ASP.NET MVC 5.1 que chegou com boas novidades e atualizações, na mesma data o Visual Studio recebeu o Update 1, confira em detalhes.
- Requerimentos de Software
- Download
- Documentação
- Novidades no ASP.NET MVC 5.1
- Problemas Conhecidos e Mudanças Significativas
- Correções de Bugs
Requerimentos de Software
- Visual Studio 2012: ASP.NET and Web Tools 2013.1 for Visual Studio 2012.
- Visual Studio 2013: Visual Studio 2013 Update 1. Este update é requerido para editar Views Razor ASP.NET MVC 5.1.
Download
A release do ASP.NET MVC 5.1 foi liberada como um pacote disponível na galeria NuGet. Todos os pacotes sequem a especificação Semantic Versioning, por exemplo o ASP.NET MVC 5.1 RTM tem a seguinte versão: “5.1.0”.
Para facilitar mais você ainda pode utilizar o NuGet Package Manager Console com o seguinte comando:
Install-Package Microsoft.AspNet.Mvc -Version 5.1.0
Documentação
Tutoriais e outras informações sobre o ASP.NET MVC 5.1 estão disponíveis no site oficial do ASP.NET (http://www.asp.net)
Novidades no ASP.NET MVC 5.1
Melhorias no Attribute routing
O Attribute Routing agora suporta restrições, permitindo o versionamento e header baseado na seleção da rota. Muitos aspectos de attribute routes podem agora ser customizados via a interface IDirectRouteFactory e a classe RouteFactoryAttribute.
Suporte a Enum nas views
- Novo helper @Html.EnumDropDownListFor() Pode ser usado como a maioria dos HTML helpers com a ressalva que a expressão precisa ser avaliada como um tipo de Enum ou um Nullable<T> onte T é um tipo de enun. Utilize EnumHelper.IsValidForEnumHelper() para verificar estes requerimentos.
- Novo método EnumHelper.GetSelectList() qual retorna um IList<SelectListItem>.
Isto é útil quando você precisa manipular uma select lista antes de chamá-la, por exemplo um @Html.DropDownListFor(), ou quando você desejar exibir os nomes que o @Html.EnumDropDownListFor() mostra.
O código a seguir demonstra como aplicar:
@if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata)) { @Html.EnumDropDownListFor(model => model, htmlAttributes: new { @class = "form-control" }) } @if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata)) { foreach (SelectListItem item in EnumHelper.GetSelectList(ViewData.ModelMetadata, (Enum)Model)) { … } }
Você pode conferir um exemplo completo aqui.
suporte a Bootstrap em editor templates
Agora é possível passar no EditorFor um atributo HTML como um objeto anônimo:
Exemplo:
@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })
Validação não intrusiva para MinLengthAttribute e MaxLengthAttribute
Validações client-side para string e arrays agora são suportadas para as propriedades decoradas com os atributos MinLength e MaxLength.
Supporte ao contexto ‘this’ no Ajax não intrusivo
As funções de callback (OnBegin, OnComplete, OnFailure, OnSuccess) agora estão habilitadas a localizar o elemento da invocação através do contexto ‘this’. Exemplo:
@Ajax.ActionLink("Click me", "AjaxAction", new AjaxOptions { UpdateTargetId = "foo", OnBegin = "OnClick" }) <script> function OnClick(jqXHR) { if ($(this).hasClass("foo")) { jqXHR.setRequestHeader("custom-header", "value"); } } </script>
Problemas Conhecidos e Mudanças Significativas
Attribute Routing
Ambiguidades nas correspondências de attribute routing agora irão reportar um erro em vez de escolher a primeira correspondência.
Attribute Routes estão proibidos de usar o parâmetro {controller} e de usar o parâmetro {action} em rotas colocada em actions. O uso destes parâmetros muito provavelmente levará a gerar ambiguidades.
utilizar Scaffolding de MVC/Web API em um projeto com pacotes 5.1 resultará em pacotes 5.0 para aqueles que ainda não existem no projeto.
Atualizar para ASP.NET MVC 5.1 através dos pacotes NuGet não atualiza as ferramentas como Scaffolding ou o template de ASP.NET Web Application.
Eles usam uma versão anterior do ASP.NET (5.0.0.0). Como resultado o Scaffolding irá instalar os pacotes antigos (5.0.0.0) como pacotes requeridos se ainda não estiverem disponíveis em seu projeto. Entretanto o Scaffolding do Visual Studio 2013 RTM ou Update 1 não sobrescreve os últimos pacotes em seu projeto.
Se você usar Scaffolding após ter atualizados os pacotes em seu projeto para Web API 2.1 ou ASP.NET MVC 5.1, confira se as versões estão consistentes.
Syntax Highlighting para Razor Views no Visual Studio 2013
Se você atualizar para o ASP.NET MVC 5.1 RTM sem atualizar o Visual Studio 2013, você não conseguirá o suporte no editor para o syntax highlighting enquanto estiver editando as Razor Views, você precisará atualizar o Visual Studio 2013 para obter este suporte.
tipos renomeados
Alguns dos tipos (types) utilizados para a extensibilidade do attribute routing foram renomeados na versão do ASP.NET MVC 5.1 RTM.
Nome do Tipo Antigo (5.1 RC) | Novo Nome do Tipo (5.1 RTM) |
IDirectRouteProvider | IDirectRouteFactory |
RouteProviderAttribute | RouteFactoryAttribute |
DirectRouteProviderContext | DirectRouteFactoryContext |
Correções de Bugs
O time do ASP.NET realizou a correção de diversos bugs da versão anterior como parte deste release (ASP.NET MVC 5.1 RTM). Confira a lista completa de todos os bugs corrigidos (e outros ainda em andamento) aqui.
Estas são todas as novidades da versão ASP.NET MVC 5.1, lembre-se de atualizar a sua versão do Visual Studio 2013 para o melhor proveito das novidades.
Em breve publicarei um artigo sobre as novidades do ASP.NET WebAPI 2.1.
Referências
Até a próxima 😉
Parabéns Eduardo! Gostei destas novas Features! ASP.NET MVC tem se mostrado cada vez mais um dos melhores Frameworks da WEB.
Fala Yan!
Obrigado! O ASP.NET tem sim evoluido muito, para web não tem melhor na minha opinião 🙂
Abraços!
Excelente post! Estou trabalhando em um para Web API 2.1! Abraço!
Obrigado Filipe!
Tem muita coisa legal para falar sobre essas novidades 🙂
Abraços.
AO criar o projeto no Asp.Net MVC5, da esse erro, mas com a URL correta (http://localhost:5934/Home), FUNCIONA….
Me ajuda.
Erro de Servidor no Aplicativo ‘/’.
Não é possível encontrar o recurso.
Descrição: HTTP 404. O recurso que você está procurando (ou uma de suas dependências) não pôde ser removido, seu nome foi alterado ou está temporariamente indisponível. Examine o URL e certifique-se de que está digitado corretamente.
URL solicitada: /Views/Home/Index.cshtml
Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.0.30319.34212
Você provavelmente não tem o controller HOME,
ou qualquer outro controller que faça referencia para a pagina inicial
Ajudou bastante.
Valeu Eduardo