Good news——Visual Studio 2022 包括了 Xamarin 對 Android 12和蘋果最新的 Xcode 13 版本下的 iOS、iPadOS、macOS 和 tvOS 的支援,以及適用於支援它們的最新 Xamarin.Forms 版本。讓我們一起來了解下最新 Xamarin版本,重新審視 Xamarin 的支援政策,並展望2022年第二季度的.NET 6和.NET MAUI。
Visual Studio 2022中的 Xamarin
Visual Studio 2022有許多改進和新的體驗,Xamarin.Forms應用程式也會得到一些改善。XAML Live Preview(實時預覽)是最激動人心的功能之一,它可以在Visual Studio中使您正在執行的應用程式生成映象,並允許新增布局指南和縮放以獲得完美的畫素對齊。實時視覺化樹可以讓您看到您的UI層次結構和定位XAML原始碼,XAML熱過載也在不斷改進。
Xamarin支援最新的移動版本
在過去幾個月中,Xamarin 釋出了多個 Xamarin.Forms 服務版本,以及來自 Google 和 Apple 的測試版和穩定版的 .NET 繫結。這些sdk可以在Visual Studio 2022的新穩定版和Visual Studio 2019的最新版中獲得(Xcode 13.1 sdk支援將在 Visual Studio 2019的下一個版本中釋出)
- Visual Studio 2022(17.0) -下載
- Visual Studio 2022 for Mac(17.0) -下載
- Visual Studio 2019(16.11.6) -下載
- Visual Studio 2019 for Mac(8.10.12) -下載
Xamarin.Forms 5
Xamarin.Forms 5.0 服務版本 6 於 10 月 18 日釋出,自首次釋出以來進行了145個修復。這包括對Andriod 12和iOS 15的支援,我們將繼續保持每6周釋出一次服務。您可以從GitHub和Azure Pipelines的任何pull request和提交中下載構建。也可以使用下方連結檢視完整的釋出說明。今天就用您最喜歡的NuGet包管理器更新您的應用程式吧,這樣您就能更好地升級到.NET MAUI。
Andriod 12
谷歌釋出了最新的Andriod 12穩定版,包括全新的Material You設計語言、更新的小部件設計、整體系統效能改進,以及相機、圖形和影像、媒體、安全和隱私、儲存等方面的新功能和api。有關更新和文件的完整列表,請訪問安卓開發者門戶。
為了支援Andriod 12,我們已經從版本8升級到OpenJDK 11,並更新了安卓設計器、SDK管理器和裝置管理器的相容性。
iOS 15, iPadOS 15, tvOS 15
蘋果已經發布了 Xcode 13,其中包括 iOS 15、iPadOS 15 和 tvOS 15。蘋果還發布了 Xcode 13.1,它增加了對 macOS Monterey 12 的支援。
Xamarin 兩年的受支援服務版本
隨著.NET MAUI釋出時間表的改變,以及.NET 6對Android、iOS和macOS的支援,我們想在這個過渡期間向大家更新Xamarin的支援和服務計劃。Xamarin 受 Microsoft 現代生命週期管理,該生命週期宣告當前 Xamarin 版本在初始版本之後的兩年內得到支援,或者直到下一個更新的穩定版本。.NET MAUI 和相關平臺將包含在 .NET 和 .NET Core 支援政策中,畢竟它現在是 .NET 的一個統一部分。
這意味著,從Xamarin的最新版本開始,您將獲得兩年的受支援服務版本,您可以期待在2023年11月之前獲得支援。這段時間您可以將現有專案遷移到 .NET 6,我們正在努力為您提供一個順利的過程。
為過渡到.NET 6做準備
在2022年的第二季度,我們將釋出一個支援.NET多平臺應用程式介面(MAUI)的版本,這是支援跨平臺、移動和桌面應用程式的.NET下一個版本。這種轉變的首要任務是確保Xamarin應用程式能夠升級,以利用.NET、c#和Visual Studio中的最新更新,而無需重寫。這意味著Xamarin專案只需要從.NET Framework轉移到.NET 6,您就可以繼續釋出了。
讓我們首先一步一步地看看這對任何Xamarin應用程式意味著什麼。
步驟1:.NET升級助手
.NET升級助手是一個.NET命令列工具,它可以將您的專案(csproj檔案)從Xamarin .NET Framework風格轉換為當前的SDK風格專案(所有其他.NET專案型別都經常使用)。正如您所記得的那樣,這一轉變將Xamarin與.NET結合在一起,所以無論我們正在構建什麼樣的應用程式,我們都可以共享相同的技術和技能。
步驟2:更新依賴項
轉換專案檔案格式後,該工具將評估您的專案依賴關係,並報告任何不相容的地方,以便您重新評估。如果您正在使用來自元件供應商(如DevExpress、Infragistics、Steema、Syncfusion、Telerik或其他)的控制元件,它們可能已經可用了。可以檢查每一個roadmap計劃和可用性。
Xamarin Community Toolkit(社群工具包)為升級到.NET 6提供了兩個選項。第一個是與.NET 6相容的工具箱的1對1相容版本,第二個選擇是一個純粹的.NET 6版本,它利用了.NET中所有的體系結構改進,儘管可能還沒有達到與Xamarin Community Toolkit 1:1的同等水平。
Xamarin.Essentials 現在是 .NET 6 和 .NET MAUI 的一部分,因此您無需任何額外的 NuGet 依賴即可獲得它。
如果您的專案是 Xamarin.Android 或 Xamarin.iOS,那麼您很可能在完成上面的步驟後就完成遷移了,只需編譯並測試您的應用程式。
步驟3(可選): Xamarin.Forms 到 .NET MAUI
.NET MAUI使用的控制元件命名、佈局命名、導航模式和XAML特性與您的應用程式在Xamarin.Forms中使用的是一樣的。這意味著它將按原樣工作。那麼是什麼改變了呢?
.NET MAUI 使用名稱空間“Microsoft.Maui”而不是“Xamarin.Forms”。 .NET 升級助手將在您的 XAML 和 C# 檔案中為您進行此更改。如果在上一步中沒有更新Xamarin.Forms 的NuGet,那麼您現在需要解決這些問題。
您還會遇到哪些其他差異?
- 應用程式與視窗 – Xamarin.Forms 應用程式是單視窗,而 .NET MAUI 應用程式可以是多視窗。這意味著應用程式的根檢視已經從根本上升級了。我們保留了App.cs(和App.xaml.cs)的樣式,所以您的應用程式可以繼續按原樣工作。
- Custom Renderers - .NET MAUI在新的“處理器”架構中不再需要它們,但是我們提供了一個相容性的方法讓您註冊,以便繼續使用。為了將來的需求,我們建議學習處理程式模式來定製平臺控制元件的外觀。例如,假設您有一個安卓的自定義渲染器(庫中的CustomEntry) (安卓專案中的CustomEntryRenderer),要告訴.NET MAUI在哪裡找到這個渲染器,以及如何使用這個渲染器而不是新的處理程式,請開啟專案根目錄下的MauiProgram.cs,我們在那裡定義了應用程式生成器:
appBuilder
.UseMauiApp<App>()
.ConfigureMauiHandlers(handlers =>
{
#if __ANDROID__
handlers.AddCompatibilityRenderer(typeof(CustomEntry), typeof(Droid.Renderers.CustomEntryRenderer));
#endif
});
使用條件編譯識別符號(如__ANDROID__)為每個渲染器執行此操作。
- 效果——就像自定義渲染器一樣,您可以在應用生成器中註冊。
appBuilder
.UseMauiApp<App>()
.ConfigureEffects(effects =>
{
effects.Add<FocusRoutingEffect, FocusPlatformEffect>();
});
在Visual Studio 2022中開啟專案並開始構建。您可能會遇到一些型別更改或不相容性。解決這些問題,很快您就會完成向.NET 6的過渡。根據應用程式的複雜性和.NET 6相容依賴的可用性,這可能需要幾個小時到幾天的工作時間。
要立即嘗試遷移,請試用 .NET 升級助手並提供反饋,以便我們可以在現在和正式釋出版本之間繼續改進該助手。
有關將專案從 Xamarin.Forms 遷移到 .NET MAUI 的其他示例,請檢視 Javier Suarez Ruiz 的儲存庫 Xamarin.Forms 到 .NET MAUI)。
總結
.NET MAUI Preview 10 現已在 Visual Studio 2022 預覽頻道中提供,並且 Xamarin.Forms 5.0 可用。兩者都支援最新的平臺版本。如果您的專案開發時間超過 4 個月,或者您需要的一切都已在 .NET MAUI 中準備就緒,那麼我們建議從那裡開始。
立即開始使用以下資源:
• Visual Studio 2022 (17.0) – 下載
• Visual Studio 2022 for Mac (17.0) – 下載
• Visual Studio 2022 預覽版 (17.1) – 下載
• 宣佈 .NET MAUI 預覽版 10
• .NET MAUI 文件
• Visual studio 2022