SlideShare uma empresa Scribd logo
MVC MVP MVVM


   André Faria Gomes
      @andrefaria
MVC
                                               1979 (Smalltalk)


                Model-View-Controller



Melhor arquitetura através de separation of concerns

Isola os dados (model) das interfaces de usuário (views)

     Controlers tratam da entrada de usuário e
         coordenação das views e models
4
                                           VC ipt
                                         M r
                                          vaSc
                                        Ja
                Backbone, Ember.js and JavaScriptMVC
Ajuda a resolver o problema do Js spaghetti estruturando o código
Gerenciar os dados de negócio


Não diz respeito a UI, porém
quando um modelo muda,
geralmente vai notificar
observadores para que as
mudanças também ocorram na
apresentação. Podendo ter vários
observadores por modelo.




                                   Models
Representações visuais dos modelos em seu estado atual

A tarefa de atualizar o modelo (geralmente) é do controller
Usuários interagem com a view, lendo, editando, etc.




Views
Templates
Muitos frameworks usam templates porque é uma má prática (de codificação de
e performance) criar longos blocos de strings concatenadas.

 A aplicação recebe dados em Json e aplica no Template
MVC MVP MVVM para Web
MVC MVP MVVM para Web
Intermediários entre models e views

Atualiza a views quando o model muda

Atualiza o model quando o usuário altera a view

Nem sempre explícito, no
backbone a responsabilidade
é divida pelos Routes e
View, outros frameworks
como o Spine já tem o
Controller explícito.




                         Controllers
Separation of Concerns facilita manutenção

Desacoplar model e view facilita a escrita de testes

Permite reutilizar lógica em diferentes locais da aplicação




                               Benefícios
1990 (Smalltalk)


                      MVP
                     Model-View-Presenter



O Presenter é um componente que contém a regra de negócio
relacionada a user-interface, invocações da view são delegadas
para o presenter.

O presenter fala com a view e com o model, porém esses são
isoldados entre si. Eles fazem o bind eles a view e o controller. As
views expõe seeters para que o presenter possam alterar seus
dados.

Útil quando é preciso reutilizar regras de apresentação. Muito
usado em grandes aplicações corporativas.
http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx
MVVM
                                                    2005
                                                Microsoft

            Model View ViewModel



Baseado em MVC e MVP procura separar de
    forma mais clara a regra de negócio da
   interface de usuário das outras regras e
comportamentos da aplicação através data-
            bindings declarativos.

Isso facilita que UI e desenvolvimento possam
 ocorrer simultaneamente na mesma base de
   código. Desenvolvedores de UI escrevem
bindings no HTML, enquanto desenvolvedores
                 cuidam do resto.
Dados apenas, nada de Comportamento (Tipicamente)
Não formatam informação nem fazem aparecer dados na UI, isso é
gerenciado pelo ViewModel




                                     Models
Interação com o usuário

Não é responsável por gerenciar o estado
Representam o estado do ViewModel

Geralmente é apenas um HTML com bindings declarativos




                                           Views
Um tipo de controller especializado que converte dados.

Transforma o model e view e passa comandos do views para o model.

Representa os dados da Views para o Model.

Testável

Pode ser exagero para UI’s muito simples




                         Viewmodel
MVC MVP MVVM para Web
“I must admit that when I first reviewed implementations
of MVVM (e.g KnockoutJS, Knockback), I was surprised
that any developer would want to return to the days of old
where we mixed logic (JavaScript) with our markup and
found it quickly unmaintainable.”
                             Addy Osmani
http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/
refs



http://addyosmani.com/blog
@andrefaria
http://blog.andrefaria.com

Mais conteúdo relacionado

PDF
Padrões Arquiteturais - MVC, MVP e MVVM
PPTX
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
PDF
Padrões de Projeto WEB e o MVC
PDF
Arquitetura MVC
PPTX
Apresentação mvc
PPT
Padrão Arquitetural MVC e suas aplicações para WEB
PDF
Ebook AngularJS | Guia Introdutório
ODP
Arquitetura MVC, JavaBeans e DAO
Padrões Arquiteturais - MVC, MVP e MVVM
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
Padrões de Projeto WEB e o MVC
Arquitetura MVC
Apresentação mvc
Padrão Arquitetural MVC e suas aplicações para WEB
Ebook AngularJS | Guia Introdutório
Arquitetura MVC, JavaBeans e DAO

Mais procurados (20)

