SlideShare a Scribd company logo
WPF with MVVM: From the Trenches
Brent EdwardsSenior Consultant with MagenicBrentE@magenic.com@brentledwardsbrentedwards.net
Why ‘From the Trenches’?
What We Will CoverWhat is MVVM?
Cool WPF concepts
What is it?
Why is it cool?
How is it used?
Helpful tricks to make life easier
Useful tools that make debugging suck less
Develop sample app as we goWhat is MVVM?
What is MVVM?ModelBusiness logicBusiness ObjectViewPresentationXAMLView ModelFunctionalityModel for the View
Why is MVVM Cool?Separates Presentation from FunctionalityPromotes testabilityWorks great with Data BindingEasy collaboration with DesignersNo code-behinds
Cost of MVVMNo built in IDE supportAll interactions must be manually wired upNew and shiny, but fragmentedLots of different frameworksLots of different opinions
Cool WPF Concepts
DataContextWhat is it?A way to give elements a scope for data bindingWhy is it cool?Makes it easy to bind controlsCan be static or dynamic
DataContextHow is it used?StaticallyOR
DataContextHow is it used?DynamicallyFrom code
Data BindingWhat is it?A way for applications to present and interact with dataWhy is it cool?Simple syntax to set up, WPF does the rest
Data BindingHow is it used?Binding syntax in XAMLTwo Way (Default Behavior)Implement INotifyPropertyChanged on view model or business object
CommandingWhat is it?A way to bind commands to a DataContextWhy is it cool?Can wire UI events to fire commands on View ModelCan pass parameters via binding
CommandingHow is it used?Expose ICommand property on View ModelAssign a command to the propertyPrism’s DelegateCommandBind to command in XAML
Commanding[Demo]
Data TemplatesWhat is it?A way to define the presentation of your dataWhy is it cool?Can give a ‘look’ to your business objectsYou can leverage data binding
Data TemplatesHow is it used?
Data Templates[Demo]
Data TriggersWhat is it?Set style properties based on data valuesWhy is it cool?Change presentation based on data properties
Data TriggersHow is it used?
Data Triggers[Demo]
Value ConvertersWhat is it?Converts data value to format required by UIWhy is it cool?Easy way to convert DateTime, Decimals, Integers or Booleans
Value ConvertersHow is it used?Implement IValueConverterConvert, ConvertBackInclude in Resources with a KeyUse it!
Value Converters[Demo]
Data Template SelectorsWhat is it?Select DataTemplate based on custom logicWhy is it coolSelect DataTemplate based on properties on view models or business objectsCan be unit tested
Data Template SelectorsHow is it used?Inherit from DataTemplateSelectorAdd properties for the DataTemplates to select fromOverride SelectTemplateAdd logic to actually select the templateAdd DataTemplates to XAML
Data Template SelectorsHow is it used?Add DataTemplateSelector to XAMLUse it!ContentControlListViewListBox
Data Template Selectors[Demo]
Helpful Tricks[To make life easier]
Event Aggregator / Message BusWhat is it?Centralized location to route [Events | Messages]Why is it cool?Great way to decouple view modelsMakes testing a breeze
Event Aggregator / Message BusHow is it used?Use an IOC containerCastle WindsorImplement as a SingletonStatic propertyImportant that all calls route through same instanceOptionsPrism’s Event AggregatorRoll your own
Event Aggregator / Message Bus[Demo]
NavigationThe ProblemViews coupled with other ViewsView Models know about ViewsNo separation of concernsNo testability
NavigationA SolutionSome Convention, Some ConfigurationLeverage [Event Aggregator | Message Bus]Leverage IOCCastle WindsorLeverage Reflection
NavigationConventionView Models all have default constructorsView Models have an optional Load method with 0 or 1 argument(s)
NavigationConfiguration – Key PlayersViewTargetsViewConfigurationViewControllerViewResultViewFactoryContainerConfiguration
NavigationConfiguration - ViewTargetsEnumerates the views which can be navigated toThe glue that sticks everything together
NavigationConfiguration - ViewConfigurationPairs a View with an optional View ModelAssociated to a ViewTarget in the IOC Container
NavigationConfiguration - ViewControllerThe only object that interacts with the UI frameworkListens for [Events | Messages] related to showing viewsGives view details to ViewFactory to be built
NavigationConfiguration – ViewFactoryResolves ViewConfiguration for the requested ViewDynamically creates the View and View ModelLoads the View Model with optional params using reflectionGives back a ViewResult
NavigationConfiguration – ViewResultResult of the dynamic build processHas the built View along with any relevant dataUsed by ViewController to show the View
Navigation[Demo]
Modal DialogsProblemModal dialogs stall tests[MessageBox| OpenFileDialog| PrintDialog]How can you leverage these and keep view models testable?
Modal DialogsOption 1Wrap them up!Define interfaceIMessageShowerDefine implementationMessageShowerWire up with IOC ContainerCastle WindsorTest with mocksRhinoMocks
Modal DialogsOption 2[Event Aggregator | Message Bus]Create [Events | Messages]Create class listen for [Events | Messages] that get publishedTest by verifying [Events | Messages] are publishedGood for “Fire and Forget”Breaks down if results are returned
Modal Dialogs[Demo]
Magic with ContentControlThe ProblemEditable View and Read Only ViewViews have identical layoutTextBox in for EditableLabel for Read Only
Magic with ContentControlA Solution – ContentControl!DataTriggersGive different presentation depending on data valuesWorks dynamicallyDataTemplateSelectorSelect which DataTemplate to useOnly works when initially bound
Magic with ContentControl[Demo]
Useful Tools[To make debugging suck less]
SnoopInspects visual treeShows propertiesShows eventsCan show 3D representation
Ad

