<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          官宣!微軟跨平臺 UI 框架 .NET MAUI 6 正式發(fā)布!

          共 11342字,需瀏覽 23分鐘

           ·

          2022-06-01 14:42

          點擊藍字

          關(guān)注我們

          翻譯:Wendy Zang

          校驗:李衛(wèi)涵 - 微軟 MVP;朱震 - 微軟 MVP

          排版:Rani Sun


          歡迎使用 .NET 多平臺應(yīng)用程序 UI。此版本標志著我們在統(tǒng)一 .NET 平臺的多年旅程中的新里程碑。現(xiàn)在,您和超過 500 萬其他 .NET 開發(fā)人員擁有面向 Android、iOS、macOS 、Windows和Linux(由Github開源社區(qū)支持) 的一流跨平臺 UI 技術(shù)棧,以補充 .NET 工具鏈 (SDK) 和基礎(chǔ)類庫 (BCL)。您可以使用 .NET 構(gòu)建任何東西。


          加入我們的 Microsoft Build 2022,我們將向您介紹所有更新,以便使用 .NET 和 Visual Studio 為任何設(shè)備構(gòu)建本機應(yīng)用程序。


          這只是我們創(chuàng)建令 .NET 開發(fā)人員滿意的桌面和移動應(yīng)用程序體驗之旅的開始。對于下一階段,現(xiàn)在為更廣泛的 .NET 生態(tài)系統(tǒng)奠定了基礎(chǔ),將 .NET Framework 和舊項目系統(tǒng)中的插件、庫和服務(wù)引入 .NET 6 和 SDK 樣式項目。今天可用的有:

          如需幫助將庫遷移到 .NET 6,請查看最近的客座博客文章,詳細介紹了 Michael Rumpler (MR.Gestures) 和 Luis Matos (Plugin.ValidationRules) 遷移到 .NET MAUI 庫的體驗。


          當前 18 個月的發(fā)布計劃完全支持 .NET MAUI 工作負載,并將按照與 .NET 相同的節(jié)奏提供服務(wù)。我們對 .NET MAUI 的持續(xù)關(guān)注仍然是質(zhì)量、解決已知問題并根據(jù)您的反饋確定問題的優(yōu)先級。這還包括我們?yōu)闃?gòu)建專門針對 Android、Android Wear、CarPlay、iOS、macOS 和 tvOS 的應(yīng)用程序而交付的工作負載,這些應(yīng)用程序直接使用來自 .NET 的本機工具包,以及支持庫 AndroidX、Facebook、Firebase、Google Play Services 和 Skiasharp。

           

          使用 .NET MAUI,您可以實現(xiàn)不折不扣的用戶體驗,同時共享比以往更多的代碼。.NET MAUI 通過每個平臺提供的主要應(yīng)用工具包、現(xiàn)代開發(fā)人員生產(chǎn)力和我們迄今為止最快的移動平臺使用本機 UI。

          .NET 多平臺應(yīng)用程序 UI

          https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack

          多年旅程中

          https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/

          Github開源社區(qū)

          https://github.com/jsuarezruiz/maui-linux

          Microsoft Build 2022

          https://mybuild.microsoft.com/sessions/599c82b6-0c5a-4add-9961-48b85d9ffde0?source=sessions

          Michael Rumpler

          https://devblogs.microsoft.com/xamarin/migrating-mrgestures-to-dotnet-maui/

          Luis Matos

          https://devblogs.microsoft.com/xamarin/tips-for-porting-your-xamarin-library-to-dotnet-maui/

          當前 18 個月的發(fā)布計劃

          https://dotnet.microsoft.com/platform/support/policy

          已知問題

          https://github.com/dotnet/maui/6.0/known-issues.md



          原生 UI,不妥協(xié)

          .NET MAUI 的主要目標是讓您能夠交付每個平臺(Android、iOS、macOS 和 Windows)專門設(shè)計的最佳應(yīng)用體驗,同時讓您能夠通過豐富的樣式和圖形打造一致的品牌體驗。開箱即用,每個平臺的外觀和行為都符合其應(yīng)有的方式,無需任何額外的小部件或樣式來模仿。例如,Windows 上的 .NET MAUI 由 WinUI 3 提供支持,WinUI 3 是 Windows App SDK 附帶的主要本機 UI 組件。

          使用 C# 和 XAML 從包含 40 多個控件、布局和頁面的豐富工具包構(gòu)建您的應(yīng)用程序。在移動控件的 Xamarin 肩膀上,.NET MAUI 增加了對多窗口桌面應(yīng)用程序、菜單欄和新動畫功能、邊框、角落、陰影、圖形等的支持。哦,還有我將在下面重點介紹的新 BlazorWebView。

          閱讀 .NET MAUI 文檔中有關(guān)控件的更多信息:頁面、布局和視圖

          WinUI 3

          https://docs.microsoft.com/windows/apps/winui/winui3

          Windows App SDK

          https://docs.microsoft.com/windows/apps/windows-app-sdk

          新動畫功能

          https://docs.microsoft.com/dotnet/maui/user-interface/animation/basic

          文檔中有關(guān)控件的更多信息:頁面、布局和視圖

          https://docs.microsoft.com/dotnet/maui/user-interface/controls/



          可訪問性優(yōu)先

          使用原生 UI 的一個主要優(yōu)勢是繼承的可訪問性支持,我們可以在語義服務(wù)的基礎(chǔ)上構(gòu)建它,從而比以往更容易創(chuàng)建高度可訪問的應(yīng)用程序。我們與客戶密切合作,重新設(shè)計我們開發(fā)可訪問性的方式。從這些對話中,我們設(shè)計了 .NET MAUI 可訪問性語義服務(wù)來控制:

          1. 描述、提示和標題級別等屬性

          2. 聚焦

          3. 屏幕閱讀器

          4. 自動化屬性

          閱讀 .NET MAUI 文檔中有關(guān)可訪問性語義服務(wù)的更多信息。

          可訪問性語義服務(wù)

          https://docs.microsoft.com/dotnet/maui/fundamentals/accessibility



          超越用戶界面

          .NET MAUI 提供簡單的 API 來訪問每個平臺的服務(wù)和功能,例如加速度計、應(yīng)用程序操作、文件系統(tǒng)、通知等等。在此示例中,我們配置“應(yīng)用程序操作”,為每個平臺上的應(yīng)用程序圖標添加菜單選項:

          AppActions.SetAsync(    new AppAction("current_info", "Check Current Weather", icon: "current_info"),    new AppAction("add_location", "Add a Location", icon: "add_location"));

          閱讀 .NET MAUI 文檔中有關(guān)訪問平臺服務(wù)和功能的更多信息。

          訪問平臺服務(wù)和功能

          https://docs.microsoft.com/en-gb/dotnet/maui/



          輕松定制

          無論您是擴展 .NET MAUI 控件的功能還是建立新的平臺功能,.NET MAUI 的架構(gòu)都具有可擴展性,因此您永遠不會碰壁。舉個例子,Entry 控件——一個在一個平臺上呈現(xiàn)不同的控件的規(guī)范示例。Android 會在文本字段下方繪制下劃線,開發(fā)人員通常希望刪除該下劃線。使用 .NET MAUI,自定義整個項目中的每個條目只需幾行代碼:

          #if ANDROIDMicrosoft.Maui.Handlers.EntryHandler.Mapper.ModifyMapping("NoUnderline", (h, v) =>{    h.PlatformView.BackgroundTintList = ColorStateList.ValueOf(Colors.Transparent.ToPlatform());});#endif

          這是最近由 Cayas Software 創(chuàng)建新地圖平臺控件的一個很好的示例。博客文章演示了為控件創(chuàng)建處理程序、為每個平臺實現(xiàn),然后通過在 .NET MAUI 中注冊控件來使其可用。

          .ConfigureMauiHandlers(handlers =>{    handlers.AddHandler(typeof(MapHandlerDemo.Maps.Map),typeof(MapHandler));})

          閱讀 .NET MAUI 文檔中有關(guān)使用處理程序自定義控件的更多信息。

          示例

          https://www.cayas.de/blog/dotnet-maui-custom-map-handler

          使用處理程序自定義控件

          https://docs.microsoft.com/dotnet/maui/user-interface/handlers/customize



          現(xiàn)代開發(fā)人員生產(chǎn)力

          .NET 不僅僅是一種可以構(gòu)建任何東西的技術(shù),我們還希望 .NET 能夠使用通用語言特性、模式和實踐以及工具來提高您的生產(chǎn)力。


          .NET MAUI 使用 .NET 6 中引入的新 C# 10 功能,包括全局 using 語句和文件范圍命名空間 - 非常有助于減少文件中的混亂和雜亂。.NET MAUI 以“單一項目”為重點,將多目標提升到了一個新的水平。

          在新的 .NET MAUI 項目中,平臺位于一個子文件夾中,將重點放在您花費大部分精力的應(yīng)用程序上。在項目的 Resources 文件夾中,您可以在一個地方管理應(yīng)用程序的字體圖像應(yīng)用程序圖標啟動屏幕、原始資源和樣式。.NET MAUI 將針對每個平臺的獨特需求進行優(yōu)化。

          一個地方

          https://docs.microsoft.com/dotnet/maui/fundamentals/single-project

          字體

          https://docs.microsoft.com/dotnet/maui/user-interface/fonts

          圖像

          https://docs.microsoft.com/dotnet/maui/user-interface/images/images

          應(yīng)用程序圖標

          https://docs.microsoft.com/dotnet/maui/user-interface/images/app-icons?tabs=android

          啟動屏幕

          https://docs.microsoft.com/dotnet/maui/user-interface/images/splashscreen?tabs=android

          多項目vs單項目: 仍然支持為每個平臺使用單獨的項目來構(gòu)建您的解決方案,因此您可以選擇單項目方法來開發(fā)您的應(yīng)用程序。


          .NET MAUI 使用在 ASP.NET 和 Blazor 應(yīng)用程序中流行于 Microsoft.Extensions 庫的構(gòu)建器模式作為初始化和配置應(yīng)用程序的單一位置。從這里,您可以為 .NET MAUI 提供您的字體、利用平臺特定的生命周期事件、配置依賴項、啟用特定功能、啟用供應(yīng)商控制工具包等。

          public static class MauiProgram{    public static MauiApp CreateMauiApp()    {        var builder = MauiApp.CreateBuilder();        builder            .UseMauiApp<App>()            .ConfigureServices()            .ConfigureFonts(fonts =>            {                fonts.AddFont("Segoe-Ui-Bold.ttf", "SegoeUiBold");                fonts.AddFont("Segoe-Ui-Regular.ttf", "SegoeUiRegular");                fonts.AddFont("Segoe-Ui-Semibold.ttf", "SegoeUiSemibold");                fonts.AddFont("Segoe-Ui-Semilight.ttf", "SegoeUiSemilight");            });
          return builder.Build(); }}
          public static class ServicesExtensions{    public static MauiAppBuilder ConfigureServices(this MauiAppBuilder builder)    {        builder.Services.AddMauiBlazorWebView();        builder.Services.AddSingleton<SubscriptionsService>();        builder.Services.AddSingleton<ShowsService>();        builder.Services.AddSingleton<ListenLaterService>();#if WINDOWS        builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.Windows.NativeAudioService>();#elif ANDROID        builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.Android.NativeAudioService>();#elif MACCATALYST        builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.MacCatalyst.NativeAudioService>();        builder.Services.TryAddSingleton< Platforms.MacCatalyst.ConnectivityService>();#elif IOS        builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.iOS.NativeAudioService>();#endif       builder.Services.TryAddTransient<WifiOptionsService>();        builder.Services.TryAddSingleton<PlayerService>();
          builder.Services.AddScoped<ThemeInterop>(); builder.Services.AddScoped<ClipboardInterop>(); builder.Services.AddScoped<ListenTogetherHubClient>(_ => new ListenTogetherHubClient(Config.ListenTogetherUrl));

          return builder;    }}

          在 .NET MAUI 文檔中閱讀有關(guān)使用 MauiProgram 和單個項目啟動應(yīng)用程序的更多信息。 

          使用 MauiProgram

          https://docs.microsoft.com/dotnet/maui/fundamentals/app-startup

          單個項目

          https://docs.microsoft.com/dotnet/maui/fundamentals/single-project



          將 Blazor 帶入桌面和移動設(shè)備

          .NET MAUI 也非常適合希望通過本機客戶端應(yīng)用程序參與其中的 Web 開發(fā)人員。.NET MAUI 與 Blazor 集成,因此您可以直接在本機移動和桌面應(yīng)用程序中重用現(xiàn)有的 Blazor Web UI 組件。借助 .NET MAUI 和 Blazor,您可以重用您的 Web 開發(fā)技能來構(gòu)建跨平臺的本機客戶端應(yīng)用程序,并構(gòu)建跨移動、桌面和 Web 的單一 UI。

          .NET MAUI 在設(shè)備上本地執(zhí)行 Blazor 組件(不需要 WebAssembly)并將它們呈現(xiàn)到嵌入式 Web 視圖控件。因為您的 Blazor 組件在 .NET 進程中編譯和執(zhí)行,所以它們不限于 Web 平臺,并且可以利用任何本機平臺功能,例如通知、藍牙、地理位置和傳感器、文件系統(tǒng)等等。您甚至可以在 Blazor Web UI 旁邊添加本機 UI 控件。這是一種全新的混合應(yīng)用程序:Blazor Hybrid!


          開始使用 .NET MAUI 和 Blazor 很簡單:只需使用隨附的 .NET MAUI Blazor 應(yīng)用程序項目模板。

          此模板已全部設(shè)置好,因此您可以開始使用 HTML、CSS 和 C# 構(gòu)建 .NET MAUI Blazor 應(yīng)用程序。.NET MAUI 的 Blazor Hybrid 教程將引導(dǎo)您構(gòu)建和運行您的第一個 .NET MAUI Blazor 應(yīng)用程序


          或者,將 BlazorWebView 控件添加到現(xiàn)有的 .NET MAUI 應(yīng)用程序,無論您想在哪里開始使用 Blazor 組件:

          <BlazorWebView HostPage="wwwroot/index.html">    <BlazorWebView.RootComponents>        <RootComponent Selector="#app" ComponentType="{x:Type my:Counter}" />    </BlazorWebView.RootComponents></BlazorWebView>

          Blazor Hybrid 支持現(xiàn)在也可用于 WPF 和 Windows 窗體,因此您可以開始對現(xiàn)有桌面應(yīng)用程序進行現(xiàn)代化改造以在 Web 上運行或使用 .NET MAUI 跨平臺運行。適用于 WPF 和 Windows 窗體的 BlazorWebView 控件在 NuGet 上可用。查看 WPF 和 Windows 窗體的 Blazor Hybrid 教程,了解如何開始。


          若要詳細了解 Blazor Hybrid 對 .NET MAUI、WPF 和 Windows 窗體的支持,請查看 Blazor Hybrid 文檔。

          .NET MAUI Blazor 應(yīng)用程序

          https://docs.microsoft.com/aspnet/core/blazor/hybrid/tutorials/maui

          BlazorWebView 控件添加到現(xiàn)有的 .NET MAUI 應(yīng)用程序

          https://docs.microsoft.com/aspnet/core/blazor/hybrid/tutorials/maui

          WPF 和 Windows 窗體

          https://docs.microsoft.com/aspnet/core/blazor/hybrid/tutorials/windows-forms

          Blazor Hybrid 教程

          https://docs.microsoft.com/aspnet/core/blazor/hybrid



          Linux平臺的支持(Github開源社區(qū)支持)

          項目地址:https://github.com/jsuarezruiz/maui-linux 

          基于 GtkSharp 添加 Linux 支持



          針對速度進行了優(yōu)化

          .NET MAUI 專為提高性能而設(shè)計。您已經(jīng)告訴我們,讓您的應(yīng)用程序盡快啟動非常重要,尤其是在 Android 上。.NET MAUI 中的 UI 控件在本機平臺控件上實現(xiàn)了一種精簡的、解耦的處理程序映射器模式。這減少了 UI 渲染中的層數(shù),并簡化了控件定制。

           

          .NET MAUI 中的布局已被設(shè)計為使用一致的管理器模式來優(yōu)化度量并安排循環(huán)以更快地呈現(xiàn)和更新您的 UI。除了 StackLayout 之外,我們還展示了針對特定場景進行預(yù)優(yōu)化的布局,例如 HorizontalStackLayout 和 VerticalStackLayout。

           

          從這個旅程的一開始,我們就設(shè)定了一個目標,即在過渡到 .NET 6 時提高啟動性能并保持或減小應(yīng)用程序大小。在 GA 時,我們已經(jīng)實現(xiàn)了 34.9% 的 .NET MAUI 和 39.4 改進.NET for Android 的改進百分比。這些收益也擴展到復(fù)雜的應(yīng)用程序; .NET Podcast 示例應(yīng)用程序的啟動時間為 1299 毫秒,GA 時為 814.2 毫秒,自 Preview 13 以來提高了 37.3%。

           

          默認情況下啟用這些設(shè)置以提供具有這些優(yōu)化的發(fā)布版本。

          請繼續(xù)關(guān)注我們?yōu)閷崿F(xiàn)這些結(jié)果所做的深入博客文章。

          .NET Podcast 示例應(yīng)用程序

          https://docs.microsoft.com/dotnet/maui/fundamentals/accessibility



          今天開始

          要開始在 Windows 上使用 .NET MAUI,請安裝 Visual Studio 2022 Preview 或?qū)⑵涓碌桨姹?17.3 Preview 1.1。在安裝程序中,選擇工作負載“.NET Multi-platform App UI development”。

          要在 Mac 上使用 .NET MAUI,請安裝適用于 Mac 的新 Visual Studio 2022 預(yù)覽版(17.3 預(yù)覽版 1)


          Visual Studio 2022 將在今年晚些時候支持 GA .NET MAUI 工具。在今天的 Windows 上,您可以使用 XAML 和 .NET Hot Reload 以及用于 XAML、C#、Razor 和 CSS 等的強大編輯器來加速您的開發(fā)循環(huán)。使用 XAML 實時預(yù)覽和實時可視樹,您可以預(yù)覽、對齊、檢查您的 UI,并在調(diào)試時對其進行編輯。.NET MAUI 的新單項目體驗現(xiàn)在包括項目屬性頁,可提供可視化編輯體驗,以便為您的應(yīng)用配置多平臺定位。


          在 Mac 上,您現(xiàn)在可以加載單項目和多項目 .NET MAUI 解決方案,以使用漂亮的全新原生 Visual Studio 2022 for Mac 體驗進行調(diào)試。用于提高您開發(fā) .NET MAUI 應(yīng)用程序的生產(chǎn)力的其他功能將在后續(xù)預(yù)覽版中提供。


          我們建議立即開始將您的庫更新為 .NET MAUI 并創(chuàng)建新的 .NET MAUI 項目。在深入研究將 Xamarin 項目轉(zhuǎn)換為 .NET MAUI 之前,請查看您的依賴項、Visual Studio 對 .NET MAUI 的支持狀態(tài)以及已發(fā)布的已知問題,以確定轉(zhuǎn)換的正確時間。請記住,現(xiàn)代生命周期策略將繼續(xù)支持 Xamarin,該策略規(guī)定距上一個主要版本 2 年。

          請安裝 Visual Studio 2022 Preview

          https://aka.ms/vs2022preview

          新 Visual Studio 2022 預(yù)覽版(17.3 預(yù)覽版 1)

          https://visualstudio.microsoft.com/vs/mac/preview/

          現(xiàn)代生命周期策略

          https://dotnet.microsoft.com/platform/support/policy/xamarin



          資源

          • .NET MAUI – 研討會

            https://github.com/dotnet-presentations/dotnet-maui-workshop

          • 構(gòu)建您的第一個 .NET MAUI 應(yīng)用程序

            https://dotnet.microsoft.com/learn/maui/first-app-tutorial/intro

          • 文檔

            https://docs.microsoft.com/dotnet/maui

          • 已知的問題

            https://github.com/dotnet/maui/wiki/Known-Issues

          • 微軟學(xué)習(xí)路徑

            https://docs.microsoft.com/learn/paths/build-apps-with-dotnet-maui/

          • 問答論壇

            https://docs.microsoft.com/answers/topics/dotnet-maui.html

          • 發(fā)行說明

            https://github.com/dotnet/maui/releases/tag/6.0.312

          • 示例

            https://github.com/dotnet/maui-samples

          • 支持政策 – .NET MAUI

            https://dotnet.microsoft.com/platform/support/policy/maui

          • 支持政策 – Xamarin

            https://dotnet.microsoft.com/platform/support/policy/xamarin



          我們需要您的反饋

          我們很樂意聽取您的意見!當您遇到任何問題時,請在 GitHub 上的 dotnet/maui 上提交報告。

          dotnet/maui 

          https://github.com/dotnet/maui/issues/new/choose



          概括

          借助 .NET MAUI,您可以使用在 .NET 中實踐的相同生產(chǎn)力模式,從單個代碼庫構(gòu)建適用于 Android、iOS、macOS 和 Windows 的本機應(yīng)用程序。.NET MAUI 的瘦且分離的 UI 和布局架構(gòu)以及單個項目功能使您能夠?qū)W⒂谝粋€應(yīng)用程序,而不是同時兼顧多個平臺的獨特需求。借助 .NET 6,我們不僅為 Android 提供了性能改進,而且還針對所有平臺目標進行了改進。


          更少的平臺代碼、更多的共享代碼、一致的標準和模式、輕量級和高性能架構(gòu)、移動和桌面原生體驗——這僅僅是開始。我們期待在接下來的幾個月中看到庫和更廣泛的生態(tài)系統(tǒng)與 .NET MAUI 一起為 .NET 開發(fā)人員定義跨平臺應(yīng)用程序開發(fā)的新時代,使您和您的組織能夠?qū)崿F(xiàn)更多目標。


          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  a v在线视频 | 91精品观看91久久久 | 国产在视频线精品视频www666 | 特级西西高清4Www电影 | 黄片靠逼|