Esse é o quarto post sobre ASP.Net MVC 2 Preview 1. Os outros dois são:
O time do ASP.Net MVC colocou mais algumas coisinhas. Os 3 tópicos acima são as grandes novidades. Há mais algumas menores.
Eles criaram um atributo chamado DefaultValueAttribute, que permite que você especifique valores default em uma ação. Assim, um método assim:
public ActionResult Index([DefaultValue(i)] id) { //implementação }
Você pode chamar ele diretamente sem o valor, por exemplo:
- /Posts
- /Posts/Index
- /Posts/Index/1
Hoje isso já é possível porque a rota imlementa um valor padrão para o id:
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults
Mas agora, fica mais fácil definir isso por método. E não precisamos mais de ficar criando rotas específicas, só por que o parâmetro de um método não é chamado “id”.
E no C#4 (e imagino que no VB 10, e talvez no 9) você pode usar parâmetros opcionais. Esse método funciona da mesma forma que o anterior:
public ActionResult Index(int id = 1) { //implementação }
Outra coisa que vai deixar o código mais expressivo é a inclusão do novo atributo HttpPost. Antes você fazia assim:
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(Post post)
Você ainda pode fazer assim, mas agora pode fazer também assim:
[HttpPost] public ActionResult Create(Post post)
Ficou mais bonito.
Agora também é possível fazer bind de dados binários, com um array de bytes (byte[]) ou com System.Data.Linq.Binary. O MVC coloca o valor binário como string em base 64.
E basicamente é isso aí. Tem mais coisa vindo por aí. Tem um assembly de MVCFutures no Codeplex, se você quiser saber o que pode entrar na versão 2 do MVC (ou não).
Quando for sair o Preview 2 eu volto a falar do assunto. Em breve.
Giovanni Bassi
Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.