I’m very pleased to announce a one day training event, Creating WPF Line of Business Applications (M-V-VM) Using C# and VB.NET. This is your opportunity to spend a day learning the WPF UI Design Pattern, Model-View-ViewModel.
Jaime Rodriguez, Beth Massi and I will be conducting the training and lab time.
Registration
http://acteva.com/booking.cfm?bevaID=174444
When
Saturday, Jan 31 2009 from 8:00am – 6:00pm
Location
Hewlett Packard Building 48
19447 Pruneridge Ave., OakRoom
Cupertino, CA 95014
Minutes from San Jose International airport.
Bring
For the labs, bring your laptop with Visual Studio 2008 and .NET 3.5 SP1 installed.
Abstract
This all day training event is designed to teach developers how to create WPF Line of Business Applications that can easily be Unit Tested. The Model-View-ViewModel (M-V-VM) pattern will be used as a guideline for the application structure. Many aspects of WPF LOB programming will be covered including validation, logging, UI entry error notification, exception handling, layered application architecture, Unit Testing and a short introduction to memory profiling.
At the end of the day, developers should have a good grasp on M-V-VM and how to create their own testable WPF LOB applications.
For the lab time, we will provide an application walkthrough that attendees can complete during the lab time. Walkthrough will be in C# and VB.NET.
Additionally, if you have a current WPF application and want to move it to M-V-VM bring it with you on your laptop. You can get started on the project during the lab. This way you’ll have hands on help to get to up and running.
Sponsored By
Special Thanks To
I want to thank Mathias Brandewinder, Oliver Nguyen, Doug Skinner and Bruno Terkaly for their help in organizing this event. A lot of behind the scenes work goes into event organizing and I’m thankful for their time and expertise.
I also want to thank Hewlett Packard for providing a wonderful venue for this training day.
Training Day In Your Area
If you are interested in hosting a training day or days in your area please contact me by leaving a message on this post and I’ll contact you directly.
Hope to see your there, and have a great day!
Just a grain of sand on the worlds beaches.




