學習.NET MAUI Blazor(二)、MAUI是個啥

2022-12-25 21:00:22

隨著.NET 7的釋出,MAUI也正式釋出了。那麼MAUI是個啥?我們先來看看官方解釋:

.NET 多平臺應用 UI (.NET MAUI) 是一個跨平臺框架,用於使用 C# 和 XAML 建立本機移動和桌面應用。

關於MAUI

.NET MAUI,全稱.NET Multi-platform App UI 顧名思義,就是跨平臺UI框架。使用.NET MAUI,理論上使用一套程式碼就可以開發出可執行在 Android、iOS、macOS 和 Windows 上的應用!因為各平臺存在差異,所以一套程式碼需要根據實際情況來編寫特定的程式碼,有些類似於uni-app上的條件編譯。

用一張圖來解釋下.NET MAUI可以執行在什麼平臺上

.NET MAUI可以執行在以下平臺:

  • Android 5.0 (API 21) 或更高版本
  • iOS 11 或更高版本,使用最新版本的 Xcode
  • 使用 Mac Catalyst 的 macOS 10.15 或更高版本
  • 使用 Windows UI 庫 (WinUI) 3 Windows 11和Windows 10版本 1809 或更高版本

由於MAUI Blazor 應用是基於各平臺特定的 WebView 控制元件。如果是.NET MAUI Blazor 應用,則需要如下要求:

  • 需要 Android 7.0 (API 24) 或更高版本
  • 需要 iOS 14 或更高版本
  • 使用 Mac Catalyst 的 macOS 11 或更高版本
  • Windows 上的 Microsoft Edge WebView2
  • Android 上的 Chrome
  • iOS 和 macOS 上的 Safari

.NET MAUI 是開源的,是 Xamarin.Forms 的演變,從移動方案擴充套件到桌面方案,UI 控制元件從頭開始重新生成,以確保效能和擴充套件性。 如果以前使用 Xamarin.Forms 生成跨平臺使用者介面,你會注意到與 .NET MAUI 的許多相似之處。 但也有一些差異。 使用 .NET MAUI,可以使用單個專案建立多平臺應用,但可以根據需要新增特定於平臺的原始碼和資源。 .NET MAUI 的主要目的之一是使你能夠在單個程式碼庫中實現儘可能多的應用邏輯和 UI 佈局。

MAUI的工作原理

.NET MAUI 將 Android、iOS、macOS 和 Windows API 統一到單個 API 中,提供「編寫一次就能在任何地方執行」的開發人員體驗,同時還提供了對每個原生平臺各個方面的深入存取。

.NET 6 或更高版本提供一系列特定於平臺的框架用於建立應用:.NET for Android、.NET for iOS、.NET for macOS 和 Windows UI 3 (WinUI 3) 庫。 這些框架都有權存取同一個 .NET 基礎類別庫 (BCL) 。 此庫從程式碼中抽象出基礎平臺的詳細資訊。 BCL 依賴於 .NET 執行時來為程式碼提供執行環境。 對於 Android、iOS 和 macOS,環境由 Mono 實現,這是 .NET 執行時的實現。 在 Windows 上,.NET CoreCLR 提供執行環境。

一張圖說明白.NET MAUI的體系結構

如何開發MAUI

需要 Visual Studio 2022 17.3 或更高版本,或者 Visual Studio 2022 for Mac 17.4 或更高版本。

如果要生成 iOS 的 .NET MAUI 應用,還需要:

  • 與最新版本的 Xcode 相容的 Mac。
  • 最新版本的 Xcode
  • 蘋果開發者賬戶

該如何選擇?

如果是嚐鮮或者開發windows應用,個人感覺MAUI不錯。
如果是給老外開發應用,那麼Flutter是不錯的選擇。
如果是國內的移動應用,選擇uni-app就可以了。

我選擇的是.NET MAUI Blazor應用,因為相對於 .NET MAUI來說,Xamarin.Forms 我不是很有興趣,我感覺就是跟Flutter似的,不停的套娃寫法屬實對我不友好,所以我選擇一個折中的,.NET 還湊合,HTML+CSS也還湊合。MAUI Blazor還是比較適合我的。

總結

暫無,下期開始建立第一個MAUI Blazor應用!


歡迎大家關注我的微信公眾號,一起進步,一起成長