More Related Content

What's hot (20)

Mvvm basics
Mvvm basicsMvvm basics
Mvvm basics
anusha kadimi
 
Acrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMAcrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVM
Dong-Ho Lee
 
Slide Presentation of MVP Pattern Concept
Slide Presentation of MVP Pattern ConceptSlide Presentation of MVP Pattern Concept
Slide Presentation of MVP Pattern Concept
Bayu Wijaya Permana Putra
 
MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)
Yaroslav Voloshyn
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelines
Qamar Abbas
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
Jitendra Kumar
 
MVVM Design Pattern NDC2009
MVVM Design Pattern NDC2009MVVM Design Pattern NDC2009
MVVM Design Pattern NDC2009
Jonas Follesø
 
MVVM - Model View ViewModel
MVVM - Model View ViewModelMVVM - Model View ViewModel
MVVM - Model View ViewModel
Dareen Alhiyari
 
Design Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVMDesign Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVM
Mudasir Qazi
 
Getting started with Xamarin forms
Getting started with Xamarin formsGetting started with Xamarin forms
Getting started with Xamarin forms
SolTech, Inc.
 
Dev-In-Town: Ultimate Data Visualization by Walter Wong
Dev-In-Town: Ultimate Data Visualization by Walter WongDev-In-Town: Ultimate Data Visualization by Walter Wong
Dev-In-Town: Ultimate Data Visualization by Walter Wong
Quek Lilian
 
Mvc, mvp, mvvm...
Mvc, mvp, mvvm...Mvc, mvp, mvvm...
Mvc, mvp, mvvm...
Yury Kisliak
 
MVVM with WPF
MVVM with WPFMVVM with WPF
MVVM with WPF
S V
 
No brainer
No brainerNo brainer
No brainer
Tanzim Saqib
 
MVC
MVCMVC
MVC
Iman Mehmandoust
 
Unit testing and MVVM in Silverlight
Unit testing and MVVM in SilverlightUnit testing and MVVM in Silverlight
Unit testing and MVVM in Silverlight
Devnology
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
Ahmed Emad
 
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
PROIDEA
 
Difference between Software Architectural pattern
Difference between Software Architectural patternDifference between Software Architectural pattern
Difference between Software Architectural pattern
Anuj J Pandey
 
Building xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvmBuilding xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvm
Mike Melusky
 
Acrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMAcrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVM
Dong-Ho Lee
 
MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)MVx patterns in iOS (MVC, MVP, MVVM)
MVx patterns in iOS (MVC, MVP, MVVM)
Yaroslav Voloshyn
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelines
Qamar Abbas
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
Jitendra Kumar
 
MVVM Design Pattern NDC2009
MVVM Design Pattern NDC2009MVVM Design Pattern NDC2009
MVVM Design Pattern NDC2009
Jonas Follesø
 
MVVM - Model View ViewModel
MVVM - Model View ViewModelMVVM - Model View ViewModel
MVVM - Model View ViewModel
Dareen Alhiyari
 
