Aula 3 (10/03/2015) - Arquitetura de Desenvolvimento Web

Propaganda
Arquitetura de Desenvolvimento Web
MVC vs. Three Tiers
Prof. Alexandre Monteiro
Recife
‹#›
Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]
[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878
Origem do MVC




O MVC surgiu em meados de 1979 para um projeto
em Smalltalk;
Ficou popular na década de 90, pelo aumento do uso por
desenvolvedores;
Com o surgimento dos padrões/arquitetura em camadas.
Seu principal objetivo é separar as camadas de
desenvolvimento, ficando assim mais simples e rápido de
resolver problemas e efetuar ajustes.
Introdução ao MVC

É um modelo padrão de arquitetura usado em engenharia
de software para separar o projeto 3 camadas:
• Model: representam suas entidades e as que te ajudam a
armazenar
e
buscar
os
dados
são
chamadas
de Modelo (Model).
• View: interface visual gráfica (GUI), ou páginas web de
apresentação ao usuário, normalmente página HTML com
<forms>, constando informações da aplicação.
• Controller: interpreta eventos e manipula os dados (Objetos)
como listar, procurar, alterar, inserir e deletar dados;
“O Modelo é o objeto de aplicação que é manipulado, a Visão é a
apresentação ao usuário através das telas e o Controlador é o que define a
maneira como a interface do usuário reage às entradas do mesmo”.
Fonte: livro “Padrões de projeto: Soluções reutilizáveis de software orientado a objetos“.
Introdução ao MVC



MVC é implementado em várias linguagens de programação e
altamente
difundida,
permitindo
equipes
distintas
(programadores e designers) trabalharem sem interferência
no trabalho uns dos outros;
Deixa o código mais legível e possibilita que cada equipe foque
exclusivamente nas suas atribuições.
Duas palavras-chave em MVC são: Reuso e Flexibilidade.
Vantagens do MVC

Abaixo serão listadas algumas das vantagens em utilizar MVC em
seus projetos:
• Facilita o reaproveitamento de código;
• Facilidade na manutenção e adição de recursos;
• Maior integração da equipe e/ou divisão de tarefas;
• Diversas tecnologias estão adotando essa arquitetura;
• Facilidade em manter o seu código sempre limpo;
Comportamento do MVC
Comportamento do MVC
Comportamento do MVC
MVC vs. 3 Camadas
(VIEW)
(CONTROLLER)
(MODEL)
Fluxo de Sistemas WEB
Procura informação no BD
Servidor procura arquivo
index
Servidor Web
Retorna informação do BD
Servidor de
Banco de Dados
A página é executada
para se converter em
código HTML, que é
entendido pelo
Browser
Digita-se o endereço da
página www.google.com.br
no browser
A página é devolvida para o Usuário
Cliente
Usuário visualiza a Página
www.google.com.br
Com que vamos trabalhar?

HTML - (estruturação/layout)

CSS - (apresentação/visual)

Javascript - (ações do lado cliente)

Linguagem Web JSP (Java Service Page) - (ações do lado
servidor)

Linguagem de Desenvolvimento JAVA - (Regras de Negócio)

HQL + SQL - (Linguagem de Banco de Dados)
Interações mais comuns
Ling. Web
HTML/JSP – Estrutura
(Hyper Text Markup Language)
CSS – Apresentação
(Cascade Style Sheet)
Javascript – Ações lado Cliente
Ling. Web - Regras de Negócio
Ling. Web – Regras de Negócio
SQL – Banco de Dados
Abordagens de Desenvolvimento



Top-Down: Implementação inicia-se pela camada de
Apresentação/VIEW até à camada de Persistência/MODEL.
Bottom-up: Implementação inicia-se pela camada de
Persistência/MODEL até à camada de Apresentação/VIEW.
Sandwiche: Misto das anteriores.
Top-Down
Browser
Evolução dos Dados
(DADOS)
MODEL
(Objeto)
MODEL
(Objeto)
Mapeamento
Objeto-Relacional
TABELA
(Registro)
Linguagens
(VIEW)
(CONTROLLER)
(MODEL)
HIBERNATE
JSP
JAVA
JAVA
HQL
SQL
Bottom-Up
(VIEW)
(CONTROLLER)
(MODEL)
Sandwiche
(VIEW)
(CONTROLLER)
(MODEL)
Qual abordagem adotaremos?

Depende:
•Individualmente: Bottom-Up;
•Em equipe: Sandwiche;


Atenção: é bastante indicado iniciar qualquer projeto, seja ele
web ou desktop, pela camada de persistência/MODEL.
Dessa forma, iniciaremos nosso curso com a modelagem e
criação do Banco de Dados.
Download