With Microsoft WPF technology, a new pattern is born and is going to be called MVVM (Model View ViewModel). This pattern is an hybrid from the old MVC and the old MVP patterns. Why a new pattern for the presentation?
- First of all WPF technology is giving us a kind of technology that can completely change the approach to design and code the UI. With the VMMV we can completely design an agnostic UI that doesnâ€™t know the Model we are going to pass to it.
- Recycle, I will show you in this tutorial how to simply convert a WPF application into a Silverlight app.
- Better delegation and better design for a real n-tier application. In this example we will use LinqToSQL and WPF to build a complete n-tier application with the VMMV.
- Something that I do not like, TESTING THE UI!! Yes we can test the UI with WPF and VMMV combination.
- Abstractation. Now the view can be really abstract and you can use just a generic.xaml file and then give a style template to your model.
This is the schema (in my opinion) on how it should work an application with WPF and the VMMV implementation:
- MODEL: anyone that has already worked on an n-tier application knows what it is. The model is the group of entities that will be exposed.
- VIEW: the view is the graphical code XAML used to generate the UI, nothing more then that.
- VIEWMODEL: the model for the view â€¦ or â€¦ the view for the model?! Anyway is a model of the view.
Before starting this tutorial I suggest you to download:
- Visual Studio 2008 SP1 and NET Framework 3.5 SP1
- The complete AdventureWork database template for SQL
- SQL Express 2008
The next tutorial will show you how to create a simple DAL layer with LinQtoSQL and how we can implement the Unit of Work pattern to build a simple but solid data layer for our application.
You can also download the Visual Studio template here.