710 likes | 823 Views
Implementação MVC. Pedro Antonino. Agenda. MVC Desenvolvendo com Play. MVC. Separação das preocupações : Interação do usuário Apresentação Lógica de negocios. Controller. Model. View. MVC Passivo. Controllador. Atualiza view. Http response. MVC Passivo. Browser.
E N D
Implementação MVC Pedro Antonino
Agenda • MVC • Desenvolvendo com Play
MVC • Separação das preocupações: • Interação do usuário • Apresentação • Lógica de negocios Controller Model View
MVC Passivo Controllador Atualiza view Http response
MVC Passivo Browser HttpRequest Servidor HttpResponse View
MVC Passivo Browser HttpRequest Servidor HttpResponse View
Framework • Conjunto de design patterns implementado e configurávelpara um dado projeto
Play Framework • Framework Java • Alta produtividadepara Web • Multi-plataforma: Windows, MacOS, Linux • MVC • 2.0.4
Porque Play • Java EE • Muitaconfiguração, Muito XML • Vários frameworks • JSF: simplifica Java EE • Struts • Simplifica a criação dos controllers • Integrar com outros Frameworks • Play • Integração de alguns frameworks + Parte original de Play • Poucaconfiguração, XML free
Desenvolvendo com Play • Uma aplicação web simples usando Play • Estruturainicial do projeto • Framework está OK • Mapeamentos: requisições-> açõesdos controllers • Criar stubs das açõesnos controllers • Criar a lógica de negócio no pacote Model • Criar as view paraapresentação dos dados • Implementaros stubs dos controllers
Exemplo: RealizarDOC • A implementação de uma parte do caso de uso • Porenquanto, temosumatransferência de umacontaparaoutra
Criação da estruturainicial • Através do console Play: • Usando o commando new, criar a estruturainicial da aplicação
Desenvolvendo com Play • Uma aplicação web simples usando Play • Estruturainicial do projeto • Aplicaçãoestá OK • Mapeamentos: requisições-> açõesdos controllers • Criar stubs das açõesnos controllers • Criar a lógica de negócio no pacote Model • Criar as view paraapresentação dos dados • Implementaros stubs dos controllers
Servidor • Executado com o comando run do console Play • Mudanças no códigosãorefletidasautomaticamente no servidorde desenvolvimento
Desenvolvendo com Play • Uma aplicação web simples usando Play • Estruturainicial do projeto • Aplicaçãoestá OK • Mapeamentos: requisições-> açõesdos controllers • Criar stubs das açõesnos controllers • Criar a lógica de negócio no pacote Model • Criar as view paraapresentação dos dados • Implementaros stubs dos controllers
Funcionamentoda aplicação HttpRequest Cliente (WebBrowser) Servidor HttpResponse
Roteamento • Mapeamento: • Requisição Http -> Ação de algum controller • Se a complexidadeaumentapodemosterumahierarquia de arquivos de roteamento
routes Ações Método URLs
Controllers • Classe no pacote controllers • Herdam da classe Controller • Seusmétodossãochamados de ações • Devemretornar um Result(HTTP response)
Controllers • Verificarmapeamento: • Http request -> ação • Stubs
Desenvolvendo com Play • Uma aplicação web simples usando Play • Estruturainicial do projeto • Aplicaçãoestá OK • Mapeamentos: requisições-> açõesdos controllers • Criar a lógica de negócio no pacote Model • Criar as view paraapresentação dos dados • Implementaros stubs dos controllers
Model • Construção da suas classes de negócio, para a funcionalidadedesejada • Anotação das classes queserãopersistidas
Model • Classes de entidades • No pacote models • Classes querepresentamentidadespersistidas: • Anotadas • Herdam da classe Model, do Play
Model • Repositório: • JPA + Play • Herança de model: • save(), delete(), etc. • Finder • Objetousadoparafazerconsultas a base.
Models • Aplicaçõescomplexas: • Estruturacomplexa • Podeserorganizadoemcamadas • Aplicações simples: • apenas classes de persistência Model: • Classe de dados + Repositório
Controlador != Controller • Preocupaçõesdiferentes: • Controlador: • Implementar a lógica de negociousandocadastros • Implementa um seviço • Controller: • Tratarrequisições do usuário • Delegarao model a execução da lógica de negócio • Atualizar a view(Passive View)
Configurar o BD • arquivo de configuração: • Application.conf • H2: • Bancoemmemória • Padrão
Plugin de evolução do BD • BD desatualizado: • Servidor de desenvolvimento-> aplicar script SQL
Gerenciar o BD • Genciar a base H2 atraves do browser • Comando h2-browser
Desenvolvendo com Play • Uma aplicação web simples usando Play • Estruturainicial do projeto • Aplicaçãoestá OK • Mapeamentos: requisições-> açõesdos controllers • Criar a lógica de negócio no pacote Model • Criar as view paraapresentação dos dados • Implementaros stubs dos controllers