Book Image

.NET MAUI for C# Developers

By : Jesse Liberty, Rodrigo Juarez
3.7 (6)
Book Image

.NET MAUI for C# Developers

3.7 (6)
By: Jesse Liberty, Rodrigo Juarez

Overview of this book

While UI plays a pivotal role in retaining users in a highly competitive landscape, maintaining the same UI can be tricky if you use different languages for different platforms, leading to mismatches and un-synced pages. In this book, you'll see how .NET MAUI allows you to create a real-world application that will run natively on different platforms. By building on your C# experience, you’ll further learn to create beautiful and engaging UI using XAML, architect a solid app, and discover best practices for this Microsoft platform. The book starts with the fundamentals and quickly moves on to intermediate and advanced topics on laying out your pages, navigating between them, and adding controls to gather and display data. You’ll explore the key architectural pattern of Model-View-ViewModel: and ways to leverage it. You’ll also use xUnit and NSubstitute to create robust and reliable code. By the end of this book, you’ll be well-equipped to leverage .NET MAUI and create an API for your app to interact with a web frontend to the backend data using C#.
Table of Contents (18 chapters)
1
Part 1 – Getting Started
8
Part 2 – Intermediate Topics
12
Part 3 – Advanced Topics

ForgetMeNotDemo unit tests

To get started, we examine one ViewModel at a time, paying attention to the methods. We do this because what we want to test is the business logic, and if you’ve done it right, most of your business logic will be in a ViewModel class.

For example, turning our attention to PreferencesViewModel, we see the Init() method. The job of Init is to populate the PreferenceList collection. For now, we’ll ignore how it does this and just write a test to ensure that it does.

Implementing the triple-A pattern

Before we start, create an interface for PreferenceService, as described earlier in the book (open PreferenceService, right-click on the class name, and choose Extract Interface).

A classic design pattern for unit tests is the Arrange, Act, Assert (AAA) pattern. That is, you set up your test (Arrange), then you call a method or two (Act), and then check to make sure you have the expected results (Assert). Let’s see this in action...