SlideShare uma empresa Scribd logo
1 de 15
Introduction To Useful WPF Demystifying The Model-View-  ViewModel Design Pattern (MVVM) Burke Holland
About Me A working guy SharePoint, ASP.NET, WPF Adobe Flex?
WPF Overview Windows Presentation Foundation “a graphical subsystem for rendering user interfaces in Windows-based applications” Its all about graphics GDI subsystem is old Taking advantage of advanced effects – DirectX Gradients Transparency Animation
Why You Should Use It Design Much more flexibility in the UI Less need for 3rd party controls Segmentation between designer and developer Programming Model Code behind Support for new patterns PRISM MVP MVVM
What’s The Difference XAML based design vs. declarative object design Like HTML for Windows Forms Windows And UserControls
You already know how to do it Same file/code behind model Many of the same UI controls with different or similar properties Its still just .NET
Visual Studio vs. Expression Blend Why is there a new IDE? You do not need both But it really helps Other Tools KXAML XAMLPAD
WPF vs. Silverlight The difference is accessibility The drawbacks to Silverlight Data Access Limited access to the framework Not FULLY MVVM capable – yet No commanding
WPF Out-Of-The-Box Demo App
MVVM Problems with the traditional model Tight coupling Less flexible More difficult to maintain and implement Model-View-ViewModel Model-View-Presenter 2005 John Grossman
Understandable Definition Model = Data View = WPF Forms ViewModel Think of it as your code-behind on steroids
Why Now “Databinding Rocks!” – Mike Eaton Commanding Data Modeling Tools
Refactor The Demo
Important MVVM/WPF Concepts Single Responsibility Principle Dependency Injection Static Resources
Resources WPF/MVVM Josh Smith (MSDN Article) http://msdn.microsoft.com/en-us/magazine/dd419663.aspx Shawn Wildermuth (MDSN Article) http://msdn.microsoft.com/en-us/magazine/dd458800.aspx

Mais conteúdo relacionado

Mais procurados

Silverlight: Designer and Developer Workflow
Silverlight: Designer and Developer WorkflowSilverlight: Designer and Developer Workflow
Silverlight: Designer and Developer Workflow
roberto.design
 
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
MSDEVMTL
 
Combining HTML5 with MVC framework to simplify realtime collaboration for we...
Combining HTML5 with MVC framework to simplify  realtime collaboration for we...Combining HTML5 with MVC framework to simplify  realtime collaboration for we...
Combining HTML5 with MVC framework to simplify realtime collaboration for we...
Gopikrishnan Sasikumar
 
Architecting For Ux
Architecting For UxArchitecting For Ux
Architecting For Ux
Josh Holmes
 

Mais procurados (17)

Silverlight: Designer and Developer Workflow
Silverlight: Designer and Developer WorkflowSilverlight: Designer and Developer Workflow
Silverlight: Designer and Developer Workflow
 
What Tools Do You Use For Product Management Discussion Notes
What Tools Do You Use For Product Management Discussion NotesWhat Tools Do You Use For Product Management Discussion Notes
What Tools Do You Use For Product Management Discussion Notes
 
Microsoft chatbots - Conversations as a Platform
Microsoft chatbots - Conversations as a PlatformMicrosoft chatbots - Conversations as a Platform
Microsoft chatbots - Conversations as a Platform
 
Mvc ppt
Mvc pptMvc ppt
Mvc ppt
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
 
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
 
Combining HTML5 with MVC framework to simplify realtime collaboration for we...
Combining HTML5 with MVC framework to simplify  realtime collaboration for we...Combining HTML5 with MVC framework to simplify  realtime collaboration for we...
Combining HTML5 with MVC framework to simplify realtime collaboration for we...
 
Wireframes
WireframesWireframes
Wireframes
 
Architecting For Ux
Architecting For UxArchitecting For Ux
Architecting For Ux
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVM
 
Live Cycle ES2 News From Adobe MAX
Live Cycle ES2 News From Adobe MAXLive Cycle ES2 News From Adobe MAX
Live Cycle ES2 News From Adobe MAX
 
