1. 程式人生 > >【重榜?】.NET 6 Preview 1 開箱上手!帶你嘗試新版本更新!

【重榜?】.NET 6 Preview 1 開箱上手!帶你嘗試新版本更新!

[TOC] 最近 .NET 6 Preview 1 釋出了,.NET 統一是此版本的核心。大家可以讀一下原文部落格: https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-1/ .NET 6.0 SDK 和 Runtime 下載地址: [https://dotnet.microsoft.com/download/dotnet/6.0](https://dotnet.microsoft.com/download/dotnet/6.0) 下面筆者將給大家介紹一下 .NET 6 Preview 1 目前的更新內容和上手嘗試一些好玩的更新。 本文並非翻譯文章,純手工打造。 ### 跨平臺 UI 應用 .NET6 對多平臺(Android、IOS等)介面應用程式做了統一,提供了在多種平臺和社保上一致的體驗,並且可以在移動應用和 PC桌面程式之間共享更多的程式碼。多平臺統一工具包是基於 Xamarin.Forms 的整合和拓展,使得我們可以開發 Windows、MacOS、Android 和 IOS 桌面應用。 目前 Visual Studio 支援 Windows 和 MacOS,在已經安裝了 .NET6 SDK 的機器上,釋出的桌面程式可以在 Windows 和 MacOS 上執行,如果要支援 Android 和 IOS ,則需要下載另外兩個包。這是因為 Windows 和 MacOS 可以通過安裝 .NET6 Runtime 去執行程式,執行的是 .dll 檔案(IL中間程式碼),而 Android 和 IOS 都是釋出和執行本機程式碼。 ``` # Windows 下載 Microsoft.NET.Workload.Android.11.0.200.85.msi Microsoft.NET.Workload.iOS.14.3.100-ci.main.1079.msi # MacOS 下載 Microsoft.NET.Workload.Android-11.0.200-ci.master.85.pkg Microsoft.iOS.Bundle.14.3.100-ci.main.1079.pkg ``` 讀者可以到 [https://github.com/dotnet/net6-mobile-samples](https://github.com/dotnet/net6-mobile-samples) 查詢下載連結,發現不開代理下載不了,各位請注意。 ![建立Xamarin專案](https://img2020.cnblogs.com/blog/1315495/202102/1315495-20210219090609915-181392052.png) .NET6 執行時有 android 和 ios 的特殊標記,要支援移動應用,需要指定名稱,如要支援 Android,在 .csproj 檔案中: ``` net6.0-android ``` 下面是一個 Xamarin.Forms 應用的 .csproj 模板: ```xml net6.0-android;net6.0-ios ios-x64 Exe ``` 當然,要釋出或者除錯程式,需要 SDK 或 模擬器,例如安卓需要 Android SDK以及`Android SDK Platform 30`,釋出的時候也需要指定: ```powershell dotnet build HelloForms -t:Run -f net6.0-android dotnet build HelloForms -t:Run -f net6.0-ios ``` 官方的示例專案中,nuget 包需要訪問 pkgs.dev.azure.com,不代理訪問不了。因此,這個示例專案搞不了,大家看著過過癮就行。 目前 .NET6 Targeting 有: - `net6.0` - `net6.0-android` - `net6.0-ios` - `net6.0-maccatalyst` - `net6.0-macos` - `net6.0-tvos` - `net6.0-windows` ### Blazor 桌面應用 我想,看到這個更新,最開心的是 Ant Design of Blazor 專案的主導作者 James Yeung 吧。 ![img](https://cdn.jsdelivr.net/gh/ant-design-blazor/[email protected]/logo.png)
.NET6 中,可以將 Blazor 拓展混合到 UI 應用程式中,將 Web 和本機 UI 結合在一起,可以在桌面中嵌入執行。Blazor 混合開發的方式,稱為 Blazor Hybrid Apps。 .NET Core 3.0 支援 Blazor Server,3.1 支援 Blazor WebAssembly,Blazor WebAssembly 使用 Mono 執行時,很多 .NETer 應該體驗過 Blazor 開發,WebAssembly 目前來看還是太大了(.NET Core 3.x),還有效能差等問題。後續 .NET 版本對其進行了大量優化。 VS2019 Preview4 中這個模板名稱變成了 Blazor WebAssembly App ,實際上就是 WebAssembly,加上了 App 這個名稱,但是並不代表是 UI 程式,它依然是 web。 ![BlazorWebAssemblyApp](https://img2020.cnblogs.com/blog/1315495/202102/1315495-20210219090731844-1049919081.png) 迴歸正題,.NET6 更新的部落格說這個 Blazor 可以跟 MAUI一起搞,但是部落格並沒有提到 Demo 和實現細節,可能還在繼續開發中,Preview 1 可能暫時看不了。那 TM 我下載 VS2019 Preview4 後,還是不能直接建立???耍我呢?怎麼體驗這個 Blazor 開發桌面應用? 不久前有人建立了這個 Issue:[https://github.com/Webreaper/Damselfly/issues/108](https://github.com/Webreaper/Damselfly/issues/108) 不過,Blazor 倒是可以跟移動應用搞一起,有個專案叫 Mobile Blazor Bindings,可以將 Blazor 結合到 Xamarin 中,這個專案在 .NET Core 3.x 就已經支援了。 專案地址:[https://github.com/dotnet/MobileBlazorBindings](https://github.com/dotnet/MobileBlazorBindings) 示例程式碼: ```csharp