Trước khi tạo một ứng dụng MAUI, chúng ta xem lại Nhập môn .NET MAUI.
Để tạo ứng dụng .NET MAUI, chúng ta cần cài đặt Visual Studio phiên bản 17.3 trở lên và cài đặt .NET Multi-Platform App UI development (như hình dưới). Ngoài ra, nếu muốn xây dựng ứng dụng .NET MAUI Blazor, chúng ta phải cài đặt ASP.NET and web development. Nếu đang phát triển trên macOS, chúng ta cần cài đặt Visual Studio cho Mac Preview phiên bản 17.4.

Cách tạo ứng dụng MAUI
Nguồn tham khảo: Create a .NET MAUI project in Visual Studio.
Giải thích: Cấu trúc dự án .NET MAUI và khởi chạy ứng dụng
- App.xaml: Tập tin này xác định các tài nguyên mà ứng dụng sẽ sử dụng trong bố cục XAML. Các tài nguyên mặc định được đặt trong thư mục Resources và xác định màu sắc (colors) trên toàn ứng dụng và các kiểu (styles) mặc định cho mỗi điều khiển tích hợp sẵn của .NET MAUI.
- App.xaml.cs: Đây là mã nguồn điều khiển (code-behind) cho tập tin App.xaml. Tập tin này xác định lớp App. Lớp này đại diện cho ứng dụng của bạn khi chạy. Hàm tạo (constructor) trong lớp này tạo ra một cửa sổ ban đầu và gán nó vào thuộc tính MainPage; thuộc tính này xác định trang nào sẽ được hiển thị khi ứng dụng bắt đầu chạy. Ngoài ra, lớp này cho phép bạn ghi đè (override) các bộ xử lý sự kiện (event handlers) thường gặp của vòng đời ứng dụng không phụ thuộc vào nền tảng (platform-neutral application lifecycle). Các sự kiện bao gồm OnStart, OnResume và OnSleep. Những bộ xử lý này được định nghĩa như thành viên của lớp cơ sở Application.
- AppShell.xaml: Tập tin này là cấu trúc chính của một ứng dụng .NET MAUI. Shell của .NET MAUI cung cấp nhiều tính năng hữu ích cho các ứng dụng đa nền tảng bao gồm việc thiết kế ứng dụng, điều hướng dựa trên URI, và các tùy chọn bố cục bao gồm điều hướng flyout và tab cho trang chủ của ứng dụng. Mẫu mặc định cung cấp một trang đơn (hoặc ShellContent) được hiển thị khi ứng dụng khởi chạy.
- MainPage.xaml: Tập tin này chứa định nghĩa giao diện người dùng. Ứng dụng mẫu mà mẫu ứng dụng MAUI tạo ra chứa hai nhãn, một nút và một hình ảnh. Các điều khiển được sắp xếp bằng cách sử dụng một VerticalStackLayout được bao bọc trong một ScrollView. Điều khiển VerticalStackLayout sắp xếp các điều khiển theo chiều dọc (trong một ngăn xếp), và ScrollView cung cấp thanh cuộn nếu chế độ xem quá lớn để hiển thị trên thiết bị. Bạn nên thay thế nội dung của tệp này bằng bố cục giao diện người dùng của riêng bạn. Bạn cũng có thể định nghĩa thêm các trang XAML nếu bạn có một ứng dụng với nhiều trang.
- MainPage.xaml.cs: Đây là mã nguồn điều khiển (code-behind) cho trang. Trong tập tin này, bạn xác định logic cho các xử lý sự kiện và các hành động khác được kích hoạt bởi các điều khiển trên trang. Mã nguồn ví dụ triển khai một xử lý cho sự kiện Clicked của nút trên trang. Mã nguồn đơn giản chỉ tăng một biến đếm và hiển thị kết quả trong một nhãn trên trang. Dịch vụ Semantic được cung cấp như một phần của thư viện MAUI Essentials hỗ trợ tính năng truy cập.
- MauiProgram.cs: Mỗi nền tảng gốc (native platform) có một điểm bắt đầu khác nhau để tạo và khởi tạo ứng dụng. Bạn có thể tìm mã này trong thư mục Platforms trong dự án. Mã này là đặc trưng cho từng nền tảng, nhưng cuối cùng nó gọi phương thức CreateMauiApp của lớp MauiProgram tĩnh. Bạn sử dụng phương thức CreateMauiApp để cấu hình ứng dụng bằng cách tạo một đối tượng xây dựng ứng dụng. Tối thiểu, bạn cần chỉ định lớp mô tả ứng dụng của bạn. Bạn thực hiện điều này bằng phương thức generic UseMauiApp của đối tượng xây dựng ứng dụng; tham số kiểu chỉ định lớp ứng dụng. Xây dựng ứng dụng cũng cung cấp các phương thức cho các nhiệm vụ như đăng ký font, cấu hình dịch vụ cho việc dependency injection, đăng ký bộ xử lý tùy chỉnh cho các điều khiển và nhiều hơn nữa.
- Platforms: Thư mục này chứa các tập tin mã và tài nguyên cụ thể cho từng nền tảng. Có các thư mục cho Android, iOS, MacCatalyst, Tizen và Windows. Trong quá trình chạy, ứng dụng khởi động theo cách cụ thể cho từng nền tảng. Nhiều phần trong quá trình khởi động được giản lược bởi các phần nội tại của thư viện MAUI, nhưng các tập tin mã trong các thư mục này cung cấp cơ chế để kết nối với quá trình khởi tạo tùy chỉnh của bạn. Điểm quan trọng là khi quá trình khởi tạo hoàn tất, mã cụ thể cho từng nền tảng gọi phương thức MauiProgram.CreateMauiApp, từ đó tạo và chạy đối tượng App như đã mô tả trước đó.

- Trong cửa sổ Solution Explorer từ Visual Studio, chúng ta có thể mở rộng thư mục Resources để xem các tài nguyên dự án.