系統(tǒng)下載、安裝、激活,就到系統(tǒng)天地來!

所在位置: 首頁 — IT資訊 — 微軟

微軟 .NET 官宣跨平臺 UI 框架 MAUI

作者:系統(tǒng)天地 日期:2020-05-22

5月21日消息 在Build 2020開發(fā)者大會上,微軟宣布推出 .NET 官宣跨平臺 UI 框架 MAUI,全稱是 .NET Multi-platform App UI。正式版將在 .NET 6 和大家見面。

微軟介紹,你可以使用.NET進行任何構(gòu)建。這是成千上萬的開發(fā)人員選擇.NET作為其職業(yè)生涯平臺,而微軟還為其業(yè)務(wù)進行投資的主要原因之一。使用.NET 5,微軟開始了統(tǒng)一.NET平臺的旅程,將.NET Core和Mono/Xamarin集成在一個基類庫(BCL)和工具鏈(SDK)中。

.NET MAUI考慮到了跨多個平臺使用的許多設(shè)備,從Android、iOS到Windows、macOS。

.NET MAUI是日益流行的Xamarin.Forms工具演變,Xamarin.Forms已經(jīng)有6年歷史了。多年來,UPS、Ernst&Young和Delta等公司一直在利用.NET上Xamarin的移動專業(yè)知識來推動其業(yè)務(wù)發(fā)展。它幫助小型企業(yè)最大化其95%以上代碼共享的開發(fā)投資并擊敗競爭對手進入市場。.NET MAUI將這一成功擴展到了移動設(shè)備上,從而囊括了桌面設(shè)備,這是在兩者之間構(gòu)建多平臺應(yīng)用程序的最佳方法,尤其是微軟的新設(shè)備(例如新的Surface Duo)。

單一項目開發(fā)人員經(jīng)驗

.NET MAUI簡化了.NET開發(fā)人員的選擇,提供了一個單一堆棧來支持所有現(xiàn)代工作負載:Android,iOS,macOS和Windows。每個平臺和UI控件的原生功能都可以通過一個簡單的跨平臺API觸手可及,你可以在提供不妥協(xié)的用戶體驗的同時共享比以前更多的代碼。

.NET MAUI的構(gòu)建考慮了開發(fā)人員的生產(chǎn)力,包括開發(fā)人員需要的項目系統(tǒng)和跨平臺工具。.NET MAUI將項目結(jié)構(gòu)簡化為一個針對多個平臺的項目。這意味著你只需單擊一下鼠標(biāo),便可以輕松地將其部署到所需的任何目標(biāo),包括臺式機、仿真器、模擬器或物理設(shè)備。使用內(nèi)置的跨平臺資源,你可以將任何圖像、字體或翻譯文件添加到單個項目中,.NET MAUI將自動設(shè)置本機掛鉤,以便你可以進行編碼。最后,你將始終可以訪問本機底層操作系統(tǒng)API,并且通過特定于新平臺的集成將比以往更加輕松。在平臺下,你可以添加特定操作系統(tǒng)的源代碼文件并訪問本機API。有了.NET MAUI,一切都集中在一個地方,你可以用它來保持生產(chǎn)力。

這提供了:

  • 一個針對多個平臺和設(shè)備的項目。

  • 一個位置來管理字體和圖像等資源。

  • 多目標(biāo)組織您特定于平臺的代碼。

現(xiàn)代應(yīng)用程式模式

.NET的愿景的一部分是在開發(fā)人員的個人喜好方面為開發(fā)人員提供選擇,以便使用.NET可以提高工作效率。這表明你在哪個IDE中,包括Visual Studio 2019,Visual Studio for Mac甚至是Visual Studio Code,.NET MAUI將在所有這些版本中可用,并支持現(xiàn)有的MVVM和XAML模式以及將來的功能,例如使用C#甚至是Blazor的Model-View-Update(MVU)。

