23 Abr 2015 às 14:19
0
1242
Programação
A estrutura ASP.NET MVC oferece uma alternativa ao padrão Web Forms do ASP.NET
O padrão arquitetônico MVC (Model-View-Controller) separa um aplicativo em três componentes principais: modelo, exibição e controlador. A estrutura ASP.NET MVC oferece uma alternativa ao padrão Web Forms do ASP.NET para criar aplicativos Web. A estrutura ASP.NET MVC é uma estrutura de apresentação leve e altamente testável que (à semelhança dos aplicativos baseados em Web Forms) é integrada aos recursos ASP.NET existentes, como páginas mestras e autenticação baseada em associação. A estrutura MVC é definida no assembly System.Web.Mvc.
Padrão de design MVC
O MVC é um padrão de design padrão que muitos desenvolvedores conhecem. Alguns tipos de aplicativos Web irão se beneficiar da estrutura MVC. Outros vão continuar usando o padrão de aplicativo ASP.NET tradicional que é baseado em Web Forms e postbacks. Outros tipos de aplicativos Web irão combinar as duas abordagens; uma abordagem não exclui a outra.
A História
O padrão MVC foi descrito pela primeira vez em 1979 por Trygve Reenskaug, que trabalhava no Smalltalk, na Xerox PARC.
A estrutura MVC inclui os seguintes componentes:
-
Modelos. Os objetos de modelo são as partes do aplicativo que implementam a lógica para o domínio de dados do aplicativo. Muitas vezes, os objetos de modelo recuperam e armazenam o estado do modelo em um banco de dados. Por exemplo, um objeto Product pode recuperar informações de um banco de dados, operar nele e, em seguida, gravar informações atualizadas de volta em uma tabela de Produtos em um banco de dados do SQL Server.
Em aplicativos pequenos, o modelo, muitas vezes, é uma separação conceitual em vez de física. Por exemplo, se o aplicativo apenas ler um conjunto de dados e enviá-lo para exibição, o aplicativo não terá uma camada de modelo físico nem classes associadas. Nesse caso, o conjunto de dados assume a função de um objeto de modelo.
-
Exibições. As exibições são os componentes que exibem a interface do usuário (IU) do aplicativo. Normalmente, esta IU é criada a partir dos dados do modelo. Product object. Um exemplo seria uma exibição de edição de uma tabela de Produtos que mostra caixas de texto, listas suspensas e caixas de seleção com base no estado atual de um objeto Product.
-
Controladores. Os controladores são os componentes que lidam com a interação do usuário, trabalham com o modelo e, finalmente, selecionam uma exibição de renderização que mostra essa IU. Em um aplicativo MVC, a exibição só mostra informações; o controlador manipula e responde à entrada e à interação do usuário. Por exemplo, o controlador manipula valores da cadeia de consulta e passa esses valores ao modelo, que por sua vez pode usar estes valores para consultar o banco de dados.
O padrão MVC ajuda a criar aplicativos que separam os diferentes aspectos do aplicativo (lógica de entrada, lógica de negócio e lógica da IU), enquanto fornece um acoplamento flexível entre esses elementos. O padrão especifica onde cada tipo de lógica deve ficar localizado no aplicativo. A lógica da IU fica na exibição. A lógica de entrada fica no controlador. A lógica de negócios fica no modelo. Essa separação ajuda a administrar a complexidade quando você cria um aplicativo, porque ela permite que você se concentre em um aspecto da implementação por vez. Por exemplo, você pode se concentrar na exibição sem depender da lógica de negócios.
O acoplamento flexível entre os três componentes principais de um aplicativo MVC também promove o desenvolvimento paralelo. Por exemplo, um desenvolvedor pode trabalhar na exibição, um segundo desenvolvedor pode trabalhar na lógica do controlador e um terceiro desenvolvedor pode se concentrar na lógica de negócios do modelo.
Suporte para desenvolvimento controlado por testes
Além de administrar a complexidade, o padrão MVC torna o teste de aplicativos mais fácil do que o teste de um aplicativo Web ASP.NET baseado em Web Forms. Por exemplo, num aplicativo Web ASP.NET baseado em Web Forms, uma única classe é usada para exibir a saída e para responder à entrada do usuário. Escrever testes automatizados para aplicativos ASP.NET baseados em Web Forms pode ser complexo, pois para testar uma página individual, você deve criar uma instância da classe da página, de todos os seus controles filhos e das classes dependentes adicionais no aplicativo. Uma vez que são criadas instâncias de tantas classes para executar a página, pode ser complicado escrever testes que se foquem exclusivamente em partes individuais do aplicativo. Os testes para aplicativos ASP.NET baseados em Web Forms podem, por isto, ser mais difíceis de implementar do que testes em um aplicativo MVC. Além disso, os testes em aplicativos ASP.NET baseados em Web Forms exigem um servidor Web. A estrutura MVC separa os componentes e usa interfaces intensamente, o que torna possível testar componentes individuais isoladamente do resto da estrutura.
Quando criar um aplicativo MVC
Você deve considerar cuidadosamente se deve implementar um aplicativo Web usando a estrutura ASP.NET MVC ou o modelo de Web Forms do ASP.NET. A estrutura MVC não substitui o modelo de Web Forms; você pode usar ambas as estruturas para aplicativos Web. (Se você tem aplicativos existentes baseados em Web Forms, eles continuarão a funcionar exatamente como funcionavam antes).
Antes de você decidir usar a estrutura MVC ou o modelo de Web Forms para um determinado site, pondere as vantagens de cada abordagem.
Vantagens de um aplicativo Web baseado em MVC
A estrutura ASP.NET MVC oferece as seguintes vantagens:
-
Ela torna mais fácil gerenciar a complexidade ao dividir o aplicativo em modelo, exibição e controlador.
-
Ela não utiliza o estado de exibição nem formulários baseados no servidor. Isto torna a estrutura MVC ideal para desenvolvedores que desejam controle completo sobre o comportamento do aplicativo.
-
Ela usa um padrão Front Controller que processa as solicitações do aplicativo Web através de um único controlador. Isto permite desenvolver um aplicativo que suporta uma poderosa infraestrutura de roteamento. Front Controller.">Para obter mais informações, consulte Front Controller.
-
Ela fornece um melhor suporte para desenvolvimento controlado por testes (TDD – test-driven development).
-
Ela funciona bem com aplicativos Web que são suportados por grandes equipes de desenvolvedores e com Web designers que precisem de um grande grau de controle sobre o comportamento do aplicativo.
Vantagens de um aplicativo Web baseado em Web Forms
A estrutura baseada em Web Forms oferece as seguintes vantagens:
-
Ela suporta um modelo de evento que preserva o estado sobre HTTP, o que beneficia o desenvolvimento de aplicativos Web de linha de negócios. O aplicativo baseado em Web Forms fornece dezenas de eventos que são suportados em centenas de controles de servidor.
-
Ela usa um padrão Page Controller que adiciona funcionalidade em páginas individuais. Page Controller.">Para obter mais informações, consulte Page Controller.
-
Ela utiliza o estado de exibição em formulários baseados no servidor, o que pode facilitar o gerenciamento de informações de estado.
-
Ela funciona bem com pequenas equipes de desenvolvedores e Web designers que desejem tirar proveito do grande número de componentes disponíveis para um rápido desenvolvimento do aplicativo.
-
Em geral, é menos complexo para o desenvolvimento de aplicativos, pois os componentes (a classe Page, controles e assim por diante) estão extremamente integrados e, normalmente, exigem menos código do que o modelo MVC.
Recursos da estrutura ASP.NET MVC
A estrutura ASP.NET MVC fornece os seguintes recursos:
-
Separação de tarefas do aplicativo (lógica de entrada, lógica de negócio e lógica da IU), possibilidade de testes e desenvolvimento controlado por testes (TDD). Todos os contratos núcleo na estrutura MVC são baseados na interface e podem ser testados usando objetos fictícios, que são objetos simulados que imitam o comportamento dos objetos reais no aplicativo. Você pode testar a unidade do aplicativo sem ter que executar os controladores em um processo ASP.NET, o que acelera e flexibiliza o teste da unidade. Você pode usar qualquer estrutura de teste da unidade que seja compatível com o .NET Framework.
-
Uma estrutura extensível e conectável. Os componentes da estrutura ASP.NET MVC são desenvolvidos para serem facilmente substituídos ou personalizados. É possível conectar o seu próprio mecanismo de exibição, política de roteamento de URL, serialização de parâmetro ação-método e outros componentes. A estrutura ASP.NET MVC também suporta o uso dos modelos de contêiner de DI (Dependency Injection – Injeção de Dependência) e IOC (Inversion of Control – Inversão de Controle). A DI permite injetar objetos em uma classe, em vez de depender da classe para criar o objeto. A IOC especifica que se um objeto requer outro objeto, os primeiros objetos devem obter o segundo objeto de uma fonte exterior como um arquivo de configuração. Isto facilita os testes.
-
Suporte abrangente para roteamento ASP.NET, que é um poderoso componente de mapeamento de URL que permite desenvolver aplicativos que têm URLs abrangentes e pesquisáveis. As URLs não precisam incluir extensões de nome de arquivo e são desenvolvidas para suportar padrões de denominação de URLs que funcionam bem para SEO (Search Engine Optimization – Otimização do Mecanismo de Pesquisa) e endereçamento REST (Representational State Transfer – Transferência de Estado Representacional).
-
Suporte ao uso de marcação em arquivos de marcação de páginas ASP.NET (arquivos .aspx), de controle de usuário (arquivos .ascx) e de página mestra (arquivos .master) existentes como modelos de exibição.<%= %>), Você pode usar recursos ASP.NET existentes com a estrutura ASP.NET MVC, como páginas mestras aninhadas, expressões em linha (<%= %>), controles de servidor declarativos, modelos, vinculação de dados, localização e assim por diante.
-
Suporte para recursos ASP.NET existentes. A estrutura ASP.NET MVC permite a utilização de recursos como autenticação de formulários e autenticação do Windows, autorização de URLs, associação e funções, caching de saída e dados, gerenciamento de estado de sessão e perfil, monitoramento de integridade, sistema de configuração e arquitetura de provedor.
Fonte.: MSDN Developer
Compartilhe