Padrão mvc

15
Josué Borsoni - Instituto Infnet 1

Transcript of Padrão mvc

Page 1: Padrão mvc

Josué Borsoni - Instituto Infnet

1

Page 2: Padrão mvc

Josué Borsoni - Instituto Infnet

2

ProgramaçãoProgramação

Padrão de Projeto (Design Patterns) Arquitetura em camadasPadrão MVC

Page 3: Padrão mvc

Josué Borsoni - Instituto Infnet

3

Tudo é importante !Tudo é importante !

Conceitos são tão importantes quanto tecnologia

O fato de você usar as melhores tecnologias não garantem o sucesso do seu projeto

Page 4: Padrão mvc

Josué Borsoni - Instituto Infnet

4

O que são Padrões de Projeto?O que são Padrões de Projeto? Conjunto de soluções que foram documentadas para

tipos de problemas parecidos e recorrentes.Eexmplo: Singleton, Factory, Repository, etc.

Muitos padrões de projeto possuem como base a programação para uma “interface”

Dominar padrões de projeto pode ser um diferencial para o profissional

Page 5: Padrão mvc

Josué Borsoni - Instituto Infnet

5

Arquitetura em CamadasArquitetura em Camadas

Como resolver um problema complexo ?Subdividindo em partes menores e independentes (Exemplo: expressões matemáticas)

Softwares complexos exigem a separação das coisas, isolando a concentração em partes diferentes do ‘design’ (camadas de código)

Existem várias maneiras para se dividir um sistema de software, nosso setor convergiu para a Arquitetura em Camadas, sendo algumas camadas relativamente padronizadas

Page 6: Padrão mvc

Josué Borsoni - Instituto Infnet

6

Infra-Estrutura Aplicativo

Page 7: Padrão mvc

Josué Borsoni - Instituto Infnet

7

Infra-EstruturaInfra-Estrutura

São todas as ferramentas e frameworks utilizados nas soluções de seus projetos.Exemplo: Eclipse, PostgreSQL, Hibernate, Visual Studio, Entity Framework

Page 8: Padrão mvc

Josué Borsoni - Instituto Infnet

8

Padrão MVCPadrão MVC

Model - View - Controller Padrão de projeto arquitetural Utilizado para ligar a UI (interface com usuário)

com outras camadas e regras de negócio do aplicativo

Separa a lógica que resolve os problemas do usuário das “telas” de um sistema

Saber separar as responsabilidades é fundamental

Page 9: Padrão mvc

Josué Borsoni - Instituto Infnet

9

View – Camada de ApresentaçãoView – Camada de Apresentação

Interface com usuário, comunicação homem-máquina

Responsável por exibir informações aos usuários e interpretar seus comandos

O agente externo pode ser outro sistema

Page 10: Padrão mvc

Josué Borsoni - Instituto Infnet

10

Infra-Estrutura ‘

Camada de Persistência

Camada de Apresentação V

Camada de Controle

Camada de Domínio

C

M

Page 11: Padrão mvc

Josué Borsoni - Instituto Infnet

11

Controller – Camada de Controle Controller – Camada de Controle

Sabe quais funções o software pode executar e direciona os objetos do domínio para resolver os problemas

Esta camada não possui conhecimento das regras do negócio, apenas coordena os fluxos do usuário e a troca de mensagens do domínio para obter o resultado que a apresentação está esperando

Nada deve “parar” na camada de controle

Page 12: Padrão mvc

Josué Borsoni - Instituto Infnet

12

Infra-Estrutura ‘

Camada de Persistência

Camada de Apresentação V

Camada de Controle

Camada de Domínio

C

M

Page 13: Padrão mvc

Josué Borsoni - Instituto Infnet

13

Model – Camada de DomínioModel – Camada de Domínio Esta camada pode ser considerada o coração do

software Responsável por resolver os problema do

domínio estudado Possui todas as regras de negócio que são

identificadas durante a fase de análise Ela deve expressar o modelo do domínio que está

sendo mapeado O padrão MVC considera que a responsabilidade

de persistência dos dados pertence à camada de domínio.

Page 14: Padrão mvc

Josué Borsoni - Instituto Infnet

14

Infra-Estrutura ‘

Camada de Persistência

Camada de Apresentação V

Camada de Controle

Camada de Domínio

C

M

Page 15: Padrão mvc

Josué Borsoni - Instituto Infnet

15

ReferênciasReferências

EVANS, Eric. Domain-Driven Design. Atacando a complexidade no coração do software

http://www.heroisdati.com/msdev-es-arena-entity-framework-x-nhibernate/