
Learn to build a cross-platform contacts app with .NET MAUI and .NET 7 by applying event-driven design, MVVM, and clean architecture, with SQLite persistence and a minimal ASP.NET Core API.
Explain what .NET MAUI is and how it enables a single codebase to target multiple platforms, contrasting it with Xamarin Forms and its multi-project structure.
Set up Visual Studio 2022 for .NET MAUI development, install the multi-platform workload, and create a contacts app project on .NET 7 with Android emulator configuration.
Understand the net maui project structure from maui program.cs to the platforms folder, and see how app shell and shell pages manage routing across android, ios, and windows.
Discover how a Net Maui page uses a single layout to host multiple views, and how namespaces drive XAML definitions for content pages with layout, scroll view, and data presentation.
The source code of this course is on GitHub: https://github.com/frank-liu-toronto/Contacts.git
When you use github, you can access almost each lesson's code by looking at each change in the repository's history.
Or you can download the final source code from this lecture directly.
Learn url based navigation in .net maui by wiring three pages (contacts, edit, add) through shell routes and go-to navigation. Use absolute paths and dot-dot back navigation.
Learn to build a contacts list in .NET MAUI by binding a contact collection to a list view, using a data template to display name and email.
Handle list view events in .NET MAUI by wiring item selected and item tapped with deselection logic, plus navigation to an edit contact page using shell current go to async.
Master stack layouts in .NET MAUI to build the edit contact page, handling vertical and horizontal orientations, spacing, alignment, and nested layouts for name, email, phone, and address.
Learn to view and update contact details in a .NET MAUI app by retrieving a contact by ID and updating in-memory data store with a copy and a lambda-based update.
Discover how observable collection keeps the contacts list in sync with the UI in .NET MAUI, enabling automatic updates when the repository data changes.
Build a .NET MAUI grid layout for the add content page using a reusable control and list view, with row and column definitions and navigation to the add contact page.
Explore how to implement a top search bar in a .NET MAUI contacts app, using text changed events, observable collections, and a robust search across name, email, phone, and address.
Organize the project into clean architecture with a core contact entity in a .NET MAUI class library and a use cases layer that fetches contacts asynchronously via an injected repository.
Build a database plugin with an in-memory data store that implements the contact repository interface and connects to the use cases and core layers using asynchronous methods.
Learn how dependency injection wires use case and repository implementations through a mapping in the Dynamo framework, enabling loose coupling, with singleton vs transient choices in a Maui app.
Implement the add contact use case by injecting the contact repository and creating an async execute method. Wire the interface and dependency injection to save new contacts.
Master two-way data binding in MVVM by loading contacts dynamically with a repository and using the community toolkit's set property to notify the view of changes.
Implement a contacts view model in mvvm, inject the view contacts use case, manage an observable collection of business contacts, load contacts, and update the collection to notify the view.
Implement right-swipe actions in a .NET MAUI collection view using swipe view, with delete and edit items, including destructive styling and color cues.
Bind a delete contact command to the swipe view item using MVVM and a relay command, inject the delete use case, and refresh the UI with load context async.
Implement an edit contact page in a .NET MAUI MVVM workflow by binding the go-to-edit command with the contact ID and loading the contact via the view model.
Update contact via MVVM by wiring the edit contact use case into the contact view model, binding commands to save and cancel, and navigating back to the contacts page.
Learn to add a contact in a .NET MAUI app using MVVM, with a reusable contact control shared by add and edit pages and dynamic command binding.
Implement MVVM form validations in a .NET MAUI contacts app by binding name and email validators to the view model and using clean architecture use cases for add and edit.
Explore MVVM driven search in a .NET MAUI contacts app by binding search bar text to a filter and loading contacts asynchronously into the view model.
Install the SQLite NuGet package in project and decorate the contact class with SQLite attributes to map a table, with id as primary key autoincrement and name and email required.
Plug the SQLite repository plugin into a .NET MAUI contacts app, persisting data to a file, validating input, and enabling search, update, and delete within a clean architecture.
Create a .NET 7 web api for contacts, install EF Core sqlite and EF Core design to enable migrations, and prepare to consume the api from a .NET MAUI app.
Update contact endpoint demonstrates using http put with an id in the url, validating the contact, updating name and email, saving changes, and returning no content (204) when successful.
Create a web api repository in a .NET MAUI app to consume web api endpoints using a http client and json serializer, with a base url and /contact endpoints.
Welcome to our comprehensive online course on .NET MAUI, where you'll learn to develop powerful mobile applications using the latest technologies in .NET 7. Our course is designed to provide you with a solid understanding of the fundamentals of .NET Maui and equip you with the skills and knowledge needed to create high-quality, cross-platform mobile apps with ease.
In this course, you'll learn all the essentials of .NET MAUI while building a contacts app with Events Driven approach and then with MVVM approach, leveraging SQLite for data persistence, and adopting the Clean Architecture approach. Additionally, you'll learn how to create and consume ASP.NET Core minimal APIs in .NET Maui, making it easier to build fast, lightweight, and scalable mobile applications.
The course covers the following technical topics:
.NET MAUI Project Structure
URL based navigation.
ListView
CollectionView
ContextActions
StackLayout, Grid Layout
SearchBar
Databinding
Field Validation
Creating Reusable control
Dependency Injection
Clean Architecture
Repository for encapsulating data accessing details
Use Case Driven Development
MVVM
SQLite
ASP.NET Core Minimal API
By the end of the course, you will:
Be able to independently build .NET MAUI mobile apps.
Be able to use SQLite to persist data.
Be able to create and consume ASP.NET Core Minimal APIs.
Understand and be able to implement maintainable and scalable .NET MAUI app with Clean Architecture.
And much more.
Our course is designed to cater to both intermediate and advanced-level developers, with easy-to-follow, step-by-step tutorials, and hands-on projects that allow you to apply what you learn in real-world scenarios. By the end of this course, you'll have the confidence and skills to create robust and scalable mobile applications that run seamlessly across multiple platforms.
Whether you're looking to start a new career in mobile development or want to upskill your existing skill set, our course is perfect for you. So why wait? Enroll now and take the first step towards building your next great mobile app with .Net Maui and .NET 7.
PREREQUISITES
Intermediate C# (you should have at least 3 - 6 months experience programming in C#).
Basic SQL knowledge.
Having strong desire to learn.
Who this course is for
C# developers who want to become mobile developers.
Developers who work with Xamarin or WPF and would like to transition to .NET MAUI.
Developers who are curious about Microsoft newest Multi Platform framework: .NET MAUI
Developers who want to learn about implementing Clean Architecture.