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

Desmistificando o MVVM

Notas do Editor

  • #11 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.