Last Updated: 1-28-2009
WPF & Silverlight Line of Business UI Design Pattern Home Page
This page is a work in progress and will be updated each time a new article is added. My goal is to provide an introduction, several simple examples and progress to a series of WPF LOB scenarios where M-V-VM is used. Scenarios like, dialog box, simple form, master – detail, complex master detail with several embedded ViewModels, etc.
I use the common terms Model-View-ViewModel, M-V-VM and MVVM so that Internet surfers can easily locate this material using those names. I like to think that this material extends past the boundaries of the M-V-VM pattern and provides good guidance for authoring WPF LOB applications. Once this series is complete, I will go back and finish the WPF Business Application Series and use this material as a foundation to build some cool applications for that series.
M-V-VM is a guideline, a pattern that developers can elect to use when authoring WPF applications. I like this pattern because it makes unit testing your application very simple. In fact, John Gossman’s litmus test for M-V-VM is that the application can be run without the UI. I also like this pattern because it is easy to use once the developer understands it.
Most of you that know me, know that I’m not a purest by any stretch of the imagination. I’m much more interested in writing testable, bug free, maintainable over time code than adhering to a text book version of a pattern. As a rule, I would much rather author simple code that works and is maintainable than write complex code that only a few can understand.
When looking at a software solution, it’s best to understand not only the code, but also why the developer wrote the code the way they did.
For the purpose of this series my development context and driving goals are:
- WPF Line of Business
- Silverlight Line of Business
- Software development shop is small with limited resources
- UI and libraries must fully testable
- Application users are domain experts but are not computer power users
- Application is transactional in nature (OLTP)
- Application stores data in a SQL Server Database
- Application can connect to the database across the Internet or connected to a local SQL Server Database
- Application will be deployed in a multi-user environment
- Application must never allow the user to perform an action that will cause loss of data or to persist invalid data
- Application must have clean UI that clearly explains error conditions and corrective action
My Articles
I started in the middle of this list and will be filling in the introduction material soon.
Note: I have reorganized the article listing. I’ve added a new application and the first article for it. The application uses the Ocean Framework and the source for the framework is included in the application. The Ocean Code Generation piece will be coming soon.
I’ve decided to place all the source in one post, this way when I update it I only have to update one location.
- Introduction to M-V-VM
- WPF Apps With The Model-View-ViewModel Design Pattern
- Internationalized Wizard in WPF using M-V-VM
- Exploring a Model-View-ViewModel Application; WPF Password Manager, Cipher Text
- MVVM for WPF Line of Business Applications
- New WPF Line of Business – Demo Application Source (contains Ocean Framework source.)
- New WPF Line of Business – Introduction
- ICommand & RelayCommand
- Input Validation – UI Exceptions & Model Validation Errors
- Logging/Error Reporting/Modal Dialogs
- Validation
- Testing
- …
- Silverlight M-V-VM
- …
References
Hope you have a great day!
Just a grain of sand on the worlds beaches.


