ASP.NET MVC 2 Preview 1 Released

07/31/2009 07:29:00 By Felipe Pessoto

Sim, 4 meses e meio depois da versão 1.0 ser liberada, já temos o Preview 1 do ASP.NET MVC 2.

O RoadMap também foi atualizado. Entre as novidades estão Templated Helpers, Areas, novo Action Filter HttpPostAttribute, Model Binder agora suporta os atributos do namespace DataAnnotations, além de correções de bugs e melhorias gerais.

O ASP.NET MVC 2 pode rodar junto com a versão 1.0 então instale sem preocupação. O Visual Studio 2010 já virá com a versão 2, o que quer dizer que logo teremos a versão final do ASP.NET MVC 2.

Unity 2.0 atualizado

07/16/2009 19:40:00 By Felipe Pessoto

A primeira atualização do Unity como parte da Enterprise Library 5.0 está disponível no CodePlex

As principais novidades:

A dependencia da DLL ObjectBuilder2 foi removida. Agora os projetos que dependem do Unity não precisam mais da ObjectBuilder, a DLL do Unity trabalhará sozinha.

Várias mudanças  nas exceções geradas, agora sempre é disparado um ResolutionFailedException e a exceção original fica no InnerException.

 Os projetos em Silverlight foram atualizados pra versão 3

Html Helpers fortemente tipados com T4 Templates

07/01/2009 08:07:00 By Felipe Pessoto

Já há algum tempo o David Ebbo vem criando algumas soluções para os Html Helpers que hoje são baseados em strings.

Para quem não sabe do que estou falando, vai um exemplo: <%=Html.ActionLink("TextoLink", "Acao", "Controller", new{param1 = "abc", param2 = "def" }, null) %>

Assim quando você muda o nome do controller ou da ação, o seu ActionLink para de funcionar, e não é gerado erro em tempo de compilação, já que é tudo string, você só percebe quando seu site gera um erro.

Até hoje ja apareceram várias soluções, as que pareciam mais simples de usar, com Expression Trees, eram também muito lentas, gerando um grande overhead. Exemplo de utilização: <%= Html.ActionLink<NomeController>(x => x.NomeMetodo(param1, param2), "TextoLink") %>

A solução do David é um template T4, que gera algumas classes e Extension Methods para os Html Helpers, a chamada fica assim:

<%=Html.ActionLink("logout", MVC.Controller.Acao(Param1)) %>

Tudo fortemente tipado, limpo e sem impacto na performance. Já estou usando no meu projeto e recomendo. Para usar basta colar o arquivo tt na raiz do projeto, e cada vez que atualizar seu projeto, basta re-salvar o arquivo tt pra forçar o Visual Studio a gerar o .cs novamente

 

Update:  O Template foi incluído na página de download do MvcContrib no Codeplex