Building an Enterprise App with WPF, MVVM, and Entity Framework

After you’ve started to build your first enterprise app with WPF, MVVM, and Entity Framework, some questions like these might pop up:

  • how to structure my Solution?
  • how to set up and use Entity Framework?
  • how to structure Views and ViewModels?
  • how to communicate between ViewModels?
  • how to load and save entities
  • how long should I keep Entity Framework’s DbContext alive?
  • how to validate user input?
  • how to work with many-to-many relationships?
  • how to create a tabbed user interfaces?
  • how to handle conflicts when multiple users are using my application?
  • how to define a modern look for my application?

Last week my latest course was released on Pluralsight that answers all of these questions (and a lot more :)). You can watch it here:

Building an Enterprise App with WPF, MVVM, and Entity Framework Code First

This course teaches you everything you need to know to build a solid enterprise application with WPF that uses MVVM and that connects to a SQL Server database with Entity Framework. You’ll start from the absolute beginning: With “File->New Project” in Visual Studio.

By the end of the course you have created this application to organize friends and meetings. Everything you create in this application is stored in SQL Server with Entity Framework:

If you want to jump into XAML and frameworks like WPF and UWP to build enterprise applications, I recommend you to watch this course about building an Enterprise App with WPF, MVVM, and Entity Framework Code First.

After this course, you can learn how to test your ViewModels with unit tests by watching
WPF and MVVM: Test Driven Development of ViewModels.

With your solid knowledge, the next thing you can learn is how to create powerful model wrappers that track all the changes made to a model. Just watch this course: WPF and MVVM: Advanced Model Treatment. You’ll learn in this course how to track model changes, so that you can display changed fields in the UI with a different color. You even learn how to display the original value of a changed field in the tooltip. Beside all of this, you learn a lot about XAML, Data Binding, Attached Properties and Styles in this course.

Share this post

Comments (2)

  • Daniel Frahn Reply

    Very nice course with ultra-precisely explained source code!
    Maybe a bit too much, especially for experienced developers, as they already expect the code you are going to write.

    I was wondering why you always await Tasks, even if it’s the last instruction within a method.
    I think, simply returning the task (and removing the async keyword) is the way you go, otherwise you have different exception behavior, and a larger compiler generated code when using async/await.

    The only reason I can think of to await a method is when you want to wait for that result in order to execute further code.

    September 11, 2017 at 4:07 pm
    • Thomas Claudius Huber Reply

      Hi Daniel,

      thanks for the feedback. I tried to make this course also valuable for beginners, so yes, I can understand that advanced developers might find the explanations too detailed at some places.

      There are several reasons why I use the await keyword at the end of a method:
      – Disposables
      – Getting correct and expected exception behavior
      – …

      From my experience it’s the best to use the keywords everywhere and then optimize where needed. Take a look at this great article by Stephen Cleary: http://blog.stephencleary.com/2016/12/eliding-async-await.html

      September 11, 2017 at 8:01 pm

Leave a Reply

Your email address will not be published. Required fields are marked *

*