ASP.NET MVC – Preview 2


Há algum tempo eu falei sobre algumas das funcionalidades disponibilizadas pelo ASP.NET MVC. Recentemente a Microsoft disponibilizou a versão 2, com algumas mudanças e melhorias. Abaixo estão listadas algumas delas:

  • Todos os tipos que compõem o Framework estavam dentro do assembly System.Web.Extensions.dll. Nesta versão a Microsoft desacoplou isso, “quebrando” em tres assemblies distintos (todos podendo ser rodados em partial trust):
    • System.Web.Mvc.dll: Este assembly é o core dos aplicativos MVC.
    • System.Web.Routing.dll: O roteamento consiste em ter URLs amigáveis ao invés de URLs que apontam para um recurso físico, como é o caso de uma página ASPX. Como essa característia não necessariamente é de aplicativos baseados em MVC, a Microsoft decidiu isolar isso em um assembly, permitindo que façamos o uso deste em aplicativos ASP.NET WebForms. O Phil Haack e o Luis Abreu escreveram sobre isso aqui e aqui.
    • System.Web.Abstractions.dll: Este assembly acomoda os tipos (para ambientes de testes) que serão utilizados para efetuar mocks dos objetos concretos.
  • Não há mais uma template de projeto para testes de aplicações baseadas em MVC. Agora, quando criamos um projeto MVC, uma pop-up é exibida, perguntando se voce deseja ou não criar um projeto de testes, dando suporte a qualquer runtime que queira utilizar (NUnit, xUnit, MSTest, etc.).
  • As rotas eram antes definidas como [ ]. Agora fazemos isso através de { }.
    • Ainda sobre rotas: na declaração das mesmas, é possível agora definirmos um “catchall” e, com isso, o runtime será capaz de pegar todos os parametros que são passados na URL. Este vídeo mostra a implementação desta técnica.
  • Os métodos que representam ações não precisam mais ser decorados com o atributo ControllerActionAttribute. Qualquer método público de um controller pode agora ser utilizado pelo runtime. Agora, o que voce precisa fazer é barrar o acesso, ou seja, se voce tem um método público mas não quer que este esteja disponível para que a aplicação possa consumí-lo, então voce deve decorar este método com o atributo NoActionAttribute.
  • Há um novo atributo chamado ActionFilterAttribute que voce poderá utilizar para interceptar a execução de uma determinada ação. Esse atributo, trata-se de uma classe base que deve ser herdada. Essa classe base fornece dois principais métodos: OnActionExecuting e OnActionExecuted que, de acordo com a nossa necessidade, sobrescrevemos cada um destes métodos e efetuamos a customização. Essa nova classe dará origem a um novo atributo que, por sua vez, deverá ser decorado nos métodos dos controllers que deverão invocá-los. Maiores informações e como proceder para criá-lo, consulte este vídeo.
Publicidade

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s