MVVM Pattern. Mahender Senior Software Engineer United Health Group. Mahender Sarangam.
An Image/Link below is provided (as is) to download presentation
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Having 5 years of experience on .NET Technologies. Working as a Senior Software Engineer in United Health Group (UHG India Information Service Ltd.). Worked with Big Firms like Deloitte Consulting & Wipro Technology.
Got Technical Acquaintance on Technologies like C#, ASP.NET,AJAX, LINQ, Silverlight, WPF,WCF ,SQL Server, Team Foundation Server(TFS) and SharePoint Technology.
MCTS Certified in Web Technologies.
Blog : http://Msarangam.wordpress.com
Why Do need Pattern
Everything in code behind, is not a good idea
Why Do need Pattern
Basic Motivation of separation pattern
Removing logic from Code behind
Interchanging UI screens
Create Unit test case foe logic and UI
Developers and Designers can work parallel.
Model never needs to be changed to support changes to the view
No duplicated code to update views
So what is MVVM ?
Its variation of MVC pattern
John Gossman from WPF team
Resources from external assemblies
Martin Fowler's Presentation Model (PM) pattern
MVC & MVP Difference
View Knows VIEW MODEL
VIEW MODEL Knows MODEL
BUT VIEWMODEL does not know View
Represents the user interface that the user will see.
Can be a user control or Data Template
Keep the view as simple as possible.
Uses Binding to “subscribe” to the ViewModel
Interprets business data and state of ViewModel to the human
Nothing but Presentation - XAML
No or minimal code-behind
An abstraction of View
Connector between View and Model
Keep View State, Value Conversion
No strong or weak (via Interface) reference of View
Make VM as testable as possible (e.g. no call to Singleton class)
No Control related Stuff in VM
Provides data to and from the View
Responds to both the View and the Model
Informs the View of changes in the data
Reusable (at least much more than code behind a form)
Can be Data Model, DTO, POCO, auto-generated proxy of domain class and UI Model based on how you want to have the separation between Domain Service and Presentation Layer
No reference to View Model
Typical class that covers a database
Could be a WCF Service and its client reference
SupportingLibraires and Framework
WPF Team : MVVM Toolkit
MS Pattern and Practice Team : Composite WPF (Prism)