Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
.NET MAUI for C# Developers
.NET MAUI for C# Developers

.NET MAUI for C# Developers: Build cross-platform mobile and desktop applications

Arrow left icon
Profile Icon Jesse Liberty Profile Icon Juarez
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (28 Ratings)
Paperback Mar 2023 296 pages 1st Edition
eBook
$21.99 $31.99
Paperback
$39.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Jesse Liberty Profile Icon Juarez
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (28 Ratings)
Paperback Mar 2023 296 pages 1st Edition
eBook
$21.99 $31.99
Paperback
$39.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$21.99 $31.99
Paperback
$39.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

.NET MAUI for C# Developers

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.

Technical requirements

To follow along with this chapter and book, you will need to obtain and install Visual Studio and Git. To do this, you will need a Windows machine (Windows 10 or later). In addition, if you want to write for iOS and/or the Mac, you will need an Apple computer on the same network as your Windows computer.

All of the code in this book is available at https://github.com/PacktPublishing/.NET-MAUI-for-C-Sharp-Developers. The code for each chapter will have its own branch and that will be noted in the Technical requirements section of the given chapter. Note that there is no code for Chapters 1 and 2.

A word on Visual Studio Mac

It should be possible to follow along with this book using Visual Studio Mac, but some of the menus and certainly many of the keystrokes will be different. In my experience, Visual Studio Mac follows Visual Studio with a short delay in the implementation of new features. If all you have is a Mac, by all means do your development there. If you have both, or just a Windows machine, you’ll find it a bit easier to follow along with Visual Studio (for Windows).

While I’m at it, I’ll mention that I’m using Windows 11 on a desktop computer with 64 GB of memory and a 1 TB disk. None of that is required for this book. You will want at least 16 GB of memory for .NET MAUI programming.

Getting and installing Visual Studio

The first and foremost software you’ll need for this book is the latest version of Visual Studio from Microsoft. You can, of course, write .NET and .NET MAUI apps with any number of editors and/or Integrated Development Environments (IDEs), but Visual Studio is what I’ll be using in this book because it is, I believe, the most powerful IDE for the job. All the examples will use Visual Studio and your job will be much easier if you do so as well, at least while working your way through this book.

To get Visual Studio, open a browser and navigate to https://visualstudio.microsoft.com/. Microsoft changes the appearance of this page pretty frequently, but you should see the opportunity to download Visual Studio, Visual Studio for Mac, and Visual Studio Code.

Installing Visual Studio

On the website, click on Download Visual Studio. You can download whichever version you prefer. Note that the Community Version is free. If you already have Visual Studio 2022 or later installed, you need not add another copy, though they will run side by side assuming you have enough disk space. For installation, follow these steps:

  1. Once Visual Studio has been downloaded, click on the executable to begin the installation process. The installer will update and you will be presented with the Workloads dialog box as shown in Figure 1.1.
Figure 1.1 – Visual Studio Workloads

Figure 1.1 – Visual Studio Workloads

  1. Visual Studio lets you pick and choose what workloads you’ll need so that it is no bigger than necessary. Be sure to check Azure development, .NET Multi-platform App UI development, and .NET desktop development as shown in Figure 1.2.
Figure 1.2 – Selecting workloads

Figure 1.2 – Selecting workloads

  1. Next, click Install and get yourself a cup of coffee; this may take a few minutes. You should see progress in the Visual Studio installer, as in Figure 1.3.
Figure 1.3 – Visual Studio Installer

Figure 1.3 – Visual Studio Installer

When the installation is complete, Visual Studio will open.

A word on ReSharper

ReSharper is a very powerful tool that greatly enhances productivity for .NET developers. It is not free, however, and while I use it every day in my own work, we’ll not be using it in this book. Since we can do everything in Visual Studio without ReSharper (though it may take a few more keystrokes), no harm done.

With Visual Studio installed, the only remaining issue is storing, safeguarding, and retrieving the source code. For that, we’ll use Git – the industry standard. The final application will be in the main branch, with each chapter’s code being in a dedicated branch.

Git

The next software you need is Git. To download Git, navigate to git-scm.com/download and choose your operating system. I’ll choose Windows. Next, I’ll choose 64-bit Git for Windows Setup under Standalone Installer. This will cause an immediate download. Double-click on the downloaded file to install it. If you already have Git installed, this will update it.

You do not need any of the Git GUIs, as we’ll be interacting with Git through Visual Studio.

When the installation is complete, you’ll see the following options: Launch Git Bash and View the release notes. Uncheck both and click on Finish.

Let’s continue with our exploration of Visual Studio.

Opening Visual Studio

