Entendendo o processo de execução de uma aplicação MVC



Requisições para uma aplicação ASP.NET MVC primeiramente passam por um objeto UrlRoutingModule,que é um módulo HTTP.Esse módulo analisa a requisição e faz uma seleção de route.O objeto UrlRoutingModule seleciona o primeiro objeto route compativell a requisição atual.(Um objeto route é uma classe que implementa RouteBase,e é geralmente uma instância da classe Route).Se não forem encontradas routes,o objeto UrlRoutingModule não faz nada e deixa a requisição cair para o processamento de requisição normal do IIS ou  ASP.NET.

A partir do objeto Route selecionado,o objeto UrlRoutingModule obtém o objeto IRouteHandler que é associado com a Route do objeto.Geralmente,numa aplicação MVC,esse será uma instancia do MvcRouteHandler.A instancia IRouteHandler cria um objeto IHttpHandler e passa este para o objeto IHttpContext.Por padrão,a instancia IHttpHandler para o MVC é o objeto MvcHandler.O objeto MvcHandler então seleciona o controller que irá por último controlar a requisição.

Nota:Quando uma aplicação MVC roda no IIS7.0,nenhuma extensão de nome de arquivo é requerida pra projetos MVC.Entretanto,no IIS6.0,o handler requer que você mapeie a extensão de nome de arquivo .mvc para o ASP.NET ISAPI DLL.

O módulo e o handler são pontos de entrada para o framework MVC.Eles realizam as seguintes ações:

  • Selecionam o controller apropriado na aplicação MVC.
  • Obtem uma instancia especifica do controller.
  • Chamam o método Execute do controller.

A tabela a seguir lista os estágios de execução de um projeto MVC:

Estágio Detalhes
Recebe a primeira requisição para a aplicação No arquivo global.asax,objetos Route são adicionados para o
objeto RouteTable.
Realiza o roteamento O módulo UrlRoutingModule usa o primeiro objeto Route
compativel,na coleção RouteTable pra criar o objeto RouteData,
que é então usado pra cria um objeto
RequestContext(IHttpModule).
Cria um request Handler MVC O objeto MvcHandler usa a instancia do RequestContext
para identificar o objeto IControllerFactory(geralmente
uma instancia da classe DefaultControllerFactory)pra criar
a instancia do controller.
Executa o controller A instancia do MvcHandler chama o método Execute do Controller
Invoca a ação A maioria dos controllers herdam da classe base Controller.
Para esses controles,o objeto ControllerActionInvoker
que é associado com o controller determina qual método
de ação da classe controller chamar,e depois chama o método.
Executa o resultado Um método de ação comum pode receber entradas do usuário,
preparar a resposta de dados apropriada e depois executar o
resultado retornando um tipo de resultado.Os tipos de resultado
que podem ser executados,são os seguintes:
ViewResult
(que renderiza uma view e é o mais frequentte
tipo de resultado utilizado);RedirectToRouteresult,
RedirectResult,ContentResult,JsonResult, e  EmptyResult.
Anúncios

Um comentário sobre “Entendendo o processo de execução de uma aplicação MVC

Deixe um comentário

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

Logotipo 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 )

Foto do Google+

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

Conectando a %s