Slide 1

Slide 1 text

Entendendo MVC @antonielcm

Slide 2

Slide 2 text

WHAT?

Slide 3

Slide 3 text

MVC - Padrão de arquitetura de software - Descrito em 1979 por Trygve Reenskaug - Model, view and controller - Foco em reutilização e segregação de contextos - MVC ≠ Arquitetura em Camadas

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Model - Gerencia os dados e o estado da aplicação - Não interage com a interface - Muitas vezes (ou quase sempre) persiste os dados em algum lugar - O mesmo modelo deve ser reutilizado e inalterado em diferentes interfaces

Slide 6

Slide 6 text

Padrões de persistência - Persistir no controller - Persistir no controller base - Active Record - Repository Pattern - DAO (Data access object)

Slide 7

Slide 7 text

View - Apresentar o modelo ao usuário através de uma interface - Permite ao usuário interagir com a aplicação e manipular dados - Não armazena nenhum dado (exceto cache) - Facilmente reutilizável e configurável para exibir dados diferentes e de diferentes maneiras

Slide 8

Slide 8 text

Controller - Intermediário entre Model & View - Atualiza a exibição quando o modelo muda - Atualiza o modelo quando o usuário manipula a visão - “Toma as decisões” da aplicação

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

É permitido: - Usuário interagir com uma View - Views interagirem com Controllers - Controllers interagirem com Views - Controllers se comunicarem com outros Controllers - Controllers se comunicarem com o Model - Usuário interagir diretamente com os Controllers - Usuário interagir diretamente com o Model - Views interagirem diretamente com outras Views - Views interagirem diretamente com o Model - Models interagirem com outros Models* Não é permitido:

Slide 12

Slide 12 text

Show me the code! https://github.com/antonielcm/todomvc-dotnetcore https://github.com/antonielcm/todomvc_on_rails

Slide 13

Slide 13 text

Benefícios - Contextos segregados (Model - View) - CRUD - Views de vários tipos (respondendo PDF, XLS, específica para mobile) - Fácil manutenção - Testes ❤

Slide 14

Slide 14 text

Variações - MVP - MVVM

Slide 15

Slide 15 text

Como utilizar? - Ruby on Rails - ASP.NET - Django - Spring Framework - Composer/Laravel/Code Igniter/CakePHP - Express e Sails.js

Slide 16

Slide 16 text

Dúvidas?

Slide 17

Slide 17 text

Obrigado! about.me/antonielcm