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.
This is great! Congrats, i'am eager for the In The Box Prism...
I have an issue when click a hyperlink, my default browser is Chrome (in windows and in VS), but the page opens in internet explorer. What can i do to open it in my default browser?
Thank you for reporting this.
What you are seeing is at least functionally correct.
The content in In the Box is being displayed in the Internet Explorer Browswer control. So, when a hyperlink is clicked inside the content, its navigating to another page.
One advantage of using this technique is that I can specify the TARGET property on the anchor tag. This prevents multiple browser windows from opening up after repeated clicks of internal hyperlinks.
I hope this explains at least why this is happening.
Thank you for the feedback and have a super day,
Thank you for the clarification, I think it would be worthwhile to correct the following line in the "In the box" node chapter:
"When a hyperlink to the Internet is clicked, the default browser will open and navigate to the target Url."
New to VS & .NET, but experienced with Java. Installed VS2010 Pro on XP vm at work; did the install tweaks for XP as instructed, did the install with no problems.
Started the video as a step-by-step intro, but when the project loads in VS, it gives 2 errors, both related to the file MainWindow.xaml as shown below. Hope you can help, and thanks for your time.
Error 1 Unable to load the metadata for assembly 'Acme.Entities'. This assembly may have been downloaded from the web. See http://go.microsoft.com/fwlink/?LinkId=179545. The following error was encountered during load: Could not load file or assembly 'Acme.Entities, Version=188.8.131.52, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Error 2 Unable to load the metadata for assembly 'Acme.Basic'. This assembly may have been downloaded from the web. See http://go.microsoft.com/fwlink/?LinkId=179545. The following error was encountered during load: Could not load file or assembly 'Acme.Basic' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
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,