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.