PPT
PPTX
Comtec2010 asp.net mvc
PPT
Apresentação Facelets_UNIFEI
ODP
Usando MVC para agilizar o desenvolvimento
DOCX
Camadas
PDF
Arquitetura de Sofware
PPT
Mvc - Semifinal
PPT
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
PDF
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
PPTX
Angular js
PDF
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
PDF
Padrões de Projeto Web e o MVC
PPTX
Desenvolvimento RIA com Silverlight 4
PPTX
Como trabalhar com angular js
PPT
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
PPTX
Apresentação angular js
PPTX
Estudo de caso ASP.NET MVC e Silverlight
PPTX
MVC Pattern
PPTX
Introdução a arquitetura de sistemas com .NET
Comtec2010 asp.net mvc
Apresentação Facelets_UNIFEI
Usando MVC para agilizar o desenvolvimento
Camadas
Arquitetura de Sofware
Mvc - Semifinal
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Angular js
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Padrões de Projeto Web e o MVC
Desenvolvimento RIA com Silverlight 4
Como trabalhar com angular js
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
Apresentação angular js
Estudo de caso ASP.NET MVC e Silverlight
MVC Pattern
Introdução a arquitetura de sistemas com .NET
Anúncio

Destaque (17)

PDF
The Traveler's Gift: My Notes
PDF
What happened to Google Reader?
PDF
Pensando como um data scientist
PDF
Java Script
PDF
Gestão 3.0 e Kudo Box
PDF
PDF
Wikipedia - De leitor a Contribuinte
PDF
Gestão 3.0: Gestão Ágil
PDF
Bematech IFRS
PDF
Introduction to Underscore.js
PDF
11 Regras de Bill Gates para a Vida
PDF
Escolha ser mais feliz
PDF
Pensando Rápido e Devagar
PDF
Feedback 360
PDF
Porter's Five Forces: How to identiy attractive markets
PDF
Steve Jobs - Lessons Learned
PPT
Porter's Five Forces
The Traveler's Gift: My Notes
What happened to Google Reader?
Pensando como um data scientist
Java Script
Gestão 3.0 e Kudo Box
Wikipedia - De leitor a Contribuinte
Gestão 3.0: Gestão Ágil
Bematech IFRS
Introduction to Underscore.js
11 Regras de Bill Gates para a Vida
Escolha ser mais feliz
Pensando Rápido e Devagar
Feedback 360
Porter's Five Forces: How to identiy attractive markets
Steve Jobs - Lessons Learned
Porter's Five Forces
Anúncio

Semelhante a MVC MVP MVVM para Web (20)

PDF
Conceitos e Frameworks para Arquitetura MVC.pdf
PPTX
Arquitetura e Frameworks para Arquitetura MVC.pptx
PPTX
Treinamento Básico Sobre ASP.NET MVC
PPTX
Introdução ao desenvolvimento front end usando bootstrap e angular js
KEY
Desenvolvimento iOS - Aula 2
PPTX
Asp.Net Mvc
PDF
Palestra ASP.NET MVC
PPTX
Historia do mvc, mvp e mvvm no android
PPTX
Arquitetura MVC.pptx
PPTX
Padrões MVC
PPTX
MVVM Deep Dive - Paulo Aboim Pinto
PDF
ASP.NET MVC - Alexandre Tarifa
PDF
ASP.NET MVC
PDF
Asp.Net Mvc Dev Days09 V3 Pt
PDF
ApresentaçãO Mvc
PDF
Apresentação M V C
PPT
Padrões Arquiteturais de Sistemas
PPTX
MVC e Frameworks MVC
PDF
Knockout JS - Uma framework para aplicações web
PPTX
Utilizando o Padrão Presentation Model em Aplicações Flex
Conceitos e Frameworks para Arquitetura MVC.pdf
Arquitetura e Frameworks para Arquitetura MVC.pptx
Treinamento Básico Sobre ASP.NET MVC
Introdução ao desenvolvimento front end usando bootstrap e angular js
Desenvolvimento iOS - Aula 2
Asp.Net Mvc
Palestra ASP.NET MVC
Historia do mvc, mvp e mvvm no android
Arquitetura MVC.pptx
Padrões MVC
MVVM Deep Dive - Paulo Aboim Pinto
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC
Asp.Net Mvc Dev Days09 V3 Pt
ApresentaçãO Mvc
Apresentação M V C
Padrões Arquiteturais de Sistemas
MVC e Frameworks MVC
Knockout JS - Uma framework para aplicações web
Utilizando o Padrão Presentation Model em Aplicações Flex

Mais de André Faria Gomes (20)

