![]() |
Platforms, Frameworks & Libraries »
Windows Presentation Foundation »
General
Intermediate
License: The Code Project Open License (CPOL)
WPF: If Carlsberg did MVVM Frameworks Part 6 of nBy Sacha BarberIt would probably be like Cinch a MVVM framework for WPF |
C# (C#3.0, C#4.0), .NET (.NET3.0, .NET3.5), WPF, Architect, Dev, Design
|
||||||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
Last time we started looking at the what a Unit testing using Cinch.
In this article I will be looking at the following:
The demo app makes use of :
So I guess the only way to do this is to just start, so lets get going shall we, but before we do that I just need to repeat the special thanks section, with one addition, Paul Stovell who I forgot to include last time
Before I start I would specifically like to say a massive thanks to the following people, without whom this article and the subsequent series of articles would never have been possible. Basically what I have done with Cinch is studied most of these guys, seen what's hot, what's not, and come up with Cinch. Which I hope adresses some new ground not covered in other frameworks.
Mark Smith (Julmar Technology), for his excellent MVVM Helper Library, which has helped me enormously. Mark I know I asked your persmission to use some of your code, which you most kindly gave, but I just wanted to say a massive thanks for your cool ideas, some of which I genuinely had not thought of. I take my hat off to you mate.
Josh Smith / Marlon Grech (as an atomic pair) for their excellent Mediator Implementation. You boys rock, always a pleasure
Karl Shifflett / Jaime Rodriguez (Microsoft boys) for their excellent MVVM Lob tour, which I attended, well done lads
Bill Kempf, for just being Bill and being a crazy wizard like programmer, who also has a great MVVM framework called Onyx, which I wrote an article about some time ago. Bill always has the answers, to tough questions, cheers Bill.
Paul Stovell for his excellent delegate validation idea, which Cinch uses for validation of business objects
ALL of the WPF Disciples, for being the best online group to belong to IMHO
Thanks guys/girl, you know who you are
In some ways this article will be a bit of strange one, as I have already covered everything you need to know about how to construct the demo app or any other MVVM based app (of course using the Cinch framework), so I will not be covering any code in this article as I think that has been pretty much covered by all the previous articles.
What this article shall concentrate on is what the demo app looks like and how it is made up, of course while doing that I will explain how and why certain Cinch classes/objects are used and why certain design ideas were followed, but if you are expecting a full run through of the code, this article is not the place for that, you should refer to the previous articles for that.
I am hoping that by now you are armed with enough Cinch know how to dismantle the demo app by yourselves and see what is going on in it, remember you have all the Cinch articles prior to this one to help you out.
So far I have written 5 other Cinch articles, and believe it or not there has not been one screen shot of the demo app, which is largely down to the fact that I have been explaining the framework and how to test with it, where as this article talks about the look and structure of the demo app, so without further ado we need to see some screen shots. So let's have a look at some screen shots shall we:
The general idea behind the demo app is quite a simple one. The following function points explain how it should all work:
So that's what the UI should do, and guess what it actually does do all of this. So how do we go about covering this little lot?
Well we have covered it all before, so I think the best thing to do it list the function points above and then I will simply point you at where these things were discussed in previous Cinch articles.
This is achieved using a TabControl whos items are bound to a ObservableCollection<ViewModelBase>
as discussed within this previous Cinch article section:
As Item 1, but the checking to see whether there already an open Add/Edit Customer tab is done via the Mediator, as discussed within this previous Cinch article section:
CinchII.aspx#MediatorMessaging
As Item 2
As Item 2, but the editing of the Customer object is achieved using the IEditableObject
interface, as discussed within this previous Cinch article
section:
As Item 2
This is done by the use of the IDataErrorInfo interface, as
discussed within this previous Cinch article section:
The editing of the Customer object is achieved using the IEditableObject
interface, as discussed within this previous Cinch article
section:
The errors are displayed as stated in Item 6 using the IDataErrorInfo
interface. Handling the opening of the popup is done using the IUIVizualiserService,
as discussed within this previous Cinch article section:
The editing of the Customers Order object is achieved using the IEditableObject
interface, as discussed within this previous Cinch article
section:
As Item 7
In the subsequent articles I will be showcasing it roughly like this
That is actually all I wanted to say right now, but I hope from this article you can see how Cinch made the development of the demo app, er well a "Cinch".
As always votes / comments are welcome.
General
News
Question
Answer
Joke
Rant
Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads.
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 4 Sep 2009 Editor: |
Copyright 2009 by Sacha Barber Everything else Copyright © CodeProject, 1999-2010 Web22 | Advertise on the Code Project |