You’ll need to obtain the rest of the software from within Visual Studio, so let’s open that next. If the installation went as expected, the launch dialog will be on the screen:

  1. Click on Create a new project. (If you’ve been brought directly into Visual Studio, bypassing the launch dialog, just click File | New Project.)
  2. It is now time to pick the template we want. Templates make getting started easier. In the Search for Templates box, enter MAUI. A few choices will be presented; you want .NET MAUI App, as shown in the following figure:
Figure 1.4 – Creating a new project

Figure 1.4 – Creating a new project

  1. Click Next. Here we give our project a name. The first project we’re going to create is not ForgetMeNotDemo (the project that you will be building as part of this book), but rather a sample project just to take a quick look around. Name it something creative such as SampleApp and place it in a location on your disk where you will be able to easily find it later. Before clicking Next, make sure your dialog looks similar to Figure 1.5.
Figure 1.5 – Naming your project

Figure 1.5 – Naming your project

  1. Click Next and use the dropdown to choose the latest version of .NET. At the time of writing, that is .NET 7. Finally, click on Create.

Note

Because Microsoft is always updating Visual Studio, your screens or steps may vary slightly. Don’t let that worry you. The version I am using is Visual Studio 2022, version 17.4.3. As long as yours is the same or later, you’re all set. But just to be sure, let’s launch the sample app (F5). You should see something that looks like Figure 1.6.

Figure 1.6 – Running your app

Figure 1.6 – Running your app

  1. On the screen that you see in the preceding figure, click the button a couple times to make sure it is working.

Generally speaking, I will not be walking through how to do simple things on Visual Studio. The assumption is that you are a C# programmer and so you are probably familiar with Visual Studio. On the other hand, on the off chance that you are not, I’ll describe how to do anything that is not immediately intuitive. Next, let’s explore the out-of-the-box app in a bit more detail.

Quick tour of the app

Let’s take a quick tour to see what comes with an out-of-the-box app. First, stop the app by pressing the red square button in the menu bar. Make sure Solution Explorer is open (if not, go to View | Solution Explorer). Notice that there are three folders and four files, as shown in Figure 1.7:

Figure 1.7 – Three folders and four files

Figure 1.7 – Three folders and four files

The files with the .xaml extension are XAML files – that is, they use the XAML markup language. I will not assume you know XAML, and in fact, throughout this book, I will provide layout and other code in both XAML and fluent C#, but that is for the next chapter.

Right now, let’s open this out of the box project.

This is the entry point for the program. As you can see, it is a static class with a static method that is responsible for creating the app itself. We’ll come back to this file in subsequent chapters.

When you open MainPage.xaml, you will see a layout with controls for the page we just looked at (with the goofy MAUI guy waving and counting our button clicks). Again, we’re going to come back to layout and controls, but scan this page and see whether you can guess what is going on. You may find that it isn’t as alien as it seemed at first glance. You can, if you are so motivated, learn quite a bit about XAML just by reading this page carefully.

Click on the triangle next to MainPage.xaml to reveal the code-behind file. Code-behind files are always named <PageName>.xaml.cs – in this case, MainPage.xaml.cs. These files are always in C#. Here, we see the constructor and then an event handler. When the user clicks on the button, this event handler (OnCounterClicked) is called.

By flipping back and forth between the XAML and the code-behind file, you may be able to figure out how the button works and how the count of clicks is displayed. No need to do this, however, as we’ll be covering all these details in upcoming chapters.

At the moment, most of the other files are nearly empty and not worth the time to examine.

Just for fun, expand the Resources folder. You’ll see that there are folders for the application icon, fonts, images, and so forth. All the resources for all of the platforms are kept here.

Then there is a Platforms folder, which contains whatever is needed on a per-platform basis. For example, iOS applications require an info.plist file, which you’ll find in Platforms | iOS.

There is much more to see in a .NET MAUI application, but we will tackle each part as we build Forget Me Not™.

Summary

In this chapter, you saw how to find, download, and install Visual Studio and Git, the two tools you’ll need throughout the book. You also created your first .NET MAUI app, and we walked through some of its files, albeit quickly.

In the next chapter, we’ll take an extended look at XAML: the markup language for page layout and the creation of controls. We’ll then look at creating layouts and controls in C# and a new library that allows us to use Fluent C# to create layouts and controls.

Quiz

Test your understanding of this chapter by answering the following questions:

  1. How do you create a new project?
  2. How do you find Solution Explorer if it is not visible?
  3. What does the .xaml extension indicate?
  4. What do we call the .cs file associated with an .xaml file?
  5. Where is the entry point for a .NET MAUI app?

You try it

