Training Day: Creating WPF Line of Business Applications (M-V-VM) Using C# and VB.NET

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

Bay.NET User Group

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.

36 Responses to “Training Day: Creating WPF Line of Business Applications (M-V-VM) Using C# and VB.NET”

  1. cromwellryan Says:

    What is the likelihood that this could be recorded and published? I’m on the wrong coast, but would love to be there.

  2. Karl Shifflett Says:

    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

  3. Josh Smith Says:

    Have fun! I wish the event was happening on a weekend that I could be there to help out. :(

  4. caleb3141 Says:

    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.

  5. Kevin Griffin Says:

    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.

  6. scottcate Says:

    Hi Carl. The Arizona.NET User Group would love to sponsor an event like this in PHX. I can be reached at …

  7. karcheraw Says:

    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!

  8. Jérémy Alles Says:

    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

  9. Karl Shifflett Says:

    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

  10. Johan Says:

    Hi Karl,

    Since you can’t record this session will you be able to provide the source for all the sessions?

    Regards,

    Johan

  11. Karl Shifflett Says:

    Johan,

    We can post all source and materials. Still looking into recording.

    Cheers,

    Karl

  12. goldytech Says:

    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.

  13. Karl Shifflett Says:

    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

  14. Silverlight Cream for January 08, 2009 -- #479 Says:

    [...] 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 [...]

  15. brentschooley Says:

    Thank you for this training opportunity Karl! I’ll be flying in from PA to attend and I can’t wait!

    -Brent

  16. Karl Shifflett Says:

    Brent,

    Looking forward to meeting you. So glad you can make it.

    Cheers,

    Karl

  17. hugeonion Says:

    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

  18. Karl Shifflett Says:

    Christopher,

    We are on for sure. Glad you can make it!

    Cheers,

    Karl

  19. Webdesign Kapeljosie - Officiële website » Blog Archief » MVVM, a WPF UI Design Pattern Says:

    [...] 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 [...]

  20. MVVM, a WPF UI Design Pattern | CHARGED's Digital Lifestyle at Work or Play Says:

    [...] 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 [...]

  21. Karl Shifflett’s M-V-VM series for WPF/Silverlight Says:

    [...] 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 [...]

  22. bill44077 Says:

    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

  23. Karl Shifflett Says:

    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

  24. bill44077 Says:

    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

  25. lafingstock Says:

    Karl, thanks to Jaime and you for presenting this session.

    You guys were fantastic!

  26. tca9 Says:

    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

  27. Karl Shifflett Says:

    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

  28. brentschooley Says:

    @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

  29. Karl Shifflett Says:

    Brent,

    I’ll pass this information along, thank you!

    Have a super day!

    Karl

  30. evanlim1 Says:

    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

  31. Karl Shifflett Says:

    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

  32. bill44077 Says:

    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

  33. bill44077 Says:

    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

  34. Karl Shifflett Says:

    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

  35. Jaime Rodriguez : Announcing the Using WPF to build LOB applications Training Tour.. Says:

    [...] 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 [...]

Leave a Reply

You must be logged in to post a comment.