.NET跨平臺(tái)應(yīng)用MAUI介紹
您可以使用 .NET 構(gòu)建任何內(nèi)容。這是數(shù)百萬(wàn)開(kāi)發(fā)人員選擇 .NET 作為其職業(yè)生涯的平臺(tái),以及公司為其業(yè)務(wù)進(jìn)行投資的主要原因之一。通過(guò) .NET 5,我們開(kāi)始了統(tǒng)一 .NET 平臺(tái)的旅程,將 .NET Core 和 Mono/Xamarin 整合在一個(gè)基類(lèi)庫(kù) (BCL) 和工具鏈 (SDK) 中。
當(dāng)我們考慮在統(tǒng)一的 .NET 中構(gòu)建設(shè)備應(yīng)用程序的外觀時(shí),我們看到許多設(shè)備跨多個(gè)平臺(tái)使用,從 Android 和 iOS 到 Windows 和 macOS。為了滿(mǎn)足這一需求,我們很高興地宣布一個(gè)新的一流的UI框架,這樣做:.NET多平臺(tái)應(yīng)用程序UI,親切地稱(chēng)為.NET MAUI。
讓我們向您介紹 .NET MAUI 是什么、單個(gè)項(xiàng)目開(kāi)發(fā)人員體驗(yàn)、現(xiàn)代開(kāi)發(fā)模式,以及展望未來(lái)的旅程。
MAUI overview
什么是 .NET MAUI
.NET MAUI 是越來(lái)越受歡迎的 Xamarin.Forms 工具包的演進(jìn),本月將滿(mǎn) 6 歲。多年來(lái),UPS、安永和達(dá)美等公司一直在利用Xamarin的移動(dòng)專(zhuān)業(yè)知識(shí),在.NET上為其業(yè)務(wù)提供動(dòng)力;一些從一開(kāi)始。它還非常成功,幫助小型企業(yè)最大化其開(kāi)發(fā)投資共享超過(guò) 95% 的代碼,并擊敗競(jìng)爭(zhēng)對(duì)手推向市場(chǎng)。.NET MAUI 在移動(dòng)設(shè)備上擴(kuò)展了這一成功,以擁抱桌面,使其成為在兩者(尤其是新設(shè)備(如新 Surface Duo)之間構(gòu)建多平臺(tái)應(yīng)用程序的最佳方式。
.NET MAUI 簡(jiǎn)化了 .NET 開(kāi)發(fā)人員的選擇,提供了支持所有現(xiàn)代工作負(fù)載的單堆棧:Android、iOS、macOS 和 Windows。在簡(jiǎn)單的跨平臺(tái) API 中,每個(gè)平臺(tái)和 UI 控件的本機(jī)功能都觸手可及,使您能夠提供不折不扣的用戶(hù)體驗(yàn),同時(shí)共享比以前更多的代碼。
單個(gè)項(xiàng)目開(kāi)發(fā)人員體驗(yàn)
.NET MAUI 的構(gòu)建考慮到了開(kāi)發(fā)人員的工作效率,包括開(kāi)發(fā)人員所需的項(xiàng)目系統(tǒng)和跨平臺(tái)工具。.NET MAUI 將項(xiàng)目結(jié)構(gòu)簡(jiǎn)化為單個(gè)項(xiàng)目,以定位多個(gè)平臺(tái)。這意味著只需單擊一下,您可以輕松地部署到任何目標(biāo),包括桌面、仿真器、模擬器或物理設(shè)備。使用內(nèi)置的跨平臺(tái)資源,您將能夠?qū)⑷魏螆D像、字體或翻譯文件添加到單個(gè)項(xiàng)目中,.NET MAUI 將自動(dòng)設(shè)置本機(jī)掛鉤,以便您可以進(jìn)行編碼。最后,您始終可以訪問(wèn)本機(jī)基礎(chǔ)操作系統(tǒng) API,并且使用新的特定于平臺(tái)的集成將比以往更加容易。在平臺(tái)下,您可以為特定操作系統(tǒng)添加源代碼文件并訪問(wèn)本機(jī) API。使用 .NET MAUI,一切都位于一個(gè)地方,您需要它來(lái)保持高效工作。
.NET MAUI Single Project
這提供:
- 一個(gè)面向多個(gè)平臺(tái)和設(shè)備的項(xiàng)目
- 管理資源(如字體和圖像)的一個(gè)位置
- 多目標(biāo)組織特定于平臺(tái)的代碼
您掌握一種構(gòu)建客戶(hù)端應(yīng)用的方法,MAUI 方式,并且所有平臺(tái)都在您觸手可及。今天,斯科特·漢塞爾曼和我將演示它在行動(dòng)在建設(shè),旅程一個(gè).NET。
現(xiàn)代應(yīng)用模式
一個(gè) .NET 愿景的一部分是在個(gè)人偏好領(lǐng)域提供開(kāi)發(fā)人員選擇,因此您可以最有效地使用 .NET。在 IDE 中,無(wú)論是 Visual Studio 2019、Mac 的可視化工作室,甚至是視覺(jué)工作室代碼,您都使用 IDE。.NET MAUI 將在所有這些模式下可用,并支持現(xiàn)有的 MVVM 和 XAML 模式,以及將來(lái)的功能,如使用 C# 的模型視圖更新 (MVU),甚至 Blazor。
MVVM
模型視圖-視圖模型 (MVVM) 和 XAML 是 .NET 開(kāi)發(fā)人員數(shù)十年來(lái)的主要模式和實(shí)踐,是 .NET MAUI 中的一流功能。這將繼續(xù)發(fā)展,以幫助您高效地構(gòu)建和維護(hù)生產(chǎn)應(yīng)用。
<StackLayout> <Label Text="Welcome to .NET 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
此外,我們還使開(kāi)發(fā)人員能夠編寫(xiě)流暢的 C# UI,并實(shí)現(xiàn)日益流行的模型視圖更新 (MVU) 模式。MVU 促進(jìn)數(shù)據(jù)和狀態(tài)管理的單向流,以及代碼優(yōu)先開(kāi)發(fā)體驗(yàn),只需應(yīng)用必要的更改,才能快速更新 UI。有關(guān) MVU 作為模式的詳細(xì)信息,請(qǐng)查看此Elm 編程指南和托馬斯·班特的博客。
下面是以 .NET MAUI 編寫(xiě)的 MVU 樣式中的一個(gè)基本反示例。
readonly State<int> count = 0; [Body] View body() => new StackLayout { new Label("Welcome to .NET MAUI!"), new Button( () => $"You clicked {count} times.", () => count.Value ++) ) };
此模式非常適合熱重新加載,因?yàn)橄旅婺梢钥吹教砑拥臉邮?、漸變和字體,并隨 C# 的即時(shí)熱重新加載。
MAUI model-view-update
MVVM 和 MVU 都提供相同的本機(jī)應(yīng)用程序、性能和平臺(tái)保真度。開(kāi)發(fā)人員將能夠選擇最適合其偏好和用例的樣式。
從 Xamarin.Forms 轉(zhuǎn)換到 .NET MAUI
Xamarin.Forms 開(kāi)發(fā)人員將使用 .NET MAUI 中的新項(xiàng)目進(jìn)行運(yùn)行,使用他們已成長(zhǎng)為和喜愛(ài)的所有相同的控件和 API。隨著我們?cè)絹?lái)越接近 .NET MAUI 的發(fā)布,為了幫助開(kāi)發(fā)人員將現(xiàn)有應(yīng)用程序順利過(guò)渡到 .NET MAUI,我們打算提供嘗試轉(zhuǎn)換支持和遷移指南,類(lèi)似于我們今天遷移到 .NET Core 時(shí)的支持和遷移指南。
.NET MAUI 時(shí)間線(xiàn)
我們將在今年晚些時(shí)候開(kāi)始發(fā)貨 .NET MAUI 預(yù)覽版,并在 2021 年 11 月以 .NET 6 為目標(biāo)的通用性。.NET MAUI 將在同 6 周節(jié)奏上發(fā)貨 Xamarin.Forms 已打開(kāi)。我們已經(jīng)在 GitHub 上發(fā)布了MAUI 路線(xiàn)圖,并邀請(qǐng)您立即加入我們!
Xamarin 和 Xamarin 的下一步內(nèi)容。
作為 .NET 統(tǒng)一的一部分,Xamarin.iOS 和 Xamarin.Android 將成為 .NET 6 的一部分,作為 iOS 的 .NET 和用于 Android 的 .NET。由于這些綁定是從蘋(píng)果和谷歌發(fā)貨的 SDK 的投影,因此不會(huì)有任何變化,因此構(gòu)建工具、目標(biāo)框架名字和運(yùn)行時(shí)框架名字將更新以匹配所有其他 .NET 6 工作負(fù)載。我們承諾讓 .NET 開(kāi)發(fā)人員了解最新的移動(dòng) SDK,這是 .NET MAUI 的基礎(chǔ),并且仍然堅(jiān)定不良。當(dāng) .NET 6 船舶時(shí),我們期望以當(dāng)前的形式最終發(fā)布 Xamarin Sdk,服務(wù)一年。當(dāng)時(shí)所有現(xiàn)代作品都將轉(zhuǎn)移到.NET 6。
Xamarin.Forms將于今年晚些時(shí)候發(fā)布新的主要版本,并繼續(xù)在2021年11月通過(guò).NET 6 GA每6周發(fā)布一次小型和服務(wù)版本。Xamarin.Forms 的最終版本將在發(fā)貨后一年內(nèi)投入使用,所有現(xiàn)代工作將轉(zhuǎn)移到 .NET MAUI。
到此這篇關(guān)于.NET跨平臺(tái)應(yīng)用MAUI介紹的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET MVC4入門(mén)教程(四):添加一個(gè)模型
本文主要介紹在MVC4中如何添加一個(gè)模型(Model),這個(gè)類(lèi)負(fù)責(zé)和數(shù)據(jù)庫(kù)交互,主要處理一些增刪改查的操作。2016-04-04在ASP.NET 2.0中操作數(shù)據(jù)之四十:自定義DataList編輯界面
先前的編輯界面清一色的都是TextBox控件,當(dāng)然EditItemTemplate還可以包含很多其他的控件,比如DropDownLists, RadioButtonLists, Calendars等,這一節(jié)就讓我們看看如何實(shí)現(xiàn)添加其他的控件。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之六十四:GridView批量添加數(shù)據(jù)
前面介紹了批量更新,批量刪除數(shù)據(jù),這篇文章主要介紹如何實(shí)現(xiàn)批量添加數(shù)據(jù),當(dāng)然為了保證數(shù)據(jù)的完整性,我們?cè)谧鲞@些批量操作的時(shí)候,都使用了事務(wù)來(lái)實(shí)現(xiàn)。2016-05-05NopCommerce架構(gòu)分析之(七)主題Theme皮膚管理器
本文主要介紹NopCommerce的皮膚管理機(jī)制,NopCommerce提供默認(rèn)的皮膚,我們也可以制作自己的皮膚,以實(shí)現(xiàn)個(gè)性化定制。2016-04-04解讀ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
這篇文章主要介紹了ASP.NET 5中全局導(dǎo)入、獲取IP相關(guān)信息、文件上傳等其他新特性,需要的朋友可以參考下2016-06-06.Net?6中WebApplicationBuilder介紹和用法
這篇文章介紹了.Net?6中WebApplicationBuilder的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12我今天開(kāi)始正式學(xué)習(xí).net遇到的問(wèn)題
我今天開(kāi)始正式學(xué)習(xí).net遇到的問(wèn)題...2006-10-10在ASP.NET 2.0中操作數(shù)據(jù)之三十四:基于DataList和Repeater跨頁(yè)面的主/從報(bào)表
前面介紹了使用GridView實(shí)現(xiàn)跨頁(yè)面的主/從報(bào)表,同樣DataList和Repeater也可以實(shí)現(xiàn)相同功能。2016-05-05