Most chapters will have a You try it section, in which you will be encouraged to take on a task related to what was covered in the chapter. Alas, this chapter does not have a task for you.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Extend your skills to build cross-platform native apps for iOS, Android, Windows, and Mac
  • Learn by working on a real-world project
  • Go beyond MAUI and integrate with the .NET ecosystem

Description

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#.

Who is this book for?

Learning .NET MAUI is targeted squarely at C# programmers, whether or not they have experience with cross-platform or mobile applications, who wish to learn Microsoft's premier platform for building iOS, Android, Windows and Mac apps using a single C#-based solution.

What you will learn

  • Explore the fundamentals of creating .NET MAUI apps with Visual Studio
  • Understand XAML as the key tool for building your user interface
  • Obtain and display data using layout and controls
  • Discover the MVVM pattern to create robust apps
  • Acquire the skills for storing and retrieving persistent data
  • Use unit testing to ensure your app is solid and reliable

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Mar 31, 2023
Length: 296 pages
Edition : 1st
Language : English
ISBN-13 : 9781837631698
Vendor :
Microsoft
Category :
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Mar 31, 2023
Length: 296 pages
Edition : 1st
Language : English
ISBN-13 : 9781837631698
Vendor :
Microsoft
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 144.97
.NET MAUI for C# Developers
$39.99
.NET MAUI Cross-Platform Application Development
$44.99
C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals
$59.99
Total $ 144.97 Stars icon

Table of Contents

17 Chapters
Part 1 – Getting Started Chevron down icon Chevron up icon
Chapter 1: Assembling Your Tools and Creating Your First App Chevron down icon Chevron up icon
Chapter 2: What We Will Build: Forget Me Not Chevron down icon Chevron up icon
Chapter 3: XAML and Fluent C# Chevron down icon Chevron up icon
Chapter 4: MVVM and Controls Chevron down icon Chevron up icon
Chapter 5: Advanced Controls Chevron down icon Chevron up icon
Chapter 6: Layout Chevron down icon Chevron up icon
Part 2 – Intermediate Topics Chevron down icon Chevron up icon
Chapter 7: Understanding Navigation Chevron down icon Chevron up icon
Chapter 8: Storing and Retrieving Data Chevron down icon Chevron up icon
Chapter 9: Unit Testing Chevron down icon Chevron up icon
Part 3 – Advanced Topics Chevron down icon Chevron up icon
Chapter 10: Consuming REST Services Chevron down icon Chevron up icon
Chapter 11: Exploring Advanced Topics Chevron down icon Chevron up icon
Assessments Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(28 Ratings)
5 star 57.1%
4 star 10.7%
3 star 14.3%
2 star 7.1%
1 star 10.7%
Filter icon Filter
Top Reviews

Filter reviews by




Franck Mar 21, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
An outstanding book on .Net MAUI development, completed with .Net 8. It must be acknowledged that there are occasional oversights in the code described in the book or in the GitHub code. However, with a bit of patience and research, one can complete the project and, more importantly, learn a great deal. Thanks to the authors.
Subscriber review Packt
Adam Gladstone Nov 30, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Feefo Verified review Feefo
David S. Platt Apr 04, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Jesse Liberty as done an excellent job of de-mystifying MAUI. I would have really loved to have it last summer, when I had to figure everything out on my own. I plan to use it as the textbook for my class on MAUI at Harvard Extension School.
Amazon Verified review Amazon
SevernFoot Apr 15, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is a great resource, both for an existing developer who wants to start with .NET MAUI, or for someone transitioning with prior experience of Xamarin Forms. There are plenty of code snippets and screenshots to illustrate each chapter. I definitely recommend this book if you want to become familiar with .NET MAUI.
Amazon Verified review Amazon
Andrew Stellman May 03, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I love this book! I've been working with C# and .NET for 20 years, and I've spent much of that time looking for ways to help people learn it. Throughout that whole time, Jesse Liberty has been one of the most effective writers. His past books have been foundational for people learning C#, and ".NET Maui for C# Developers" is no exception. If you're looking to ramp up on MAUI, this is a great way to do it.The book is full of projects where you build real apps to learn .NET MAUI, with screenshots and lots of explanation of how everything works. I especially love how this book gets into details that will help you become a better MAUI developer—like going into how fluent C# works with MAUI, or explaining how MVVM works.A really good example of how this book does a fantastic job giving you real-world advice is in the chapter on storing and retrieving data. It goes over the principles and gives examples. Then it actually walks you through installing SQLite, and shows you how to actually use it to store data, all in a way that's really practical and easy to follow.All in all, this is a really wonderful resource for anyone who wants to ramp up on MAUI.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.