ASP.NET MVC 5.1 – O que mudou?

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.

ASP.NET MVC 5.1

Requerimentos de Software

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

  1. 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.
  2.  

  3. 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 😉

Curso de ASP.NET MVC 5 – Turma de Janeiro

Em Janeiro foi realizado mais um curso In Company de ASP.NET MVC 5.

Entre os dias 18 e 20 de Janeiro estive em Catalão / Goiás onde ministrei mais um curso de ASP.NET MVC 5 no formato In Company para uma turma de 16 alunos de uma empresa local.

Através de minha empresa Eduardo Pires – Treinamentos e Consultoria eu realizo treinamentos e presto consultoria em diversos assuntos e tecnologias relacionadas ao desenvolvimento de software.

O curso foi ministrado com uma carga horária de 24 horas e aplicado em 3 dias.
No último dia o formato do curso foi focado em cenários atuais da empresa onde diversas questões e dúvidas de arquitetura e processos de desenvolvimento foram esclarecidas.

Ao final do curso todos os alunos receberam certificados impressos / digitais e todo material utilizado no curso (demos desenvolvidas, PPT, fontes de referências, livros e um material de apoio sobre arquitetura).

O curso de ASP.NET MVC 5 aplicado no formato In Company não possui um modelo fechado, ou seja, ele é totalmente flexível para atender os objetivos dos alunos, inclusive a carga horária é customizável sendo de no mínimo 16 horas.

Se você possui interesse em realizar este curso em sua empresa entre em contato e juntos chegaremos em um modelo ideal de curso e carga horária necessária.

Caso sua equipe já domine ASP.NET MVC e deseja conhecer as atualizações das versões 4.0, 5.0 e a recém lançada 5.1 um Workshop técnico de 6 horas é uma solução que vai atender perfeitamente e capacitar a equipe a trabalhar com a novas versões que proporcionam muito mais produtividade entre outras grandes vantagens.

Até a próxima!

Agora sou um Microsoft MVP

É com uma imensa satisfação que informo a todos que fui nomeado Microsoft MVP Most Valuable Professional na competência ASP.Net / IIS.

Microsoft MVP

O título de Microsoft MVP é um reconhecimento dado pela Microsoft aos profissionais que possuem profundos conhecimentos em algum produto / tecnologia Microsoft.
Existem diversas competências que são elegíveis, a minha especialidade é ASP.Net / IIS.

Atualmente existem cerca de 4.000 MVPs em todo mundo e cerca de 100 MVPs no Brasil.

Eu quis escrever este post para agradecer as pessoas que foram importantes nessa conquista e contar um pouco sobre a trajetória para quem está interessado em seguir este caminho.

Eu conheci o título de MVP quando trabalhei em uma consultoria em 2004, sempre valorizei os profissionais que possuem este reconhecimento, pois sempre foram pessoas de destaque e admiração. Em meados de 2011 eu mudei muitas coisas em minha vida e decidi dividir o conhecimento que acumulei até agora nesses 14 anos de trabalho em TI. Minha primeira ação foi criar este blog e escrever meus primeiros artigos.

Junto ao blog iniciei diversas ações paralelas, atuando nos fóruns da Microsoft onde respondo muitas dúvidas, divulgando informações importantes sobre tecnologia nas maiores redes sociais, gravando vídeo-aulas e claro realizando palestras e eventos.

Eu penso que o título de MVP é dado a profissionais com grande destaque técnico em uma determinada categoria, porém na minha opinião o mais importante é a paixão em dividir o conhecimento com todos, isso não é trabalho fácil, é necessário doar muito tempo e energia, fazer escolhas entre compromissos e vida pessoal, etc…

Durante o período de 2011 até agora eu me dediquei durante muitas horas (muitas mesmo) para produzir e gerar conteúdos técnicos, viajei diversas vezes para palestrar fora da cidade, tudo isso com dinheiro do próprio bolso, deixei de ficar muitos finais de semana inteiros com filho e namorada para poder estar presente em eventos importantes, mesmo que não fosse para palestrar. Tudo isso tem um custo pessoal muito alto mas o retorno deste trabalho existe na satisfação em ajudar as pessoas, ser reconhecido pelo conhecimento técnico e claro receber um prêmio destes que é o maior reconhecimento da Microsoft.

Isso tudo ajudou em muito na minha carreira também, muitas coisas boas surgiram através deste trabalho e meu conhecimento técnico cresceu numa velocidade muito maior.

Gostaria de agradecer em especial algumas pessoas que me ajudaram muito neste caminho:

Primeiramente ao mestre Ramon Durães, que deu minha primeira oportunidade de palestrar em um evento, eu nunca havia me apresentado antes e mesmo assim pude palestrar no VS Summit 2012, após isso muitas outras oportunidades surgiram. E também me indicou a concorrer ao título de Microsoft MVP. Muito obrigado mestre!

Agradeço ao meu amigo Fernando Henrique, por me motivar a tentar conquistar o título, me ajudou muito me indicando e tirando diversas dúvidas, principalmente sobre o processo de nomeação, sem esta motivação eu não teria chegado tão cedo, muito obrigado!

Agradeço ao meu amigo Rogério Rodrigues por ter me convidado para palestrar em diversos eventos como os do DevBrasil e em universidades, isso me ajudou bastante, muito obrigado!

Agradeço ao meu amigo Waldyr Felix por também ter me indicado a concorrer ao prêmio Microsoft MVP.

Agradeço a Fernanda Saraiva, líder dos MVPs do Brasil, por ter me aprovado no processo seletivo, me indicar a para receber o título e ter acreditado no meu trabalho. Muito obrigado.

Agradeço muito minha família e filho, pois sempre acreditaram no meu trabalho e sempre me apoiaram em tudo que fiz.

E agradeço especialmente minha namorada Juliana, por ter me acompanhado desde o primeiro passo, revisou PPTs e artigos comigo, me acompanhou em palestras, teve muita paciência comigo e me emprestou durante muitos finais de semana para eu poder realizar este trabalho.

Até eu descobrir que havia sido nomeado Microsoft MVP eu acreditava ser algo inatingível, mas é, basta fazer um trabalho bem feito, se relacionar bem com a comunidade e uma hora tudo acontece 🙂

Este reconhecimento é um grande motivador para que eu faça ainda mais, pretendo entregar muito mais em 2014 e renovar durante muitos anos o título de Microsoft MVP.

Obrigado a todos que participaram aqui no blog, nas redes sociais ou pessoalmente, este reconhecimento é um resultado que dependeu de cada um de vocês.

E este ano irei para Seattle com todos os MVPs do mundo, finalmente vou conhecer a sede da Microsoft o/

Conheça um pouco mais sobre o prêmio Microsoft MVP

Abraços!