MVMV Training combines in-depth written guidance with full-featured how-to code examples. MVVM Training is a Visual Studio 2010 Feature Extension and is part of the In the Box training series by Karl Shifflett.
Excellent MVVM training and guidance, there are so many misleading MVVM articles out there and Karl's articles are clear and concise. It would be nice if the samples were in VB.NET too, I've been looking at Ocean which seemed like a nice light framework, Prism seems too much although you don't have to use the whole framework, I think lot of people looking at the MVVM design pattern for the 1st time get caught up in the framework element.
Karl, Is the version of Ocean (V3) planned for 2010 going to be released or have you decided to leave Ocean as it is, I gather your involved in Prism now ?
Anyway, keep up the great work, MVVM is a nightmare TBH, I thought evaluating ORM's was a pain but MVVM has been driving me nuts :) although I recognised a while back that code behind with WPF for large scale LOB apps can become un-maintainable although I don't see why code that purely is for UI control extension (such as a Telerik carousel which requires code behind to get the behaviour you want) would ever need to be in the ViewModel.
The in-the-box tool is awesome. Is there a way for me to develop my own lessons? I was thinking it would be a great tool for my company as a ramp-up as we bring on new devs. Is there any documentation on how to develop or plans to release?
Thank you for your kind remarks.
I used this tool:
There are links to docs and videos on this page. Basically you use Word to author the docs and use Instant Feature Builder or Feature Builder to create the Feature Extension.
Best to you,
I think the screenshot regarding the IntelliSense popup illustration is incorrect because it seems that the related explanations below do not match to the screenshot. Please correct me if i am wrong.
This page of the training illustrate a thought process.
When I look at the screenshot, I see, what is listed in the text below.
The text is not describing the screenshot, its describing how I think about the contents of the screenshot.
In Germany dates have the format d/m/Y. This leads to a couple of errors in the application, because when you use the datepicker and choose a date like 13.1.2010 then the application will highlight it as an invalid date. Since i am pretty new to WPF i don't even know where to fix this so that the validation understands the current cultures date format.
This is just my personal reaction... I find the space to view the training documentation somewhat limited on my laptop when it is displayed in panes inside VS.
I think I'd rather have it delivered in a conventional CHM file like we get with Prism. Then I could flip back and forth between a maxmized CHM reader and a maximized VS2010.
Good feedback. Agree the desktop experience is better with respect to screen space. However, you can make the reading window the same side as the code window and swithc back and forth and not loose the navigator functionality.
FYI: I have provided a .mht file for reading outside of VS. Goto my blog and check the downloads at the bottom.
After getting more accustomed to using the different panes of the "in-the-box" system tonight, I'm retracting my complaint about the space :). If I dock the "Guidance Browser" where I dock the source code files in the center of VS then it seems to be big enough, even on my laptop.
I think the "in-the-box" integration with VS is really genuinely interesting and innovative. Thanks for all the work on this.
I've just started to go through the material, but the content looks good. I'll give more feedback as I get more into it.
Ok, given your pointer, I found the download link for the written content as "one-big-MHT-file" (at the end of your 2010-Nov-07 blog post next to the "Skydrive" label). I think it's good to provide the content in both formats. It's nice to be able to quickly scroll around the standalone version in a full-size IE window (or maybe on an iPad/WP7 device).
Another suggestion. Since you already have the written content in HTML/MHT form, I think it would be good to expose that as HTML on the web somewhere. That way search engines will index it and people will start finding it in MVVM-related searches. You don't want that written content only hidden "in the box". But maybe you already are planning to expose it like that.
I realize the concepts are basically the same, but I was curious if you are planning a Silverlight version of the solution. I'm primarily interested in Silverlight. Having all the materials in SL form is more attractive to me personally than having to try to do the conversion(s) myself. Just curious.
This almost killed me. I did 90% of this at nights and weekends, one Sunday I did 23 hours straight.
That said, MVVM is implemented in WPF and Silvelight the same if you use the Blend behaviors.
Feedback taken, for my next In the Box, I'll be doing Prism. I'll be sure to have both WPF
The project for itself is a breakthru and well done Karl for the great job explaining everything so nicely, and everything linked up in-project all in the IDE framework!
The drawbacks of MVVM (and of WPF in general - no RIA) for my opinion is the lack of templates in Visual-Studio, as well as the lack of ViewModels generator.
I think Microsoft should invest in integrating WCF RIA Service (with all its affilates) with WPF, then, from the generated client-side entities, the IDE can generate the appropriate ViewModel + View (i.e. the ViewModels should be available in the DataSource.
As for now, MVVM involves too much coding, and althogh I see it very important to get prepared to the (hopefully) upcoming goodies in the WPF-MVVM field, I don't think I would want to go MVVM in my projects.
I am gonna have to wait till MVVM is supported OUT-THE-BOX :) in the IDE and as I said, this should be against an Entity-Framework WCF RIA Service.
If there any plans please lemme hear your input (Or if there is not going to be, tell me now, so I quickly run away from this MVVM thingy and don't invest in it a minute).
For templates, they can be created in a few mintues or you can use the templates that MVVM Light has. Links in the resources chapter.
MVVM is a pattern that is not implementation specific, which is a VERY good thing.
Like any pattern, use what works for you. Currently the MVVM pattern has very wide acceptance in the WPF, Silverlight and WP7 communities. But again, you need to do what works for you and I very much respect that.
Thank you again for the feedback and have a super day,