SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Desmistificando o MVVM

Pedro Lamas
pedro.lamas@pocketpt.net
http://twitter.com/pedrolamas
http://www.pedrolamas.com
Pedro Lamas
• Profissional de TI há +11 anos, especializado em tecnologias
  Microsoft
• Administrador no PocketPT.net, comunidade portuguesa de
  suporte a utilizadores de Windows Mobile /Windows Phone
• Orador em eventos tecnológicos (Microsoft TechDays &
  DevDays, Seminários PocketPT.net, Faculdades…)
• Actualmente Senior Solution Developer na
  DevScope
• “Geek”
Desmistificando o MVVM

• Introdução

• Hello World

• Currency Converter

• Toolkits & Frameworks

• Perguntas
DESMISTIFICANDO O MVVM

introdução
MVVM é…

• Model – View – ViewModel

• Apenas um pattern

• Tudo o resto são
 helpers, toolkits, frameworks, etc.

• Utilizado de base no Silverlight e do WPF
Esquematização do MVVM

                 View          XAML


      Notify         Binding



               ViewModel


      Notify                   C#, VB.net



                Model
DESMISTIFICANDO O MVVM

hello world
time for some code…
DESMISTIFICANDO O MVVM

currency converter
Currency Converter

• Objectivo base: criar um conversor de
 moedas

• Arquitectura MVVM simples (sem helpers
 ou toolkits)

• Utilizar o Bing como fonte de dados
time for some code…
DESMISTIFICANDO O MVVM

toolkits & frameworks
MVVM Light Toolkit
• Laurent Bugnion
• http://mvvmlight.codeplex.com
• V3 disponibilizada no MIX10, V4 apresentada
  no MIX11
• “Keep it small”
• “Keep it simple”
Caliburn.Micro Framework

• Rob Eisenberg

• http://caliburnmicro.codeplex.com

• Convenção em vez de configuração

• Grande parte das necessidades do WP7
 estão contempladas
DESMISTIFICANDO O MVVM

perguntas
Obrigado

Pedro Lamas
pedro.lamas@pocketpt.net
http://twitter.com/pedrolamas
http://www.pedrolamas.com

Weitere ähnliche Inhalte

Was ist angesagt?

Criação de Visual Studio Templates Personalizados
Criação de Visual Studio Templates PersonalizadosCriação de Visual Studio Templates Personalizados
Criação de Visual Studio Templates PersonalizadosComunidade NetPonto
 
Aplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAAplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAmarcosvpcortes
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJSEmmanuel Neri
 
Websocket
WebsocketWebsocket
Websocketmaxii
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesSpringpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesVinícius Lourenço
 
.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET
.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET
.NET Core + Selenium: extração de dados de páginas Web - Campinas .NETRenato Groff
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Renato Groff
 
Frameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoFrameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoIago Santos Leão
 

Was ist angesagt? (10)

Meetup vue.js
Meetup vue.jsMeetup vue.js
Meetup vue.js
 
Criação de Visual Studio Templates Personalizados
Criação de Visual Studio Templates PersonalizadosCriação de Visual Studio Templates Personalizados
Criação de Visual Studio Templates Personalizados
 
Aplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAAplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPA
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
 
Websocket
WebsocketWebsocket
Websocket
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesSpringpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
 
.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET
.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET
.NET Core + Selenium: extração de dados de páginas Web - Campinas .NET
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
 
Frameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoFrameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimento
 

Andere mochten auch

Andere mochten auch (8)

Present.russian
Present.russianPresent.russian
Present.russian
 
Portifólio proinfo
Portifólio proinfoPortifólio proinfo
Portifólio proinfo
 
Empresa Com GestãO De Qualidade
Empresa Com GestãO De QualidadeEmpresa Com GestãO De Qualidade
Empresa Com GestãO De Qualidade
 
Wii U
Wii UWii U
Wii U
 
Windows Phone Development
Windows Phone DevelopmentWindows Phone Development
Windows Phone Development
 
Viaje A La Nieve 2007 08
Viaje A La Nieve 2007 08Viaje A La Nieve 2007 08
Viaje A La Nieve 2007 08
 
Circuitos
CircuitosCircuitos
Circuitos
 
Dones filosofiques en la història
Dones filosofiques en la històriaDones filosofiques en la història
Dones filosofiques en la història
 

Ähnlich wie Desmistificando MVVM

Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Renato Groff
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - MackenzieRenato Groff
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesGuilherme Vierno
 
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Renato Groff
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Renato Groff
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...Renato Groff
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreRodrigo Kono
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Renato Groff
 
Primeiros passos com o framework Sencha Ext JS
Primeiros passos com o framework Sencha Ext JSPrimeiros passos com o framework Sencha Ext JS
Primeiros passos com o framework Sencha Ext JSWemerson Januario
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Renato Groff
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...Renato Groff
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 

Ähnlich wie Desmistificando MVVM (20)

Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluções
 
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
Primeiros passos com o framework Sencha Ext JS
Primeiros passos com o framework Sencha Ext JSPrimeiros passos com o framework Sencha Ext JS
Primeiros passos com o framework Sencha Ext JS
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 

Desmistificando MVVM

Hinweis der Redaktion

  1. The View is the basic XAML for the user interface (although sometimes it can have a C# file attached to it) that will use Data Binding to read and change properties on the ViewModel, and Actions to invoke the  methods.The ViewModel is the abstraction of the View and will do all the work for binding the View to the Model, with the necessary data conversion.The Model can represent the  actual object model instance in a known state, or just a data access layer.There is one basic rule in MVVM: don’t look up! The Model has no knowledge of either the ViewModel or the View, and the ViewModel has no knowledge of the View.This brings a new challenge on how to make the three components talk between themselves, and that’s where notifications come along! “its” instead of “the”? “represent”? There needs to be a word here.