.NET MAUI跨平臺能力和兼容性探索
建立跨平台應用程式是現代開發者的基本技能,了解核心的底層專案結構是必不可少的。 這篇文章靈感來自於Tim Corey的影片 ".NET MAUI 首次亮相 - 它是什麼,我們如何使用它,它準備好了嗎" 探討了使用.NET MAUI框架構建跨平台應用程式的複雜性。
.NET Framework 支援專門為Windows構建和運行.NET應用程式,提供穩健的桌面、網路和伺服器應用程式環境。 相比之下,.NET MAUI 透過 .NET 的實現,將這一能力擴展到跨平台開發,允許您創建能夠在 Windows、Android 和 iOS上運行的應用程式,具統一的程式碼庫。
通過遵循Tim的見解,我們將探討如何設置、配置和優化這一軟體開發框架,充分利用.NET MAUI的潛力來構建高效且可維護的行動和桌面應用程式。
.NET MAUI 簡介
.NET MAUI 是.NET生態系統中一個尖端的跨平台框架,使開發者能夠使用託管代碼創建適用於Android、iOS、macOS和Windows的應用程式。 它利用了具有涵蓋.NET框架類別庫和共通語言執行環境(CLR),能在不同作業系統上實現高效的性能。
.NET MAUI 具有模組化和優化的架構,支援包括 C# 和 Visual Basic 等多種程式語言。 與 Visual Studio 無縫整合,確保高效的 .NET 開發,由 .NET 基金會和活躍的 .NET 開發者社群支援。
此框架體現了.NET開發的未來,可以為網頁、桌面和移動應用程式提供跨平台的相容性。 其能夠將 .NET 代碼編譯成機器代碼並支援應用程式模型框架如 WPF 和 Windows Forms,.NET MAUI 是現代 .NET 應用開發者的一個多功能且強大的工具。
了解 .NET MAUI 及其組件
Tim 還概述了 .NET MAUI,解釋它意指多應用程式使用者界面,允許應用程式在包括 Android、iOS、macOS、Windows 和 Tizen 平台上運行,所有的程式編寫在單一的程式語言下。 然而,目前不支援 Linux。 他詳述 .NET MAUI 作為 Xamarin 的後繼者所扮演的角色,以及如何在.NET 6下統一不同的.NET Core 和.NET Framework版。
在Visual Studio中設定 .NET MAUI
Tim 展示了使用視頻中尚未發佈的預覽版 Visual Studio 建立 .NET MAUI 專案的過程。 他強調了預覽版的些微差異,並提及釋放候選位元的穩定性。
創建新的 .NET MAUI 專案
首先,Tim Corey 演示如何設置全新的 .NET MAUI 專案。 以下是他影片中列出的步驟:
-
開啟 Visual Studio:首先打開 Visual Studio 並選擇建立新專案的選項。
-
選擇 MAUI 模板:在專案模板中,選擇 ".NET MAUI App"、".NET MAUI Blazor App" 或 ".NET MAUI Class Library" 並點選 "下一步"。Tim 使用 .NET MAUI App。

-
配置專案設置:輸入專案名稱、選擇位置、並輸入解決方案名稱。

- 創建專案:點選 "創建" 以預設配置和必要代碼生成專案。
此設置為探索跨平台開發奠定了基礎,Visual Studio 生成包含關鍵組件如 MauiProgram.cs、平台專用資料夾和共享資源的基本結構。
檢查項目結構和 .NET MAUI 程式碼
Tim 探索專案結構,指出其與 WPF 和 WinUI 專案的相似之處。
XAML 熟悉度
Tim 強調 .NET MAUI 使用 XAML 作為設計工具,類似 WPF 和 WinUI 專案。
專案結構
Tim 解釋了 MauiProgram.cs 的結構,注意到它包含使用一個靜態類別 MyProgram 以及一個入口點 CreateMauiApp。 這與其他 .NET 專案相似,有字型、依賴註入和日誌記錄的配置。
目標框架
專案針對多個框架設計:.NET 6 用於 Android、iOS、macOS(Catalyst)和 Windows。 它支持 Windows 10(版本19041及以上)和 Windows 11。
條件構建及平台
Tim 解釋使用專案文件中的條件語句來處理多個框架,並以分號分隔。 此可以針對特定平台和管理平台特定的依賴項。
平台專用代碼
為每個平台(Android、iOS、macOS、Tizen、Windows)管理平台专用代码的資料夾。 開發人員可以通過從項目文件中移除相應的目標和資料夾來排除平台。
构建过程与抽象
.NET MAUI 抽象了许多平台特定的工作,编译代码以使用每个平台的 API。這可以确保每个平台的原生外观和感受。
配置和資產
Tim 涵蓋了如 AndroidManifest.xml 和 Info.plist 等 iOS 的配置文件,這些文件用來處理平台特定的设置。 可用的 GUI 工具可以更容易地编辑这些文件,尤其是在 iOS 上。
探索平台特定功能
Tim 强调平台特定功能的重要性以及 .NET MAUI 如何处理它们。 他讨论了平台文件夹,包含支持平台的子文件夹以包括平台专用代码。
共享项目文件
Tim 然後探討了共享專案結構,解釋共享代碼如何一次撰寫即可在多個平台上運行。 他透過檢查 MainPage.xaml 和 MainPage.xaml.cs 檔來說明這一點,展示如何使用 XAML 作為 UI 和 C# 為後台代碼。
在多平台上運行應用程式
在多個平台上測試 .NET MAUI 應用程式是評估性能和外觀的關鍵。 Tim 強調在 Windows 機器上進行測試,Android 模擬器,和在擁有 Apple 開發者帳戶的 iOS 設備上測試。
設置開發環境
Tim 概述了不同平台需不同的設置。 對於 Android,安裝 Android 模擬器。 對於 iOS,需要 Apple 開發者帳戶,約每年需 $100。
啟用 Windows 的開發者模式
在 Windows 上啟動開發者模式對於測試 .NET MAUI 應用程式至關重要,允許在無需 Microsoft Store的情况下加載應用。

在 Windows 上測試
Tim 演示了在 Windows 機器上測試 .NET MAUI 應用程式,利用熱重載功能,即時更改應用程式代碼並在即時看到更新。

在 Android 模擬器上測試
Tim 使用執行 Android 12 的 Galaxy Nexus 模擬器進行測試,說明啟動模擬器、安裝和啟動應用程式的過程。

Windows 和 Android 版本比較
Tim 比較了應用程式在這兩個平台的表現,儘管外觀有所不同,功能性仍然一致。

.NET MAUI 和 Xamarin 的未來
.NET MAUI 完全由 Microsoft 支援,預期會持續改進。 作為其後繼者,Xamarin 專案可以升級到 .NET MAUI,確保開發人員的順利過渡。
結論
Tim Corey 提供了 .NET MAUI 的綜合概述、其設置和功能。 他的影片是急於探索這一框架的開發人員的寶貴資源。 如需更深入的研究和實際的編碼示例,請訪問他的 YouTube 頻道 IAmTimCorey,並查看其網站上的更多資源 iamtimcorey.com。