Design Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVMDesign Pattern - MVC, MVP and MVVM
Design Pattern - MVC, MVP and MVVM
Mudasir Qazi
 
Getting started with Xamarin forms
Getting started with Xamarin formsGetting started with Xamarin forms
Getting started with Xamarin forms
SolTech, Inc.
 
Dev-In-Town: Ultimate Data Visualization by Walter Wong
Dev-In-Town: Ultimate Data Visualization by Walter WongDev-In-Town: Ultimate Data Visualization by Walter Wong
Dev-In-Town: Ultimate Data Visualization by Walter Wong
Quek Lilian
 
MVVM with WPF
MVVM with WPFMVVM with WPF
MVVM with WPF
S V
 
Unit testing and MVVM in Silverlight
Unit testing and MVVM in SilverlightUnit testing and MVVM in Silverlight
Unit testing and MVVM in Silverlight
Devnology
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
Ahmed Emad
 
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
4Developers 2015: Twoja własna profesjonalna kontrolka WPF - tak jak robią to...
PROIDEA
 
Difference between Software Architectural pattern
Difference between Software Architectural patternDifference between Software Architectural pattern
Difference between Software Architectural pattern
Anuj J Pandey
 
Building xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvmBuilding xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvm
Mike Melusky
 

Viewers also liked (20)

Introduzione WPF
Introduzione WPFIntroduzione WPF
Introduzione WPF
Ercole Palmeri
 
Du an can ho 4S Riverside Linh Dong
Du an can ho 4S Riverside Linh DongDu an can ho 4S Riverside Linh Dong
Du an can ho 4S Riverside Linh Dong
dinhdk
 
Internet freedom
Internet freedomInternet freedom
Internet freedom
sibiyanto
 
2008 DREAM Initiative Establishing A NPO
2008 DREAM Initiative Establishing A NPO2008 DREAM Initiative Establishing A NPO
2008 DREAM Initiative Establishing A NPO
Stephanie Lindley
 
Scdsb information and communication technology initiatives january 2011 final
Scdsb information and communication technology initiatives january 2011 finalScdsb information and communication technology initiatives january 2011 final
Scdsb information and communication technology initiatives january 2011 final
jaccalder
 
Online Marketing for Small Businesses
Online Marketing for Small BusinessesOnline Marketing for Small Businesses
Online Marketing for Small Businesses
Amy Black
 
2008 Non Profits Best Practices
2008 Non Profits Best Practices2008 Non Profits Best Practices
2008 Non Profits Best Practices
Stephanie Lindley
 
HUERTO ECOLÓGICO EN EL COLEGIO
HUERTO ECOLÓGICO EN EL COLEGIO HUERTO ECOLÓGICO EN EL COLEGIO
HUERTO ECOLÓGICO EN EL COLEGIO
tapialoli
 
20110528美国小企业管理局简介introduction of american small business administration
20110528美国小企业管理局简介introduction of american small business administration20110528美国小企业管理局简介introduction of american small business administration
20110528美国小企业管理局简介introduction of american small business administration
宇 华
 
Administración de contenido
Administración de contenidoAdministración de contenido
Administración de contenido
Ministerio de Educacion
 
Allain behaviorism
Allain behaviorismAllain behaviorism
Allain behaviorism
guest4917eb
 
Introduction to the Nutrition Program Design Assistant
Introduction to the Nutrition Program Design AssistantIntroduction to the Nutrition Program Design Assistant
Introduction to the Nutrition Program Design Assistant
jehill3
 
2009 DREAM Construction Seminar Case Study - Silver Moon Plaza
2009 DREAM Construction Seminar Case Study - Silver Moon Plaza2009 DREAM Construction Seminar Case Study - Silver Moon Plaza
2009 DREAM Construction Seminar Case Study - Silver Moon Plaza
Stephanie Lindley
 
Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...
Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...
Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...
Ellh
 
Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...
Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...
Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...
jehill3
 
Presentation3
Presentation3Presentation3
Presentation3
Darijiro
 
Mobile Marketing - mobiele ontwikkelingen en oplossingen
Mobile Marketing - mobiele ontwikkelingen en oplossingenMobile Marketing - mobiele ontwikkelingen en oplossingen
Mobile Marketing - mobiele ontwikkelingen en oplossingen
Wieger Waardenburg
 
