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

Assembling Your Tools and Creating Your First App

In this book, we’ll be building iOS, Android, Windows, and Mac applications using one common code base. Everything you need is free unless you want to build for iOS and Mac, in which case you need a Mac computer. I’m going to assume you have a Mac, but if you don’t, very little will change; you’ll just be more limited in the platforms you can deploy to.

An alternative if you don’t have a Mac

James Montemagno of Microsoft has a workaround video if you don’t have a Mac. There are severe limitations, but needs must. My personal recommendation is that if you don’t have a Mac, do your development with Android. Here’s the video: https://www.youtube.com/watch?v=snQ1C6Cppr8.

In the coming chapters, you will see a non-trivial .NET MAUI project that we will build incrementally. Along the way, we will examine how to create the User Interface (UI) with XAML (a markup language) and C#.

MAUI Blazor

An alternative, not covered in this book, is to use MAUI Blazor, which allows you to create a cross-platform application using your Blazor skills. You can learn more about MAUI Blazor at https://bit.ly/MauiBlazor.

In the first part of the book, we will discuss the principal architecture for .NET MAUI: Model-View-ViewModel (MVVM). We will then dive into the diverse controls available for creating powerful UIs followed by a chapter dedicated to techniques for laying out these controls on the page.

We will move on to discussing the Shell navigation architecture and how you move from page to page, passing along data as needed. We’ll look at persisting data and then stop to discuss the all-important topic of testing your code.

While .NET MAUI provides a cornucopia of controls, there are times when you need something that Microsoft did not anticipate, so we’ll dedicate a chapter to creating custom controls. (Once you have a custom control, you can use it in any subsequent .NET MAUI projects you work on.)

In the final section of the book, we’ll look at consuming a REST API and creating a web frontend to the same REST API we used for the mobile and desktop applications, this time using Blazor.

In this chapter, you will learn how to get and install Visual Studio for writing the program and Git for managing and safeguarding your code. Each chapter’s final code will be in a dedicated branch, with the final product in the main branch.

In this chapter, you will find the following:

  • A description of Visual Studio, along with installation instructions
  • A description of Git, along with installation instructions
  • A description of how to create your first, out-of-the-box program, and a tour of the files in that project

App versus application

Since we will be building for iOS and Android (which refer to apps) and also Windows and Mac (which refer to applications), I’ll be using the two terms interchangeably.

Let’s get the software you need, and then set up Visual Studio.