22
Padrões de Projeto Model View Controller Charles Fortes MTAC - Microsoft Technical Audience Contributor

MVC Pattern

Embed Size (px)

DESCRIPTION

Apresentação de introdução ao padrão MVC

Citation preview

Page 1: MVC Pattern

Padrões de Projeto

Model View Controller

Charles FortesMTAC - Microsoft Technical Audience Contributor

Page 2: MVC Pattern

MVCModel View Controle Pattern

“O MVC é um padrão de projeto criado para separar o modelo do domínio, a apresentação e as ações do usuário separado em três classes: Modelo, Visão e Controlador.”

Adaptado de Burbeck92

Page 3: MVC Pattern

MVCModel View Controle Pattern

O MVC permite a separação clara dos interesses acerca do desenvolvimento da camada de apresentação dos dados, permitindo dentre outras coisas, que cada

uma delas seja trabalhada em paralelo pelo profissional mais especializado.

Page 4: MVC Pattern

MVCModel View Controle Pattern

Além disto, permite um melhor reaproveitamento do código e facilidade de manutenção e testes. Permitindo que um dado tenha diversas formas de

exibição conforme o contexto solicitado pelo usuário.

Page 5: MVC Pattern

MVCModel View Controle Pattern

Modelo(Model)

Page 6: MVC Pattern

MVCModel View Controle Pattern

Model

O modelo representa os dados (a serem) persistidos e suas regras de negócio, como por exemplo um usuário ou um cliente

Ele pode por exemplo ser recuperado do banco de dados para ser exibido ao usuário, pode ser alterado ou pode-se criar um novo

Page 7: MVC Pattern

MVCModel View Controle Pattern

Model

public class Usuario{public string Nome {get; set;}public string Email {get; set;}

}

Page 8: MVC Pattern

MVCModel View Controle Pattern

Visão(View)

Page 9: MVC Pattern

MVCModel View Controle Pattern

View

A view é responsável pela apresentação dos dados ao usuário, permitindo que ele interaja de forma controlada com o modelo ou

executando ações, como remover um item ou listar produtos

Page 10: MVC Pattern

MVCModel View Controle Pattern

View

Um modelo pode ser exibido ao usuário na forma de diversas views, como por exemplo, uma de listagem, uma de edição e uma de exibição.

Mas uma view não precisa necessariamente estar vinculada a um modelo.

Page 11: MVC Pattern

MVCModel View Controle Pattern

View

Listagem do modelo

Ações

Page 12: MVC Pattern

MVCModel View Controle Pattern

Controlador(Controller)

Page 13: MVC Pattern

MVCModel View Controle Pattern

Controller

Os controllers são responsáveis por receber as ações do usuário, que podem vir de uma ação direta como acessar uma URL ou um link em

uma View

Page 14: MVC Pattern

MVCModel View Controle Pattern

Controller

O Controller recebe a ação do usuário, seleciona o(s) modelo(s) que o usuário deseja interagir e seleciona a view pra exibir a

informação

Assim, um controller concentra as ações necessárias para tratar um interesse do domínio.

Page 15: MVC Pattern

MVCModel View Controle Pattern

UsuárioDave

Actions

Controller de Usuário

Listar Todos Listar com a letra “D” Cadastrar Editar Salvar Remover Autenticar

Page 16: MVC Pattern

MVCModel View Controle Pattern

Como funciona?

Page 17: MVC Pattern

MVCModel View Controle Pattern

UsuárioDave

View

De maneira geral...

Controller

ModeloTaco

Page 18: MVC Pattern

MVCModel View Controle Pattern

UsuárioDave

ViewAcessando...

Controller ModeloTaco

Acessa URL Carrega os modelos

Modelos solicitados

Seleciona a View

View com os dados do modelo montada

Page 19: MVC Pattern

MVCModel View Controle Pattern

UsuárioDave

ViewInteragindo...

Controller ModeloTaco

Criar um novo

Nova view com modelo vazio

Solicita a View de Criação

Salvar

Preenche o modelo

Validações

Passa o modelo preenchido para ser salvo

Page 20: MVC Pattern

MVCModel View Controle Pattern

Let’s TryHandsOn

Page 21: MVC Pattern

MVCModel View Controle Pattern

Obrigado

Veja sobre mim no próximo slide

Page 22: MVC Pattern

MVC

100L

oop

Charles FortesMTAC - Microsoft Technical Audience ContributorComunidade Técnica Microsoft Belo Horizonte

@CharlesFortes Bancos de Dados

SQLMySQLNoSQL

Desenvolvimento

WebDesktopMobile

Versionamento

GitTFSSVN

Arquitetura

PracticesPatternsModeling

Eventos e Treinamentos

It’s me!