January 8, 2009 at 9:14 am |
What is the likelihood that this could be recorded and published? I’m on the wrong coast, but would love to be there.
January 8, 2009 at 9:19 am |
Ryan,
I’m not sure about the logistics of recording this day. Sorry I don’t have a definate answer for you at this time.
Perhaps we can address this need in our next event.
I will look into this, but can’t commit.
Cheers,
Karl
January 8, 2009 at 9:34 am |
Have fun! I wish the event was happening on a weekend that I could be there to help out.
January 8, 2009 at 10:45 am |
My team and I would also love to be there but wouldn’t be able to make it. I’m just chiming in that we’d also be very thankful if you found a way to record the session.
January 8, 2009 at 10:54 am |
I would need to gauge the community interest around here, but if you all ever wanted to come out to the east coast, mid-atlantic region, my group (Hampton Roads .NET Users Group) would be interested in hosting an event.
I’ll take a poll at the next group meeting and see what people would think.
January 8, 2009 at 10:55 am |
Hi Carl. The Arizona.NET User Group would love to sponsor an event like this in PHX. I can be reached at …
January 8, 2009 at 12:17 pm |
Hi Carl,
The Southern California Community and the San Diego .Net User Group would be interested in sponsoring an event like this. We typically do about 2 events like this per year and this would be a great one. You can contact me at ….
Cheers and good luck with the event!
January 9, 2009 at 7:33 am |
Hi Carl,
Is there any chance you record the session so that we can benefit from overseas (Europe !).
I’d like to be there but it seems to be a little bit far from here :p
January 9, 2009 at 7:35 am |
Jérémy,
If we can’t record this day, we will plan on recording a futre day for sure.
I was speaking with people yestday so we will see.
Best to you!
Karl
January 12, 2009 at 4:26 am |
Hi Karl,
Since you can’t record this session will you be able to provide the source for all the sessions?
Regards,
Johan
January 12, 2009 at 8:49 am |
Johan,
We can post all source and materials. Still looking into recording.
Cheers,
Karl
January 12, 2009 at 8:50 am |
This is great stuff. I wish i could be there. Will the sample code or power point presentations will be available for download ?
Karl, I am a regular reader of your blog and agrees with your concepts of developing lob apps in wpf or silverlight. But i have one big concern over here for any lob application reports are the vital part. But there are no standard controls for it neither in wpf nor silverlight 2.0
Can you please address this issue and show us the work around that can be done.
January 12, 2009 at 8:53 am |
goldytech,
Thank you for your kind works and great question.
The application I’m working on will use SQL Server Reporting Services for its reports. SSRS reports are very easy to use with WPF.
Cheers,
Karl
January 13, 2009 at 4:53 am |
[...] in Cupertino, California, will be, or can be on Saturday January 31, Karl Shifflett announced a Training Day: Creating WPF Line of Business Applications (M-V-VM) Using C# and VB.NET… oh, another WPF link
And for all you loyal SilverlightCream readers that don’t get your [...]
January 13, 2009 at 10:04 am |
Thank you for this training opportunity Karl! I’ll be flying in from PA to attend and I can’t wait!
-Brent
January 13, 2009 at 10:06 am |
Brent,
Looking forward to meeting you. So glad you can make it.
Cheers,
Karl
January 14, 2009 at 9:49 pm |
This looks awesome. I am trying to see if I can swing a flight from WI to come to it. Do I have to worry about it getting canceled or rescheduled between now and the 31st?
Thanks!
–
Christopher
January 15, 2009 at 8:26 am |
Christopher,
We are on for sure. Glad you can make it!
Cheers,
Karl
January 19, 2009 at 3:32 pm |
[...] on MVVM and more. If you’d like to hear Karl go into more depth on MVVM, check out his upcoming training schedule. Events possibly coming to an area near you. If not, maybe we can convince him to take me along [...]
January 19, 2009 at 7:33 pm |
[...] you’d like to hear Karl go into more depth on MVVM, check out his upcoming training schedule. Events possibly coming to an area near you. If not, maybe we can convince him to take me along [...]
January 26, 2009 at 1:28 pm |
[...] up the good work Karl. Looking forward to the training this Friday! Share and Enjoy: These icons link to social bookmarking sites where readers can [...]
February 1, 2009 at 8:59 am |
Karl,
Thanks for all your excellent work – it’s so valuable to the dev community! I’m an east-coaster as well (Cleveland .NET sig) and hope you can make it out this way some time.
Another vote for a recording. That would be too sweet!
I’ve been struggling with getting the WPF DataGrid hooked up to an IsSelected event so I might get the selected row in the ViewModel. Any chance of sneaking in something like this in your example? Seems like this should be a simple thing but we’ve been trying to figure it out for several days now.
Again – Thanks For ALL!!
regards,
Bill
February 2, 2009 at 7:57 am |
Bill,
I’ll see what I can do.
So to be sure, you want the ViewModel to maintain the state of the Grid to know which row is currently selected?
Do you need to select a row from the ViewModel?
For my informaiton, if the ViewModel knows which row is currently selected, what will you use that information for?
Cheers,
Karl
February 2, 2009 at 9:33 am |
Hi Karl,
Yes, we want the ViewModel to maintain the state of the DataGrid so we will know what row is selected rather than having that code in the code-behind. I don’t believe that we need a way to select a row in the ViewModel, but wouldn’t that just involve setting up for 2 Way Binding instead of 1 Way?
If the ViewModel knows what row is selected, then we could bind a different View to that ViewModel to show that row information – like a Master-Detail in two separate Views. Our idea is to use a SolutionExplorer type of Docking Window as a Properties window to display the single row of data that is selected in the grid. Or is there perhaps a better way of doing this?
Another thing that we might want to implement is when you select a row in the DataGrid, we want to be able to expand a list (or another grid) of data that is contained in that object. This might be something like a collection of customers that have a list of orders. Something like that. Please let me know if this makes sense or if I’m still thinking too much Windows Forms like. We’re all struggling with that one.
thanks!
Bill
February 2, 2009 at 1:26 pm |
Karl, thanks to Jaime and you for presenting this session.
You guys were fantastic!
February 3, 2009 at 9:44 pm |
laughing stock
Thank you very much. It was our pleasure and so glad you came.
Cheers,
Karl
February 2, 2009 at 7:11 pm |
Hi Karl,
I attended the Cupertino and it was *excellent*. Thank you and Jaime and Beth for making it happen.
I didn’t have a pen in my 12 pound laptop-bag-of-crap (!) so I couldn’t leave you detailed feedback:
• I thought the pace was just right — pretty fast, but kept us alert.
• I enjoyed your pragmatic approach to implementing MVVM, such as including a reference to the Model in the ViewModel accessible by the View for databinding rather than adding an extra wrapper around the model to placate the purists.
• I think MVVM is an important pattern that should be supported as a VS solution type.
• It might help the adoption of Blend if the various MS demos wet out of their way to use it in the course of developing an app. It’s unclear to me at what point in development it makes sense to “switch” to Blend, so I never get very familiar with Blend. For some teams I guess this becomes a “how and when do I share my XAML with a designer?” issue. Are there best practices in organizing resources and styles that make this easy and productive? (Sorry, I’m a bit off-topic here.)
• I like the lab and want to point out one small issue: On page 12 of the C# handout you point out that VS will add the folder name to the new class’s namespace and this must be removed. We need this comment on page 5 too, since the reader makes it all the way to page 12 with the wrong namespace for LabContact.
By the way, I was one of the lucky winners of Expression Suite. In case my email was not legible it is: . I can really use this. Thanks!
Regards,
+tom
February 2, 2009 at 7:59 pm |
Tom,
Thank you very much for your feedback. Jaime and I will review this and take action and pass your comments along.
Have a super day!
Karl
February 3, 2009 at 3:28 am |
@Tom,
I was also at the Cupertino training, and agree with you it was definitely excellent.
Some tips for the designer/developer workflow. The sooner you can get the designers involved in the project the better. Having an integrator in the team really helps. I would highly recommend reading http://blog.galasoft.ch/archive/2008/04/11/de-wpf-integratio-about-wpf-integration.aspx for more info on this. Laurent hits just about everything you asked about.
As for Blend, it’s a great tool. As a developer, probably the biggest thing you need to know blend for is simply making sure that your views open properly in Blend. Following MVVM, they most likely always will, but you never know. Nothing makes me more angry than some XAML that simply won’t open in Blend. And I’m a developer, so I could fix the issue….good luck with the designer. He/she’s just going to send it back to you.
I hope that helps,
Brent
February 3, 2009 at 9:34 pm |
Brent,
I’ll pass this information along, thank you!
Have a super day!
Karl
February 4, 2009 at 2:24 pm |
Hi Karl,
Kudos and thanks to you and Jamie for a great M-V-VM presentation in Cupertino last Saturday !!
Can we get a link to the PPT slides that you and Jamie used ?
Thanks,
Evan Lim
February 6, 2009 at 4:28 am |
Evan,
My slides are at:
http://karlshifflett.wordpress.com/table-of-contents/education-day-creating-wpf-line-of-business-applications-m-v-vm-using-c-and-vbnet
Jaime will be posting his on his blog soon.
Cheers,
Karl
February 10, 2009 at 8:13 am |
Karl,
Thanks much for the presentation material and the code. Excellent stuff! Sure wish I could have made it out West to see you guys. I’m assuming that none of your presentations got recorded, right? Are you guys planning on coming out East and making a similar presentation? I know I’d sure make it there to see it!
We had emailed a bit back about the ViewModel and using a Master-Detail of a ObservableCollection where the Master is like a list of Customers and some of their info and then the Details is bound to that same collection as the Current or Selected row. I’m still struggling with that one. If I make the Details a ContextControl then I can put the data in a DataTemplate and show it vertically like the properties window in VS2008. but it’s not editable. I’m not sure if there is some way to make this data editable or if I should be using a different kind of control (the ContentControl supports the Selected Row when bound to a collection which is pretty nice). Any thoughts would be greatly appreciated!
regards,
Bill
February 10, 2009 at 3:00 pm |
Karl,
We figured out the problem with the Master-Detail data not being editable. We were using a TextBlock instead of a TextBox. Using the binding with the ContextControl is awesome and does just what we want.
thanks!!
Bill
February 11, 2009 at 9:01 am |
Bill,
I’m glad you got it sorted out. Sorry It’s taken me a few days to get back to you, I’ve been burried.
Best to you always,
Karl
April 2, 2009 at 1:48 am |
[...] our m-v-vm training sold out, and most of the march trainings were filled within days, I am delighted to announce our new series [...]