Model view view model
Model view view modelModel view view model
Model view view model
 
dot net
dot netdot net
dot net
 
.NET Career Direction
.NET Career Direction.NET Career Direction
.NET Career Direction
 
Composite C1 Presentaion
Composite C1  PresentaionComposite C1  Presentaion
Composite C1 Presentaion
 
MVC
MVCMVC
MVC
 
Silverlight 4 @ MSDN Live
Silverlight 4 @ MSDN LiveSilverlight 4 @ MSDN Live
Silverlight 4 @ MSDN Live
 

Semelhante a Introduction To Useful Wpf

Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Frank La Vigne
 
Mvvm pattern
Mvvm patternMvvm pattern
Mvvm pattern
msarangam
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them All
Frank La Vigne
 

Semelhante a Introduction To Useful Wpf (20)

NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
WPF
WPFWPF
WPF
 
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
 
MSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business AppsMSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business Apps
 
Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight Seminar
 
OpenDolphin with GroovyFX Workshop at GreachConf, Madrid
OpenDolphin with GroovyFX Workshop at GreachConf, MadridOpenDolphin with GroovyFX Workshop at GreachConf, Madrid
OpenDolphin with GroovyFX Workshop at GreachConf, Madrid
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
 
Php Framework
Php FrameworkPhp Framework
Php Framework
 
Php framework
Php frameworkPhp framework
Php framework
 
Mvvm pattern
Mvvm patternMvvm pattern
Mvvm pattern
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7
 
WPF & Silverlight Intro
WPF & Silverlight IntroWPF & Silverlight Intro
WPF & Silverlight Intro
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
 
Visual Studio 2012 introduction
Visual Studio  2012 introductionVisual Studio  2012 introduction
Visual Studio 2012 introduction
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them All
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-ee
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
MVC & CodeIgniter
MVC & CodeIgniterMVC & CodeIgniter
MVC & CodeIgniter
 
Building web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm patternBuilding web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm pattern
 
Intro to VS 2010 & .Net 4.0
Intro to VS 2010 & .Net 4.0Intro to VS 2010 & .Net 4.0
Intro to VS 2010 & .Net 4.0
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Introduction To Useful Wpf

  • 1. Introduction To Useful WPF Demystifying The Model-View- ViewModel Design Pattern (MVVM) Burke Holland
  • 2. About Me A working guy SharePoint, ASP.NET, WPF Adobe Flex?
  • 3. WPF Overview Windows Presentation Foundation “a graphical subsystem for rendering user interfaces in Windows-based applications” Its all about graphics GDI subsystem is old Taking advantage of advanced effects – DirectX Gradients Transparency Animation
  • 4. Why You Should Use It Design Much more flexibility in the UI Less need for 3rd party controls Segmentation between designer and developer Programming Model Code behind Support for new patterns PRISM MVP MVVM
  • 5. What’s The Difference XAML based design vs. declarative object design Like HTML for Windows Forms Windows And UserControls
  • 6. You already know how to do it Same file/code behind model Many of the same UI controls with different or similar properties Its still just .NET
  • 7. Visual Studio vs. Expression Blend Why is there a new IDE? You do not need both But it really helps Other Tools KXAML XAMLPAD
  • 8. WPF vs. Silverlight The difference is accessibility The drawbacks to Silverlight Data Access Limited access to the framework Not FULLY MVVM capable – yet No commanding
  • 10. MVVM Problems with the traditional model Tight coupling Less flexible More difficult to maintain and implement Model-View-ViewModel Model-View-Presenter 2005 John Grossman
  • 11. Understandable Definition Model = Data View = WPF Forms ViewModel Think of it as your code-behind on steroids
  • 12. Why Now “Databinding Rocks!” – Mike Eaton Commanding Data Modeling Tools
  • 14. Important MVVM/WPF Concepts Single Responsibility Principle Dependency Injection Static Resources
  • 15. Resources WPF/MVVM Josh Smith (MSDN Article) http://msdn.microsoft.com/en-us/magazine/dd419663.aspx Shawn Wildermuth (MDSN Article) http://msdn.microsoft.com/en-us/magazine/dd458800.aspx