C#
.NET
App-Development
Desktop
Mobile

App Development using the MVVM Pattern

C#C#
.NET.NET
XAMLXAML

The MVVM pattern (Model-View-ViewModel) enables easy code reusability and testability for XAML-based applications and allows code reuse between WPF, WinUI, MAUI, and more.

App Development using the MVVM Pattern

Duration: 2 days

To enable easy code reusability and testability of XAML-based applications, the MVVM pattern (Model-View-ViewModel) was created. This pattern allows easy code reuse between WPF, WinUI, MAUI, etc.

Who Should Attend

  • Developers and technical professionals who want to deepen their skills in App Development using the MVVM Pattern.
  • Architects and team leads evaluating practical implementation patterns.
  • Teams adopting modern engineering practices for delivery and operations.

Prerequisites

  • Basic software development experience
  • Familiarity with common development tools and workflows
  • Interest in applying the course topics in real projects

Learning Goals

  • Understand the core concepts and architecture behind the course topic
  • Apply recommended implementation patterns in practical scenarios
  • Build and validate solutions using modern tooling and workflows
  • Troubleshoot common issues and improve reliability
  • Plan next steps for production-ready adoption

Course Content

  • Introduction to the MVVM Pattern
  • Use of Dependency Injection
  • Data Access and Calling REST Services
  • ViewModels and Views
  • Messaging with Events
  • User Input and Validation
  • Master/Detail Views
  • Navigation
  • Comparison of MVVM Frameworks
Introduction to the MVVM Pattern

Here you will learn an introduction to the MVVM pattern - with a comparison to the Model-View-Controller (MVC) and the Model-View-Presenter (MVP) pattern. Also covered are features that make the MVVM pattern possible: data binding and commands.

Dependency Injection

Code reuse and simple unit testing are two of the goals that are achieved with Dependency Injection. You will learn the basics of Dependency Injection (or the Hollywood Principle), and also the use of Dependency Injection containers.

Data Access and Calling REST Services

Accessing REST services using the Repository Pattern, including caching of data - here you will learn how to access API services from the client application.

ViewModels and Views

A view model is connected to views. Views are mainly created with XAML code, view models with C#. The connection is done using data binding. Here you will learn how to create views and view models, as well as different ways to connect them.

Messaging with Events

Often you need communication between different view models, or a view model needs to communicate with a view. In such a communication it is important to keep the coupling low. Events help to do this.

User Input and Validation

After users have entered data, it helps to validate this data before sending it to the server. You can learn how to validate data here.

Master/Detail Views

Data often needs to be displayed with Master/Detail. Here you can learn how to do this with MVVM.

Navigation

Different platforms offer different ways to navigate between pages. These built-in navigation features often conflict with the MVVM pattern. How this can be solved, but also practical variants to easily implement navigation are covered here.

Hands-on Labs

  • Set up a working project baseline for the course topic
  • Implement a core feature and validate expected behavior
  • Integrate testing or automation to improve quality and repeatability

Outcomes

After completing this course, participants can apply the covered concepts and tooling to implement reliable solutions in real-world projects.

Ready for more information?

Important Note on Offers and Pricing

Website information, dates, availability, and prices are provided without guarantee and remain subject to confirmation. Sending a training inquiry does not create a binding contract. See our Terms & Conditions.

Loading inquiry form...

Loading inquiry form...

The inquiry form is being initialized. If this message persists, please try refreshing the page or contact us directly at office@cninnovation.com.

An unhandled error has occurred. Reload 🗙