.NET MAUI的最新更新

微軟技術棧發表於2021-12-04

.NET 多平臺應用程式 UI (.NET MAUI) 可以使用單個程式碼庫為 Windows、macOS、iOS 和 Android 構建本機客戶端應用程式,併為 Blazor 混合方案提供本機容器和控制元件。.NET MAUI 是 Visual Studio 中的一個框架,它抽象了已經可用的本機 UI 框架——WinUI for Windows、Mac Catalyst for macOS/iPadOS、iOS 和 Android。儘管它不是另一個本機 UI 框架,但仍有大量工作需要在這些裝置上提供最佳開發和執行時體驗。

.NET 團隊一直在與社群一起努力的開發,我們致力於它的釋出。不幸的是,.NET MAUI 將無法在 11 月與 .NET 6 GA 一起釋出。我們希望在第一天就為我們的使用者提供最佳體驗、效能和質量,為此,我們需要推遲時間表。我們現在的目標是在 2022 年第二季度初推出 .NET MAUI 。

與此同時,我們將繼續增強 Xamarin 並推薦它用於構建生產移動應用程式,並繼續釋出 .NET MAUI 的月度預覽。我們計劃為 .NET MAUI 提供的所有功能將在 11 月 .NET 6 釋出時提供,但我們將繼續努力提高質量並解決客戶反饋。我們鼓勵您嘗試預覽。.NET 升級助手還將支援將 Xamarin 專案升級到 .NET MAUI。

.NET 6 RC1 是最終版本之前的版本,這意味著您可以在生產中使用它並獲得支援。這不包括 .NET MAUI 包。.NET MAUI 包的下一個版本,當 .NET 6 RC2 釋出時,將在版本中顯示“預覽”。

感謝您在此旅程中與我們分享的所有反饋、貢獻和興奮。請繼續釋出,我們期待明年年初發布高質量的版本。現在讓我們看看這個版本中的一些新功能。

.NET MAUI 預覽版8 亮點

.NET MAUI 的 9 月預覽版完成了一些重要的 Visual Studio 整合,即在 Visual Studio 2022 安裝程式中將 .NET MAUI 作為工作負載安裝,並將 Windows 平臺摺疊到我們的單一、多目標專案中。藉助 Visual Studio 2022 預覽版 4,您現在可以通過 C# 和 XAML 使用更廣泛的熱過載支援,以及新的 XAML 實時預覽皮膚,以打造高效、專注的開發環境。在 .NET MAUI SDK 本身中,預覽 8 包括對應用程式啟動模式的更新、擴充套件處理程式的能力,以及在我們接近功能完整性時的其他各種新控制元件功能。

Visual Studio 2022 生產力

安裝 Visual Studio 2022 時,您現在可以在使用 .NET 工作負載的移動開發中檢查 .NET MAUI(預覽版)。這將引入 .NET 6 以及可選的工作負載依賴項:Android、iOS 和 Mac Catalyst。以桌面為目標時,您還需要選擇使用 .NET、UWP 的桌面開發和使用 C++ 工作負載的桌面開發。

176e0d427d2ccc113c897eda6726dccd.png

安裝後,.NET MAUI 模板和 Visual Studio 的功能都可用。實時預覽將在 Visual Studio 視窗中的皮膚中映象您正在執行的應用程式,您可以停靠在最方便的任何位置。該皮膚支援放大和縮小以關注 UI 的每個細節,在水平和垂直軸上對齊元素的指南,並且在某些平臺上,您可以懸停並選擇 UI 元素以獲取大小和距離資訊。

動畫.gif

XAML 熱過載現在適用於 Android、iOS(在 Windows 上通過熱重啟或遠端構建主機)和 Windows。.NET Hot Restart 也在 Android、iOS 和 Windows 上與 XAML Hot Reload 協同工作。

建立新專案時,您現在會在 Platforms 資料夾中看到 Windows 平臺與 Android、iOS 和 Mac Catalyst 並列。要使用 Windows,首先需要安裝適用於 Visual Studio 2022 的 Windows App SDK 擴充套件,然後取消註釋 csproj 檔案頂部的 TargetFramework 節點。在未來的版本中,預設情況下,這將通過 .NET MAUI 預安裝的擴充套件程式提供。

.NET MAUI SDK 更新

您遷移現有應用程式最顯著的更新是我們如何實現 .NET Host Builder 模式。我們現在與 ASP.NET 和 Blazor 如何使用建立並返回 MauiApp 的 MauiProgram 類保持一致。現在每個平臺都呼叫 MauiProgram.CreateMauiApp。將現有專案與新模板或pull request進行比較,以檢視對 Android/MainApplication.cs、iOS/AppDelegate.cs 和 macCatalyst/AppDelegate.cs 的這些更改。

示例MauiProgram:

public static class MauiProgram

{

    public static MauiApp CreateMauiApp()

    {

        var builder = MauiApp.CreateBuilder();

        builder

            .UseMauiApp<App>()

            .ConfigureFonts(fonts =>

            {

                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");

            });



        return builder.Build();

    }

}

安卓示例MainApplication:

public class MainApplication : MauiApplication

{

    public MainApplication(IntPtr handle, JniHandleOwnership ownership)

        : base(handle, ownership)

    {

    }



    protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();

}

安卓更新

Android 12 (API 31) 現在是為 Android 構建的 .NET 6 應用程式的預設版本。要使用 Android 12,您需要手動安裝 JDK 11。一旦我們更新 Visual Studio 中的 Android 工具以使用 JDK 11,我們將預設將此依賴項與 .NET MAUI 捆綁在一起。在此之前,JDK 11 可能會對 Android 設計器、SDK 管理器和裝置管理器產生不利影響。

Android 專案現在預設使用 MaterialTheme。確保 Platforms/Android/MainActivity.cs 指定 @style/Maui.SplashTheme 否則您可能會在 Android 上遇到執行時錯誤。例如,檢視更新的 .NET MAUI 模板

其他變化

其他值得注意的變化包括:

  • MinHeightRequest、MaxHeightRequest、MinWidthRequest、MaxWidthRequest 已刪除“Request”字尾,佈局系統現在將它們視為真實值
  • 將行為附加到任何控制元件對映器的簡化方法 – #1859
  • Shell 主題樣式的各種改進
  • 為 Android #2027和 iOS #2029新增了 RefreshView
  • 新增絕對佈局 #2136
  • 新增了從右到左 (RTL) FlowDirection #948
  • 新增 Button.Icon ImageSource #2079

今天開始

準備好了嗎?開啟 Visual Studio 2022 並建立一個新專案。搜尋並選擇 .NET MAUI。

3988784151d428f831d5ebabade1e3b4.png
有關 .NET MAUI 入門的更多資訊,請參閱我們的文件

歡迎反饋

Visual Studio 2022 正在快速啟用 .NET MAUI 的新功能。當您在除錯、部署和編輯器相關體驗方面遇到任何問題時,請使用“幫助”>“傳送反饋”選單報告您的體驗。
請通過dotnet/maui在 GitHub 上與我們互動,讓我們瞭解您使用 .NET MAUI 建立新應用程式的體驗。
要檢視未來版本中的內容,請訪問我們的產品路線圖,要了解功能完整性的狀態,請訪問我們的狀態 wiki


歡迎關注微軟中國MSDN訂閱號,獲取更多最新發布!
ca6b5be320bb707d0ccbc341bf8ea27.jpg

相關文章