重磅消息:微軟發布多平台應用UI框架 MAUI,網友直呼:牛x


本文內容來自微軟開發博客:https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/

轉載請注明來源,公眾號[開發者精選資訊]

 

在微軟2020年Build大會這天,Scott Hunter 在博客上發布了這篇文章,這篇文章中祭出微軟重磅戰略性UI框架:MAUI,接下來是翻譯,若要看原文,點擊上面的鏈接即可。

你可以用.NET構建任何東西,這是成千上萬的開發人員選擇.NET作為其職業生涯開發平台,而公司為其業務進行投資的主要原因之一。使用.NET 5,我們開始了統一.NET平台的旅程,將.NET Core和Mono / Xamarin集成在一個基類庫(BCL)和工具鏈(SDK)中。

在考慮統一的.NET中建築設備應用程序的外觀時,我們看到跨多個平台使用的許多設備,從Android 和iOS到Windows和macOS。為了滿足這一需求,我們很高興地宣布一個新的一流的UI框架,可以做到這一點:.NET多平台應用UI框架,親切地叫他MAUI。

讓我們向您介紹.NET MAUI是什么,MAUI單個項目開發人員的經驗,現代化的開發模式以及對未來的展望。

MAUI概述

什么是.NET MAUI

MAUI是日益流行的Xamarin.Forms開發套件的演變,該開發套件至本月已經有6年歷史了。多年來 UPS,Ernst&Young和Delta等公司一直在利用.NET Xamarin 技術來推動其業務發展。它還在幫助小型企業最大化其95%以上代碼共享的開發投資以及擊敗競爭對手進入市場方面非常成功。 MAUI將這一成功擴展到移動設備上,使其包含台式機,這是跨這兩者構建多平台應用程序的最佳方法,尤其是我們的新設備(例如新的Surface Duo)。

MAUI簡化了.NET開發人員的選擇,提供了一個開發棧來支持所有現代設備:Android,iOS,macOS和Windows。每個平台和UI控件的本機功能都可以通過一個簡單的跨平台API觸手可及,您可以在提供不妥協的用戶體驗的同時共享比以前更多的代碼。

單一項目開發人員經驗

MAUI的構建考慮了開發人員的生產力,包括開發人員所需的項目系統和跨平台工具。 MAUI將項目結構簡化為一個針對多個平台的項目。這意味着您只需單擊一下鼠標,便可以輕松地將其部署到所需的任何目標,包括台式機,仿真器,模擬器或物理設備。使用內置的跨平台資源,您可以將任何圖像,字體或翻譯文件添加到單個項目中,並且MAUI會自動設置本機掛鈎,以便您可以進行編碼。最后,您將始終可以訪問本機底層操作系統API,並且通過特定於新平台的集成將比以往更加輕松。在平台下,您可以添加特定操作系統的源代碼文件並訪問本機API。有了MAUI,一切都集中在一個地方,可以保持生產力。

毛伊島單一項目

這提供了:

  • 一個針對多個平台和設備的項目
  • 一個位置來管理字體和圖像等資源
  • 多目標組織您特定於平台的代碼

您掌握了一種構建客戶端應用程序的方法,MAUI方法,並且所有平台都在您的范圍之內。今天,Scott Hanselman和我將在Build,《通往一個.NET的旅程》中進行實際演示

現代應用程式模式

.NET的願景的一部分是為開發人員提供個人喜好方面的選擇,以便您可以使用.NET來提高工作效率。這表明您使用的是哪個IDE,無論是Visual Studio 2019,Visual Studio for Mac還是Visual Studio Code。MAUI將在所有這些版本中可用,並支持現有的MVVM和XAML模式以及將來的功能,例如帶有C#的模型視圖更新(MVU)甚至Blazor。

MVVM

Model-View-ViewModel(MVVM)和XAML是.NET開發人員數十年來的主要模式和實踐,它們是MAUI中的一流功能。這將繼續發展,以幫助您高效地構建和維護生產應用程序。

<StackLayout>
    <Label Text="Welcome to MAUI!" />
    <Button Text="{Binding Text}" 
            Command="{Binding ClickCommand}" />
</StackLayout>
public Command ClickCommand { get; } public string Text { get; set; } = "Click me"; int count = 0; void ExecuteClickCommand () { count++; Text = $"You clicked {count} times."; }

 

MVU

此外,我們使開發人員能夠編寫流暢的C#UI並實現日益流行的“Model-View-Update”(MVU)模式。MVU促進數據和狀態管理的單向流程,以及通過僅應用必要的更改即可快速更新UI的代碼優先開發經驗。有關以MVU為模式的更多信息,請查閱Elm編程指南Thomas Bandt的博客

下面是用MAUI編寫的MVU風格的基本計數器示例。

readonly State<int> count = 0;

[Body]
View body() => new StackLayout
{
    new Label("Welcome to MAUI!"),
    new Button(
        () => $"You clicked {count} times.",
        () => count.Value ++)
    )
};

 

這種模式非常適合熱重載,如下面所示,它具有從C#即時熱重載的新增樣式,漸變和字體。

MAUI模型視圖更新

MVVM和MVU都具有本機應用程序的性能和平台精確度。開發人員將能夠選擇最適合其偏好和用例的樣式。

從Xamarin.Forms過渡到.NET MAUI

Xamarin.Forms開發人員將使用他們已經了解和喜愛的所有相同控件和API來開始在.NET MAUI中使用新項目運行。隨着我們接近MAUI的發布,為了幫助開發人員將現有應用平穩過渡到.NET MAUI,我們打算提供與我們今天遷移到.NET Core相似的嘗試轉換支持和遷移指南。

.NET MAUI時間軸

我們將在今年晚些時候開始發布.NET MAUI預覽版,並於2021年11月開始提供.NET 6的全面可用性。我們已經在GitHub上發布了MAUI路線圖,並邀請您今天就加入我們!

Xamarin和Xamarin.Forms的下一步是什么

作為我們.NET統一的一部分,Xamarin.iOS和Xamarin.Android將作為.NET for iOS和.NET for Android成為.NET 6的一部分。由於這些綁定是Apple和Google發行的SDK的投影,因此此處沒有任何更改,但是將更新構建工具,目標框架別名和運行時框架別名,以匹配所有其他.NET 6工作負載。我們致力於為.NET開發人員提供最新的移動SDK的最新信息,這是.NET MAUI的基礎,並且始終如一。當.NET 6發行時,我們期望以其當前形式發行Xamarin SDK的最終版本,並將提供一年的服務。那時所有的現代工作都將轉移到.NET 6。

Xamarin.Forms將於今年晚些時候發布新的主要版本,並繼續在2021年11月通過.NET 6 GA每6周發布次要版本和服務版本。最終版本的Xamarin.Forms將在交付后的一年內提供服務,並且所有現代作品都將轉移到.NET MAUI。

立即參與

加入我們全新的存儲庫dotnet / maui,踏上通往MAUI的旅程一定要star並觀察以獲取最新進度通知,然后加入有關討論我們如何發展代碼庫的提案討論這是將Xamarin和Xamarin.Forms直接連接到.NET核心中的漫長旅程的開始,開源這個框架我們和您一樣興奮。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM