1. Desmistificando o MVVM
Pedro Lamas
pedro.lamas@pocketpt.net
http://twitter.com/pedrolamas
http://www.pedrolamas.com
2. 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”
3. Desmistificando o MVVM
• Introdução
• Hello World
• Currency Converter
• Toolkits & Frameworks
• Perguntas
5. MVVM é…
• Model – View – ViewModel
• Apenas um pattern
• Tudo o resto são
helpers, toolkits, frameworks, etc.
• Utilizado de base no Silverlight e do WPF
10. Currency Converter
• Objectivo base: criar um conversor de
moedas
• Arquitectura MVVM simples (sem helpers
ou toolkits)
• Utilizar o Bing como fonte de dados
13. MVVM Light Toolkit
• Laurent Bugnion
• http://mvvmlight.codeplex.com
• V3 disponibilizada no MIX10, V4 apresentada
no MIX11
• “Keep it small”
• “Keep it simple”
14. 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
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.