Velagroup
VelagroupVelagroup
Velagroup
Pablo Martin Boceta
 
Du an can ho 4S Riverside Linh Dong
Du an can ho 4S Riverside Linh DongDu an can ho 4S Riverside Linh Dong
Du an can ho 4S Riverside Linh Dong
dinhdk
 
Internet freedom
Internet freedomInternet freedom
Internet freedom
sibiyanto
 
2008 DREAM Initiative Establishing A NPO
2008 DREAM Initiative Establishing A NPO2008 DREAM Initiative Establishing A NPO
2008 DREAM Initiative Establishing A NPO
Stephanie Lindley
 
Scdsb information and communication technology initiatives january 2011 final
Scdsb information and communication technology initiatives january 2011 finalScdsb information and communication technology initiatives january 2011 final
Scdsb information and communication technology initiatives january 2011 final
jaccalder
 
Online Marketing for Small Businesses
Online Marketing for Small BusinessesOnline Marketing for Small Businesses
Online Marketing for Small Businesses
Amy Black
 
2008 Non Profits Best Practices
2008 Non Profits Best Practices2008 Non Profits Best Practices
2008 Non Profits Best Practices
Stephanie Lindley
 
HUERTO ECOLÓGICO EN EL COLEGIO
HUERTO ECOLÓGICO EN EL COLEGIO HUERTO ECOLÓGICO EN EL COLEGIO
HUERTO ECOLÓGICO EN EL COLEGIO
tapialoli
 
20110528美国小企业管理局简介introduction of american small business administration
20110528美国小企业管理局简介introduction of american small business administration20110528美国小企业管理局简介introduction of american small business administration
20110528美国小企业管理局简介introduction of american small business administration
宇 华
 
Allain behaviorism
Allain behaviorismAllain behaviorism
Allain behaviorism
guest4917eb
 
Introduction to the Nutrition Program Design Assistant
Introduction to the Nutrition Program Design AssistantIntroduction to the Nutrition Program Design Assistant
Introduction to the Nutrition Program Design Assistant
jehill3
 
2009 DREAM Construction Seminar Case Study - Silver Moon Plaza
2009 DREAM Construction Seminar Case Study - Silver Moon Plaza2009 DREAM Construction Seminar Case Study - Silver Moon Plaza
2009 DREAM Construction Seminar Case Study - Silver Moon Plaza
Stephanie Lindley
 
Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...
Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...
Εκπαιδευτικά Σενάρια και εφαρμογές για το Νηπιαγωγείο με τη χρήση του Διαδικτ...
Ellh
 
Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...
Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...
Maternal Anemia within Child Survival Grants Program:  Lessons Learned and a ...
jehill3
 
Presentation3
Presentation3Presentation3
Presentation3
Darijiro
 
Mobile Marketing - mobiele ontwikkelingen en oplossingen
Mobile Marketing - mobiele ontwikkelingen en oplossingenMobile Marketing - mobiele ontwikkelingen en oplossingen
Mobile Marketing - mobiele ontwikkelingen en oplossingen
Wieger Waardenburg
 
Ad

Similar to WPF with MVVM: From the Trenches (20)

Building an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernateBuilding an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernate
bwullems
 
Mvvm in the real world tccc10
Mvvm in the real world   tccc10Mvvm in the real world   tccc10
Mvvm in the real world tccc10
Bryan Anderson
 
Portable Class Libraries and MVVM
Portable Class Libraries and MVVMPortable Class Libraries and MVVM
Portable Class Libraries and MVVM
Andreas Kuntner
 
J2EE pattern 5
J2EE pattern 5J2EE pattern 5
J2EE pattern 5
Naga Muruga
 
Presentation Model
Presentation ModelPresentation Model
Presentation Model
Alex Miranda
 
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Mvc vs mvp vs mvvm  a guide on architecture presentation patternsMvc vs mvp vs mvvm  a guide on architecture presentation patterns
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Concetto Labs
 
Mvvm pattern
Mvvm patternMvvm pattern
Mvvm pattern
msarangam
 
MVVM presentation
MVVM presentationMVVM presentation
MVVM presentation
Inova LLC
 
Deep Dive: MVC Controller Architecture
Deep Dive: MVC Controller ArchitectureDeep Dive: MVC Controller Architecture
Deep Dive: MVC Controller Architecture
Chris Eargle
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non It
anicolay
 
TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0
Shiju Varghese
 
Fundaments of Knockout js
Fundaments of Knockout jsFundaments of Knockout js
Fundaments of Knockout js
Flavius-Radu Demian
 
PASSMN Summit 2009 Upgrade to SSAS 2008
PASSMN Summit 2009 Upgrade to SSAS 2008PASSMN Summit 2009 Upgrade to SSAS 2008
PASSMN Summit 2009 Upgrade to SSAS 2008
Dan English
 
Mvvw patterns
Mvvw patternsMvvw patterns
Mvvw patterns
eleksdev
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVM
Chris Bannon
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
Anton Krasnoshchok
 
Cloud computing Training Institutes in Pune : MindScripts
Cloud computing Training Institutes in Pune : MindScriptsCloud computing Training Institutes in Pune : MindScripts
Cloud computing Training Institutes in Pune : MindScripts
MindScripts SoftwareTestingPune
 
Salesforce Training in Pune - MindScripts
Salesforce Training in Pune - MindScriptsSalesforce Training in Pune - MindScripts
Salesforce Training in Pune - MindScripts
MindScripts SoftwareTestingPune
 
Cloud Computing Certification In Pimpri Chinchwad
Cloud Computing Certification In Pimpri ChinchwadCloud Computing Certification In Pimpri Chinchwad
Cloud Computing Certification In Pimpri Chinchwad
MindScripts SoftwareTestingPune
 
Salesforce Courses in Pune MindScripts
Salesforce Courses in Pune MindScriptsSalesforce Courses in Pune MindScripts
Salesforce Courses in Pune MindScripts
MindScripts SoftwareTestingPune
 
Building an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernateBuilding an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernate
bwullems
 
Mvvm in the real world tccc10
Mvvm in the real world   tccc10Mvvm in the real world   tccc10
Mvvm in the real world tccc10
Bryan Anderson
 
Portable Class Libraries and MVVM
Portable Class Libraries and MVVMPortable Class Libraries and MVVM
Portable Class Libraries and MVVM
Andreas Kuntner
 
Presentation Model
Presentation ModelPresentation Model
Presentation Model
Alex Miranda
 
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Mvc vs mvp vs mvvm  a guide on architecture presentation patternsMvc vs mvp vs mvvm  a guide on architecture presentation patterns
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Concetto Labs
 
Mvvm pattern
Mvvm patternMvvm pattern
Mvvm pattern
msarangam
 
MVVM presentation
MVVM presentationMVVM presentation
MVVM presentation
Inova LLC
 
Deep Dive: MVC Controller Architecture
Deep Dive: MVC Controller ArchitectureDeep Dive: MVC Controller Architecture
Deep Dive: MVC Controller Architecture
Chris Eargle
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non It
anicolay
 
TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0
Shiju Varghese
 
PASSMN Summit 2009 Upgrade to SSAS 2008
PASSMN Summit 2009 Upgrade to SSAS 2008PASSMN Summit 2009 Upgrade to SSAS 2008
PASSMN Summit 2009 Upgrade to SSAS 2008
Dan English
 
Mvvw patterns
Mvvw patternsMvvw patterns
Mvvw patterns
eleksdev
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVM
Chris Bannon
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
Anton Krasnoshchok
 
Cloud computing Training Institutes in Pune : MindScripts
Cloud computing Training Institutes in Pune : MindScriptsCloud computing Training Institutes in Pune : MindScripts
Cloud computing Training Institutes in Pune : MindScripts
MindScripts SoftwareTestingPune
 
Ad

Recently uploaded (20)

Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
SOFTTECHHUB
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
All Things Open
 
Artificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptxArtificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptx
03ANMOLCHAURASIYA
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Mike Mingos
 
Developing System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptxDeveloping System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptx
wondimagegndesta
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Top-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptxTop-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptx
BR Softech
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
SOFTTECHHUB
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
All Things Open
 
Artificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptxArtificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptx
03ANMOLCHAURASIYA
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Mike Mingos
 
Developing System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptxDeveloping System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptx
wondimagegndesta
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Top-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptxTop-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptx
BR Softech
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 

WPF with MVVM: From the Trenches

Editor's Notes

  • #4: UI Architect for 2 WPF projects leveraging MVVM.
  • #5: This is not about WPF or MVVM. This is about WPF WITH MVVM.
  翻译: