.NET 6
今天, 微軟發布了.NET 6 Preview2, 本次更新除了新的API、性能改進、Apple Silicon的構建, 還有就是主角MAUI的構建。
本篇文章主要介紹關於本次預覽版中MAUI當中帶來的一些已知的內容。
關於.NET 6的大部分工作, 預計會在7月完成, 之后,將專注與質量。最終將在2021年11月發布, 並將作為長期支持(LTS)版本提供三年的支持。與 .NET 5 相比,平台范圍顯著擴展。新增的有:
- Android
- Ios
- Mac 和 Mac Catalyst, 用於 x64 和 Apple Silicon(M1)
- Windows Arm64(特別是窗口桌面)
.NET 6(能力)
總而言之,言而總之, 在.NET 6中,您將能夠:
- 使用.NET庫構建iOS,Android和macOS應用程序。
- 使用.NET MAUI在相同的代碼庫中創建iOS,Android,Windows和macOS應用程序。
- 跨平台共享更多代碼和資源(例如圖像,應用程序圖標/清單等)。
- 在macOS和Windows上本地運行Blazor Web應用程序。
- 輕松打包和分發您包含的所有目標框架的應用程序。
MAUI介紹
Xamarin的跨平台UI框架Xamarin.Forms正在演變為.NET多平台應用程序UI,使您可以使用相同的代碼庫輕松編寫適用於iOS,Android,Windows和macOS的應用程序。
.NET MAUI作為.NET 6的一部分提供,同時還進行了一系列性能和工具改進,例如.NET / C#Hot Reload,跨不同平台的更多共享資源和代碼,以及具有一組更靈活的UI控件的更好的頁面呈現性能。
.NET MAUI不僅適用於客戶端應用程序開發人員。得益於重構的控件集以及可以在.NET 6庫上運行的功能,您現有的Blazor應用程序可以通過.NET MAUI在Windows和macOS上本地運行。
您將能夠與Blazor代碼庫無縫結合本機控件和功能,包括特定於平台的功能。
本次MAUI更新內容
為安卓、iOS 和 Mac Catalyst 添加了.NET MAUI 和單個項目開發人員體驗。
這里可以下載: .NET 6 Preview2 SDK
注:要在今天使用此功能,請遵循示例存儲庫中的指導以從命令行進行構建和運行。 Visual Studio的未來版本將添加設備選擇和運行選項。
單文件多目標項目
在去年MAUI發布中, 我們了解到關於MAUI可以使用單個項目設置多個目標平台, 而不再是以往的多個目標平台單獨的項目, 如下所示:
現在,我們可以獲得可以在Android,iOS和macOS上運行的非常干凈的解決方案。
Windows支持取決於WinUI 3,在未來的預覽版當中Windows將添加到MAUI當中。
MAUI應用Host Builder一起引導您的應用程序
關於這種操作, 我們會發現與ASP.NET Core當中類似, 這里通過IAppHostBuilder接口擴展配置服務,字體和兼容性渲染器以擴展Xamarin.Forms項目遷移的擴展。
這種新模式還為庫作者和控件供應商提供了一個統一的地方,可與.NET MAUI.IWindow集成。
public class Application : MauiApp
{
public override IAppHostBuilder CreateBuilder() =>
base.CreateBuilder()
.RegisterCompatibilityRenderers()
.ConfigureServices((ctx, services) =>
{
services.AddTransient<MainPage>();
services.AddTransient<IWindow, MainWindow>();
})
.ConfigureFonts((hostingContext, fonts) =>
{
fonts.AddFont("ionicons.ttf", "IonIcons");
});
public override IWindow CreateWindow(IActivationState state)
{
Microsoft.Maui.Controls.Compatibility.Forms.Init(state);
return Services.GetService<IWindow>();
}
}
關於新的控制處理程序
目前官方介紹了實現新處理程序方法的第一個控件和屬性。
這些包括Button,Label和Entry,Slider和Switch的部分實現。
以及目前微軟正在接受請求以填寫完整的實現,並且一些貢獻者已經成功地做出了貢獻。
本次更新示例項目演示
HelloMaui示例應用程序現在從單個項目運行到macOS,iOS和Android,其中展示了當前已移植的控件集。
注: 關於該示例, 請遵循示例存儲庫中的指導以從命令行進行構建和運行。 Visual Studio的未來版本將添加設備選擇和運行選項。
-
mac OS:
-
IOS:
-
Android:
在此版本中,移動SDK和周圍的工具也正在獲得功能。 這些功能將與將來的Visual Studio發行版集成在一起,並將繼續得到改進。
Android:
- Android X庫現已可用於.NET 6,並且是Android應用程序的默認依賴項
iOS:
- Windows上的開發人員可以使用遠程iOS模擬器
- Windows上的開發人員可以連接到遠程Mac構建主機
- 提前編譯已添加,可用於構建和部署到物理iOS硬件