PDF
Meetup Escale - Gestão para Equipes de Alta Performance
PDF
Protagonistas da inovação - Como criar e gerir os negócios do futuro
PDF
A Mobilidade como Propulsor da Transformação Digital
PDF
Além da Agilidade 2019 - KickOff Wow
PDF
Modern systems architectures: Uber, Lyft, Cabify
PDF
Breaking the monolith
PDF
Agilidade - APAS
PDF
Principles and Radical Transparency - Lessons Learned from Ray Dalio
PDF
Bluesoft @ AWS re:Invent 2017 + AWS 101
PDF
Boas Práticas da Rede Supermercadista Wegmans
PDF
Boas Práticas para Supermercadistas inspiradas no Whole Foods, Sprouts Marke...
PDF
Change management - Kotter’s eight-step model
PDF
Palestra na Uninove sobre Agilidade
PDF
Gestão Ágil com Management 3.0
PDF
Lições aprendidas em 10 anos de agilidade
PDF
Os 7 hábitos das pessoas altamente eficazes
PDF
Objetividade: A Virtude Esquecida
PDF
Lições de empreendedorismo com Flávio Augusto
PDF
Capital de Giro e Ciclo Financeiro
PDF
Followership
Meetup Escale - Gestão para Equipes de Alta Performance
Protagonistas da inovação - Como criar e gerir os negócios do futuro
A Mobilidade como Propulsor da Transformação Digital
Além da Agilidade 2019 - KickOff Wow
Modern systems architectures: Uber, Lyft, Cabify
Breaking the monolith
Agilidade - APAS
Principles and Radical Transparency - Lessons Learned from Ray Dalio
Bluesoft @ AWS re:Invent 2017 + AWS 101
Boas Práticas da Rede Supermercadista Wegmans
Boas Práticas para Supermercadistas inspiradas no Whole Foods, Sprouts Marke...
Change management - Kotter’s eight-step model
Palestra na Uninove sobre Agilidade
Gestão Ágil com Management 3.0
Lições aprendidas em 10 anos de agilidade
Os 7 hábitos das pessoas altamente eficazes
Objetividade: A Virtude Esquecida
Lições de empreendedorismo com Flávio Augusto
Capital de Giro e Ciclo Financeiro
Followership

Último (20)

PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Processos na gestão de transportes, TM100 Col18
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Aula 18 - Manipulacao De Arquivos python
Processos na gestão de transportes, TM100 Col18
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula sobre desenvolvimento de aplicativos
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx

MVC MVP MVVM para Web

  • 1. MVC MVP MVVM André Faria Gomes @andrefaria
  • 2. MVC 1979 (Smalltalk) Model-View-Controller Melhor arquitetura através de separation of concerns Isola os dados (model) das interfaces de usuário (views) Controlers tratam da entrada de usuário e coordenação das views e models
  • 3. 4 VC ipt M r vaSc Ja Backbone, Ember.js and JavaScriptMVC Ajuda a resolver o problema do Js spaghetti estruturando o código
  • 4. Gerenciar os dados de negócio Não diz respeito a UI, porém quando um modelo muda, geralmente vai notificar observadores para que as mudanças também ocorram na apresentação. Podendo ter vários observadores por modelo. Models
  • 5. Representações visuais dos modelos em seu estado atual A tarefa de atualizar o modelo (geralmente) é do controller Usuários interagem com a view, lendo, editando, etc. Views
  • 6. Templates Muitos frameworks usam templates porque é uma má prática (de codificação de e performance) criar longos blocos de strings concatenadas. A aplicação recebe dados em Json e aplica no Template
  • 9. Intermediários entre models e views Atualiza a views quando o model muda Atualiza o model quando o usuário altera a view Nem sempre explícito, no backbone a responsabilidade é divida pelos Routes e View, outros frameworks como o Spine já tem o Controller explícito. Controllers
  • 10. Separation of Concerns facilita manutenção Desacoplar model e view facilita a escrita de testes Permite reutilizar lógica em diferentes locais da aplicação Benefícios
  • 11. 1990 (Smalltalk) MVP Model-View-Presenter O Presenter é um componente que contém a regra de negócio relacionada a user-interface, invocações da view são delegadas para o presenter. O presenter fala com a view e com o model, porém esses são isoldados entre si. Eles fazem o bind eles a view e o controller. As views expõe seeters para que o presenter possam alterar seus dados. Útil quando é preciso reutilizar regras de apresentação. Muito usado em grandes aplicações corporativas.
  • 13. MVVM 2005 Microsoft Model View ViewModel Baseado em MVC e MVP procura separar de forma mais clara a regra de negócio da interface de usuário das outras regras e comportamentos da aplicação através data- bindings declarativos. Isso facilita que UI e desenvolvimento possam ocorrer simultaneamente na mesma base de código. Desenvolvedores de UI escrevem bindings no HTML, enquanto desenvolvedores cuidam do resto.
  • 14. Dados apenas, nada de Comportamento (Tipicamente) Não formatam informação nem fazem aparecer dados na UI, isso é gerenciado pelo ViewModel Models
  • 15. Interação com o usuário Não é responsável por gerenciar o estado Representam o estado do ViewModel Geralmente é apenas um HTML com bindings declarativos Views
  • 16. Um tipo de controller especializado que converte dados. Transforma o model e view e passa comandos do views para o model. Representa os dados da Views para o Model. Testável Pode ser exagero para UI’s muito simples Viewmodel
  • 18. “I must admit that when I first reviewed implementations of MVVM (e.g KnockoutJS, Knockback), I was surprised that any developer would want to return to the days of old where we mixed logic (JavaScript) with our markup and found it quickly unmaintainable.” Addy Osmani