O documento discute a arquitetura MVC e sua implementação no ASP.NET MVC. Apresenta os principais componentes do ASP.NET MVC - Models, Views e Controllers - e discute suas vantagens e desvantagens em relação ao modelo WebForms do ASP.NET. Por fim, exemplifica o desenvolvimento de uma aplicação que utiliza ASP.NET MVC com NHibernate e a biblioteca JavaScript EXT JS.
3. Introdução
A arquitetura/padrão MVC - (Modelo Visualização Controle) fornece uma
maneira de dividir a funcionalidade envolvida na manutenção e
apresentação dos dados de uma aplicação.
Na arquitetura MVC o modelo representa os dados da aplicação e as
regras do negócio que governam o acesso e a modificação dos dados.
Um controlador define o comportamento da aplicação , é ele que
interpreta as ações do usuário e as mapeia para chamadas do modelo. Em
um cliente de aplicações Web essas ações do usuário poderiam ser cliques
de botões ou seleções de menus. Há normalmente um controlador para
cada conjunto de funcionalidades relacionadas.
A arquitetura de 3 camadas que esta representada no próximo slide é uma
implementação do modelo MVC . O modelo MVC esta preocupado em
separar a informação de sua apresentação.
4. Modelo MVC
w eb Architecture - FEX
Visualização Controle Modelo
Cliente Web
HTML
Ações Negócio
Cliente Web ASP Controlador
Persistência
Outros Clientes
5. O que é exatamente?
O ASP .NET MVC é uma implementação da arquitetura MVC para o ASP .NET em
um framework com o objetivo de criar aplicações WEB no padrão MVC e fornecer
uma alternativa ao modelo WebForm do ASP .NET disponível até então. O
framework ASP .NET MVC fornece um ambiente robusto e leve que esta integrado
aos recursos do ASP .NET como master pages e membership sendo definido no
namespace System.Web.Mvc e apresenta os seguintes componentes:
Models - Os objetos Model (modelo) são as partes da aplicação que implementam
a lógica o domínio de dados da aplicação e retornam e armazenam o estado do
modelo em um banco de dados.
Views - As views (visões) são os componentes que exibem a interface do usuário
e em geral é criada a partir do modelo de dados.
Controllers - Controllers (controladores) são os componentes que tratam com a
interação do usuário, trabalham com o modelo e selecionam uma visão para ser
exibida; Em uma aplicação MVC uma view somente exibe informação ,
o controller trata e retorna a entrada do usuário e a interação.
6. Quais as vantagens e desvantagens envolvidas no
ASP .NET MVC ?
Vantagens :
Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil
manter , testar e atualizar sistemas múltiplos;
É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles;
Torna a aplicação escalável;
É possível ter desenvolvimento em paralelo para o modelo , visualizador e controle pois
são independentes;
É mais fácil gerenciar a complexidade da aplicação dividindo-a em modelo, visualizador e
controlador (MVC);
Desvantagens:
Requer uma quantidade maior de tempo para analisar e modelar o sistema;
Requer pessoal com conhecimento especializado;
Não é aconselhável para pequenas aplicações;
7. Vantagens do modelo WebForms:
Suporta um modelo de eventos que preserva o estado sobre HTTP;
Usa o padrão Page Controller que adiciona funcionalidade a páginas
individuais;
É muito fácil para trabalhar com equipes pequenas disponibilizando um
grande número de componentes que agiliza o desenvolvimento;
Possui uma complexidade menor;
Fornece meios de gerenciar o estado da informação de uma forma bem
simples;
9. O que é EXT js
Ext é uma biblioteca publicada sob licença GPL utilizada para a construção de aplicativos web interativos
utilizando AJAX, DHTML e DOM.
O EXT JS foi originalmente criado como uma extensão do Framework de JavaScript YUI (Yahoo! User Interface) e nessa
época seu nome ainda era yui-ext.
Como uma extensão, ele funcionava junto ao YUI, que era a base e obviamente o yui-ext não funcionava sem o YUI.
Logo vieram os adapters (adaptadores), que funcionavam de ponte entre o yui-ext e outros Frameworks de JavaScript,
agora o yui-ext já não estava restrito a ser uma extensão apenas do YUI, funcionava também com os
Frameworks Prototype e jQuery.
O yui-ext ganhou rápido reconhecimento entre os desenvolvedores como uma extensão rica em funcionalidades e
componentes de interface que funcionava para acrescer de valor os mais conhecidos Frameworks de Javascript (YUI,
Prototype e jQuery).
Houveram várias versões 0.x do yui-ext, antes de ser lançada a versão 1.0 final onde seu nome foi alterado para EXT JS,
pois agora ele já não era apenas uma extensão para o YUI.
Depois da versão 1.0, houveram poucas atualização, a 1.0.1 e 1.0.1a. Nota-se com a necessidade de poucas
atualizações, o bom trabalho feito no código do EXTjs.
10. Conceitos básicos de utilização
Deve entender a estrutura da user interface para trabalhar com os dados de forma serializada.
O formato comumente utilizado para utilização de dados de retorno e envio aos controladores
é o JSON. Desenvolvendo aplicações Asp.Net MVC com projetos nativos do framework seria
utlizada a biblioteca HTML.Helpers com controles muito parecidos aos do webform, já os
componentes do EXT js possuem um bloco de funções e propriedades javascript.
Nos próximos slides teremos exemplos de uma aplicação Asp.Net MCV utilizando Nhibernate
e EXT js.
11. Exemplo de aplicação
Exemplo de estrutura, com
camada de negócios (Business),
Camada de persistencia
(Factory) e uma camada de
interface (Web).