.NET MAUI là gì?

7 min read

Trong bài viết này (.NET MAUI) chúng ta có một số điểm cần tìm hiểu:

  • .NET MAUI dành cho ai
  • Cách .NET MAUI hoạt động
  • .NET MAUI cung cấp điều gì

Giao diện người dùng ứng dụng đa nền tảng .NET (.NET MAUI) là một khung đa nền tảng để tạo các ứng dụng gốc dành cho thiết bị di động và máy tính để bàn với C# và XAML.

Sử dụng .NET MAUI, bạn có thể phát triển các ứng dụng có thể chạy trên Android, iOS, macOS và Windows từ một single shared code-base.

maui

NET MAUI là mã nguồn mở và là sự phát triển của Xamarin.Forms, được mở rộng từ kịch bản di động sang máy tính để bàn, với các điều khiển giao diện người dùng được xây dựng lại từ đầu để đảm bảo hiệu suất và khả năng mở rộng. Nếu trước đây bạn đã sử dụng Xamarin.Forms để xây dựng giao diện người dùng đa nền tảng, bạn sẽ nhận thấy nhiều điểm tương đồng với .NET MAUI. Tuy nhiên, cũng có một số khác biệt. Khi sử dụng .NET MAUI, bạn có thể tạo các ứng dụng đa nền tảng bằng một dự án duy nhất nhưng bạn có thể thêm mã nguồn và tài nguyên dành riêng cho nền tảng nếu cần. Một trong những mục đích chính của .NET MAUI là cho phép bạn triển khai logic ứng dụng và bố cục giao diện người dùng nhiều nhất có thể trong một cơ sở mã duy nhất.

.NET MAUI dành cho ai

.NET MAUI dành cho những nhà phát triển với mong muốn:

  • Viết các ứng dụng đa nền tảng bằng XAML và C#, từ một single shared code-base trong Visual Studio.
  • Chia sẻ bố cục và thiết kế giao diện người dùng trên các nền tảng.
  • Chia sẻ mã, kiểm tra và logic nghiệp vụ trên các nền tảng.

Cách .NET MAUI hoạt động

.NET MAUI hợp nhất các API Android, iOS, macOS và Windows thành một API duy nhất cho phép nhà phát triển trải nghiệm viết một lần, chạy mọi nơi, đồng thời cung cấp thêm quyền truy cập sâu vào mọi khía cạnh của từng nền tảng gốc.

.NET 6 trở lên cung cấp một loạt platform-specific frameworks cho nền tảng để tạo ứng dụng: thư viện .NET Android, .NET iOS, .NET macOS và Windows UI 3 (WinUI 3). Tất cả các khung này đều có quyền truy cập vào cùng một .NET Base Class Library (BCL). Thư viện này tóm tắt các chi tiết của nền tảng cơ bản khỏi mã của bạn. BCL phụ thuộc vào thời gian chạy .NET để cung cấp môi trường thực thi cho mã của bạn. Đối với Android, iOS và macOS, môi trường được triển khai bởi Mono, một triển khai thời gian chạy .NET. Trên Windows, .NET CoreCLR cung cấp môi trường thực thi.

Mặc dù BCL cho phép các ứng dụng chạy trên các nền tảng khác nhau chia sẻ common business logic, nhưng các nền tảng khác nhau có các cách xác định giao diện người dùng khác nhau cho ứng dụng và chúng cung cấp các mô hình khác nhau để chỉ định cách các thành phần của giao diện người dùng giao tiếp và tương tác. Bạn có thể tạo giao diện người dùng riêng cho từng nền tảng bằng cách sử dụng platform-specific framework cho nền tảng thích hợp (.NET Android, .NET iOS, .NET macOS hoặc WinUI 3), nhưng phương pháp này sau đó yêu cầu bạn duy trì code-base cho từng nhóm riêng lẻ của các thiết bị.

.NET MAUI cung cấp một single framework để xây dựng giao diện người dùng cho ứng dụng dành cho thiết bị di động và máy tính để bàn. Sơ đồ sau đây hiển thị high-level view về kiến ​​trúc của ứng dụng .NET MAUI:

Trong ứng dụng .NET MAUI, bạn viết mã chủ yếu tương tác với API .NET MAUI (1). Sau đó, .NET MAUI sẽ trực tiếp sử dụng API nền tảng gốc (3). Ngoài ra, mã ứng dụng có thể trực tiếp thực hiện các API nền tảng (2), nếu được yêu cầu.

