一個簡單的C#實例。包括:GRPC文件的創建生成、服務端和客戶端函數類庫的封裝、創建服務端和客戶端調用測試。若有錯誤或更好的方法還請指正。 1、創建並生成GRPC服務文件 (1)打開vs2022,創建新項目控制台應用(其他應用好像不行)。 (2)需要安裝三個nuget包,如圖: (3)項目添加新建項 ...
隨著.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應用!
歡迎大家關註我的微信公眾號,一起進步,一起成長