ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.

Slides:



Advertisements
Apresentações semelhantes
JBanana.
Advertisements

Framework para desenvolvimento web
Projeto 1.
Objetos Distribuídos Padrão CORBA
MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP
WebWork e JSP Keven andrade
Arquitetura Usual Definição: Arquitetura que faz uso de apenas duas camadas que, formalizadas, podem ser citadas: View (Visualização): camada que contém.
Model-View-Controller (MVC) em Aplicações Web Eduardo Martins Guerra Desenvolvimento de Soluções WEB.
Sistemas Distribuídos
CURSO DE ESPECIALIZAÇÃO PARTE 4: PADRÕES FACTORY E DAO
Aplicativos Web Com Orientação a Objetos
Padrões Arquiteturais Layers, Façade, Repositório, Eventos, MVC
Gerenciamento de Configuração
Singleton e Adapter Professor: Nazareno Andrade
Desenvolvimento de Sistemas Orientados a Aspectos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Rodrigo Cristiano Silva
Integração com Banco de Dados
Design Patterns / Acesso ao banco de dados (java.sql)
JSP / Servlets Avançado
Conceitos de J2EE para a WEB
Projeto de Banco de Dados
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
A abordagem de banco de dados para gerenciamento de dados
Arquitetura das JSP - Aula 2
Implementação MVC Pedro Antonino.
Padrão- MVC Model, View, Controller
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Persistência e mapeamento objeto relacional
Tópicos Especiais J2EE Prof. Cristina Valadares Curso de Ciência da Computação.
Decisão #1 Decisão-chaveUtilização de C para desenvolvimento do MCTCore. DriversRNF: O código deve ser escrito na linguagem C. Descrição O sistema legado.
Padrões de Interação com o Usuário
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
SISTEMA PROCESSUAL DIGITAL
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
LINQ e Entity Framework
Supermercado Inteligente
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
Developing Web Applications with JavaServer Faces (Qusay H. Mahmound) Luiza Pagliari Pablo Grigoletti Universidade Federal do Rio Grande do Sul Programa.
Um estudo da ferramenta EGEN Developer Vitor Hugo Becker Departamento de Informática da Universidade Federal do Rio Grande do Sul – UFRGS.
MVC.
Programação para Internet
WebPTM Web Project and Time Manager Autor: Daniel Nicoletti Orientador: Prof. Dr. Carlos Miguel Tobar Toledo Co-Orientador: Murilo Woigt Miranda PONTIFÍCIA.
Faculdade de Tecnologia SENAI Porto Alegre Aula 1 Prof. Me. Humberto Moura
Orientação a Objetos e Java Alexandre Mota  Centro de Informática, UFPE.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Acesso a Banco de Dados com JDBC e DAO
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
PSW1 Prof. Rafael. Persistência Atividade que permite que o estado de um objeto exista mesmo após a extinção do processo computacional que o criou. Em.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.
APRESENTAÇÃO PORTAL CITI CONTA CORRENTE
Design Patterns Mediator Projeto de Sistemas de Software Kelly Leal.
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Aplicações em Três Camadas MVC – Model, View, Control.
Delegação  É uma maneira de tornar a composição tão poderosa para fins de reutilização como a herança. Na delegação, dois objetos são envolvidos no tratamento.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Aplicativos para Web MVC Prof. Odair Indena Jr.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Persistência de dados e padrão DAO
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Transcrição da apresentação:

ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller

Objetivo Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma lógica de negócios possa ser acessada e visualizada através de várias interfaces. Na arquitetura MVC, a lógica de negócios (chamaremos de Modelo) não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado. Com as diversas possibilidades de interfaces que conhecemos hoje, a MVC é uma ferramenta indispensável para desenvolvermos sistemas

Diferentes interfaces de acesso

Histórico Desenvolvido pelo Xerox PARC para o Smalltalk, em 1978; Objetivo:  mapear entrada-processamento-saída em GUIs para OO: controle-modelo-visão; Usado para:  Criação de componentes GUI reutilizáveis (propósito inicial);  Estruturação da aplicações (pós-Web).

Uma única camada

Exemplo

Conseqüências: Uma camada Sem complicações para desenvolver; Difícil manutenção:  Código desorganizado;  Difícil depuração;  Dificulta o trabalho em equipe (Web Designer, desenvolvedor...). Difícil reuso.

Sistema em várias camadas

Conseqüências: Múltiplas camadas Maior complexidade no desenvolvimento; Manutenção mais simples:  Código organizado;  Depuração isolada de camadas;  Alterações numa camada não afetam outras. Facilita o reuso Simplifica a inclusão de um novo elemento de visão (ex.: cliente) Possibilita desenvolvimento das camadas em paralelo, se forem bem definidas.

Conseqüências: Múltiplas camadas Requer análise mais aprofundada (mais tempo); Requer pessoal especializado; Não aconselhável para aplicações pequenas (custo x benefício não compensa). Se tivermos muitas visões e o modelo for atualizado com muita freqüência, a performance do sistema pode ser abalada; Se o padrão não for implementado com cuidado, podemos ter casos como o envio de atualizações para visões que estão minimizadas ou fora do campo de visão de usuário; Ineficiência: uma visão pode ter que fazer inúmeras chamadas ao modelo, dependendo de sua interface

Colaboração

Descrição da Colaboração O controle recebe um evento da GUI e invoca um método do modelo O modelo computa e muda o estado de algum atributo O modelo notifica todos os controles e visões registradas Cada visão recupera os dados do modelo e se atualiza Cada controle também atualiza seu estado, como a habilitação de um menu... O controle recupera o controle da aplicação

Colaboração

Descrição da colaboração Criação dos participantes:  Uma instancia do modelo é criada  As visões são criadas e recebem uma referência para o modelo  Cada visão se registra no mecanismo de notificação do modelo  A visão cria um controlador, e passa sua própria referência e também do modelo  O controlador também se registra no mecanismo de notificação do modelo  A aplicação começa a processar eventos

MVC em GUIs

MVC no Swing Model:  classe que encapsula um valor que o  componente gráfico representa. View:  classe que“renderiza” o componente gráfico no Look & Feel adequado. Controller:  classe que recebe estímulos do usuário no componente gráfico exibido e altera o modelo.

MVC na Web

Model:  classes de lógica de negócio. View:  páginas HTML, JSP e similares. Controller:  Servlet que recebe as requisições HTTP, chama algum método de negócio e, dependendo do retorno, escolhe uma view e redireciona.

Problemas Interfaces com o usuário são sensíveis a mudanças: O usuário está sempre querendo mudar funcionalidades e a interface das aplicações. Se o sistema não suporta estas mudanças, temos um grande problema! A aplicação pode ter que ser implementada em outra plataforma. A mesma aplicação possui diferentes requisitos dependendo do usuário:  um digitador prefere uma interface onde tudo pode ser feito através do teclado e visualizado como texto.  um gerente prefere uma interface através do mouse e de menus com visualização gráfica Neste contexto, se o código para a interface gráfica é muito acoplado ao código da aplicação, o desenvolvimento pode se tornar muito caro e difícil.

Exemplo Queremos implementar um sistema de votação, fazer uma enquete. A enquete deve permitir o voto dos usuários. Os votos são contabilizados e exibidos de duas formas:  Tela com votos absolutos, que mostra os totais de votos para cada opção;  Tela com percentual de votos. Patterns\mvc\enquete.jar

Analogia

Camadas MVC

Frameworks Java para Web Diversos frameworks open-source implementam o MVC para a Web: JSF (futuro padrão JCP); Struts (Apache); Tapestry (Apache); WebWork (OpenSymphony); Dentre outros...

Importância do MVC É importante conhecer o MVC para entender melhor a API Swing; Ao utilizar MVC para estruturar suas aplicações elas produzirá componentes reutilizáveis e de manutenção mais simples; MVC já se tornou um padrão para a camada Web, e é importante conhecê-lo para utilizar bem os frameworks.

ABSTRAIR E ENCAPSULAR TODO O ACESSO A UMA FONTE DE DADOS. O DAO GERENCIA A CONEXÃO COM A FONTE DE DADOS PARA OBTER E ARMAZENAR OS DADOS. DAO – Data Access Object

Problema

Forma de acesso aos dados varia consideravelmente dependendo da fonte de dados usado  Banco de dados relacional  Diferem na sintaxe SQL...  Arquivos (XML, CSV, texto, formatos proprietários) Persistência de objetos depende de integração com fonte de dados  Colocar código de persistência (ex: JDBC) diretamente no código do objeto que o utiliza ou do cliente amarra o código desnecessariamente à forma de implementação  Ex: difícil passar a persistir objetos em XML, LDAP, etc.

Solução: DAO

DAO Data Access Object (DAO) oferece uma interface comum de acesso a dados e esconde as características de uma implementação específica  Uma API: métodos genéricos para ler e gravar informação  Métodos genéricos para concentrar operações mais comuns (simplificar a interface de acesso) DAO define uma interface que pode ser implementada para cada nova fonte de dados usada, viabilizando a substituição de uma implementação por outra DAOs não mantêm estado nem cache de dados

Estrutura

Participantes Client: objeto que requer acesso a dados DataAccessObject: esconde detalhes da fonte de dados DataSource: implementação da fonte de dados Data: objeto de transferência usado para retornar dados ao cliente. Poderia também ser usado para receber dados. ResultSet: resultados de uma pesquisa no banco

Colaboração

Conseqüências Transparência quanto à fonte de dados  Facilita migração para outras implementações  Basta implementar um DAO com mesma interface Centraliza todo acesso aos dados em camada separada  Qualquer componente pode usar os dados (servlets, EJBs) Camada adicional  Pode ter pequeno impacto na performance Requer design de hierarquia de classes (Factory)

CONTATO: FIM