MVVM

Model-View-ViewModel(MVVM)和XAML是.NET開發(fā)人員幾十年來的主要模式和實踐,它們是.NET MAUI中的一流功能。這將繼續(xù)發(fā)展,以幫助你高效地構(gòu)建和維護生產(chǎn)應(yīng)用程序。

<StackLayout>    <Label Text="Welcome to .NET MAUI!" />    <Button Text="{Binding Text}"             Command="{Binding ClickCommand}" /></StackLayout>
<StackLayout>    <Label Text="Welcome to .NET MAUI!" />    <Button Text="{Binding Text}"             Command="{Binding ClickCommand}" /></StackLayout>public Command ClickCommand { get; }

MVU

此外,微軟使開發(fā)人員能夠編寫流暢的C#UI并實現(xiàn)日益流行的“模型-視圖-更新”(MVU)模式。MVU促進數(shù)據(jù)和狀態(tài)管理的單向流程,以及通過僅應(yīng)用必要的更改來快速更新UI的代碼優(yōu)先開發(fā)經(jīng)驗。

下面是用.NET MAUI編寫的MVU樣式的基本計數(shù)器示例。

readonly State<int> count = 0;[Body]View body() => new StackLayout{    new Label("Welcome to .NET MAUI!"),    new Button(        () => $"You clicked {count} times.",        () => count.Value ++)    )};public string Text { get; set; } = "Click me";int count = 0;void ExecuteClickCommand (){    count++;    Text = $"You clicked {count} times.";}

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

MVVM和MVU都提供相同的原生應(yīng)用程序,性能和平臺保真度。開發(fā)人員將能夠選擇最適合其偏好和用例的樣式。

從Xamarin.Forms過渡到.NET MAUI

Xamarin.Forms開發(fā)人員將使用他們已經(jīng)了解和喜愛的所有相同控件和API來開始在.NET MAUI中使用新項目運行。隨著越來越接近.NET MAUI的發(fā)布,為了幫助開發(fā)人員將現(xiàn)有應(yīng)用平穩(wěn)地過渡到.NET MAUI,微軟打算提供類似于今天遷移到.NET Core的嘗試轉(zhuǎn)換支持和遷移指南。

.NET MAUI時間線

微軟將在今年晚些時候開始發(fā)布.NET MAUI預(yù)覽版,并于2021年11月開始提供.NET 6的總體可用性。.NET MAUI將以Xamarin.Forms所采用的相同的6周節(jié)奏發(fā)布。微軟已經(jīng)在GitHub上發(fā)布了MAUI路線圖,并邀請你今天就加入!

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

IT之家獲悉,作為.NET統(tǒng)一的一部分,Xamarin.iOS和Xamarin.Android將作為.NET for iOS和.NET for Android成為.NET 6的一部分。由于這些綁定是Apple和Google發(fā)行SDK的投影,因此此處沒有任何更改,但是將更新構(gòu)建工具,目標(biāo)框架別名和運行時框架別名,以匹配所有其他.NET 6工作負載。微軟致力于為.NET開發(fā)人員提供最新的移動SDK的最新信息,這是.NET MAUI的基礎(chǔ),并且始終如一。當(dāng).NET 6發(fā)行時,期望以其當(dāng)前形式發(fā)行Xamarin SDK的最終版本,并將提供一年的服務(wù)。那時所有的現(xiàn)代工作都將轉(zhuǎn)移到.NET 6。

Xamarin.Forms將于今年晚些時候發(fā)布新的主版本,并繼續(xù)在2021年11月通過.NET 6 GA每6周發(fā)布次要版本和服務(wù)版本。Xamarin.Forms的最終版本將在交付后的一年內(nèi)提供服務(wù),并且所有現(xiàn)代作品都將轉(zhuǎn)移到.NET MAUI。

通過全新的存儲庫dotnet/maui,踏上.NET MAUI的旅程。