Ứng dụng NET MAUI có thể được viết trên PC hoặc Mac và biên dịch thành các gói ứng dụng gốc:

  • Các ứng dụng Android được xây dựng bằng .NET MAUI biên dịch từ C# sang ngôn ngữ trung gian (IL), sau đó được biên dịch just-in-time (JIT) sang một ngôn ngữ native assembly khi ứng dụng khởi chạy
  • Các ứng dụng iOS được xây dựng bằng .NET MAUI hoàn toàn được biên dịch ahead-of-time (AOT) từ C# thành native ARM assembly code.
  • Các ứng dụng macOS được xây dựng bằng .NET MAUI sử dụng Mac Catalyst, một giải pháp của Apple giúp đưa ứng dụng iOS được xây dựng bằng UIKit của bạn lên máy tính để bàn và tăng cường ứng dụng này bằng các API nền tảng và AppKit bổ sung theo yêu cầu.
  • Các ứng dụng Windows được xây dựng bằng .NET MAUI sử dụng thư viện Windows UI 3 (WinUI 3) để tạo các native apps hướng tới Windows desktop. Để biết thêm thông tin về WinUI 3, see Windows UI Library.

.NET MAUI cung cấp những gì

.NET MAUI cung cấp một tập hợp các điều khiển có thể được sử dụng để hiển thị dữ liệu, bắt đầu hành động, chỉ ra hoạt động, hiển thị bộ sưu tập, chọn dữ liệu, v.v. Ngoài bộ sưu tập các điều khiển, .NET MAUI còn cung cấp:

  • An elaborate layout engine for designing pages.
  • Multiple page types for creating rich navigation types, like drawers.
  • Support for data-binding, for more elegant and maintainable development patterns.
  • The ability to customize handlers to enhance the way in which UI elements are presented.
  • Cross-platform APIs for accessing native device features. These APIs enable apps to access device features such as the GPS, the accelerometer, and battery and network states. For more information, see Cross-platform APIs for device features.
  • Cross-platform graphics functionality, that provides a drawing canvas that supports drawing and painting shapes and images, compositing operations, and graphical object transforms.
  • A single project system that uses multi-targeting to target Android, iOS, macOS, and Windows. For more information, see .NET MAUI Single project.
  • .NET hot reload, so that you can modify both your XAML and your managed source code while the app is running, then observe the result of your modifications without rebuilding the app. For more information, see .NET hot reload.

API đa nền tảng cho các tính năng của thiết bị

.NET MAUI cung cấp API đa nền tảng cho các tính năng gốc của thiết bị. Ví dụ về chức năng được .NET MAUI cung cấp để truy cập các tính năng của thiết bị bao gồm:

  • Access to sensors, such as the accelerometer, compass, and gyroscope on devices.
  • Ability to check the device’s network connectivity state, and detect changes.
  • Provide information about the device the app is running on.
  • Copy and paste text to the system clipboard, between apps.
  • Pick single or multiple files from the device.
  • Store data securely as key/value pairs.
  • Utilize built-in text-to-speech engines to read text from the device.
  • Initiate browser-based authentication flows that listen for a callback to a specific app registered URL.

Single project

Dự án đơn .NET MAUI sử dụng trải nghiệm platform-specific development cho nền tảng mà bạn thường gặp khi phát triển ứng dụng và tóm tắt chúng thành một single shared project có thể nhắm mục tiêu Android, iOS, macOS và Windows.

.NET MAUI single project cung cấp trải nghiệm phát triển đa nền tảng đơn giản và nhất quán, bất kể nền tảng nào được nhắm mục tiêu. .NET MAUI single project cung cấp các tính năng sau:

  • A single shared project that can target Android, iOS, macOS, and Windows.
  • A simplified debug target selection for running your .NET MAUI apps.
  • Shared resource files within the single project.
  • A single app manifest that specifies the app title, id, and version.
  • Access to platform-specific APIs and tools when required.
  • A single cross-platform app entry point.

.NET MAUI single project được kích hoạt bằng cách sử dụng multi-targeting và sử dụng các dự án SDK-style. Để biết thêm thông tin về dự án đơn .NET MAUI, see .NET MAUI single project.

Hot reload

.NET MAUI includes support for .NET hot reload, which enables you to modify your managed source code while the app is running, without the need to manually pause or hit a breakpoint. Then, your code edits can be applied to your running app without recompilation.

.NET MAUI bao gồm hỗ trợ cho .NET hot reload, cho phép bạn sửa đổi mã nguồn được quản lý của mình trong khi ứng dụng đang chạy mà không cần phải tạm dừng hoặc nhấn điểm dừng theo cách thủ công. Sau đó, các chỉnh sửa mã của bạn có thể được áp dụng cho ứng dụng đang chạy mà không cần biên dịch lại.

.NET MAUI cũng bao gồm hỗ trợ XAML hot reload, cho phép bạn lưu các tệp XAML của mình và xem các thay đổi được phản ánh trong ứng dụng đang chạy của bạn mà không cần biên dịch lại. Ngoài ra, trạng thái điều hướng và dữ liệu của bạn sẽ được duy trì, cho phép bạn nhanh chóng lặp lại trên giao diện người dùng của mình mà không mất vị trí trong ứng dụng.

Ref: https://learn.microsoft.com/en-us/dotnet/maui/what-is-maui

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *