iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
Mobile Development

Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore系列 第 6

EP06: Transfer the namespace of XAML and C# Code from Xamarin.Forms to .NET MAUI Project

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會利用目前 Visual Studio 內建的專案樣本建立一個初始的 .NET MAUI 專案,並且透過此 .NET MAUI 專案來把 TopStore App 的開發從 Xamairn.Forms 轉換到 .NET MAUI 上進行。

本篇是 Re: 從零改成用 .NET MAUI 技術來繼續過去用 Xamarin 開發的一個 App : TopStore 系列 系列文的 EP06。


前一篇的部分修正完成後,接著到 .NET MAUI 的專案中來準備替換 XAML 標記碼與 C# 程式碼所引用的 namespace 命名空間。

在 Xamarin.Froms 跟 .NET MAUI 所使用的基底類別庫是完全不同的,所以 XAML 標記碼與 C# 程式碼所引用的 namespace 命名空間要進行調整:

  • XAML 標記碼:
    xmlns="http://xamarin.com/schemas/2014/forms" <--> xmlns="http://schemas.microsoft.com/dotnet/2021/maui"

  • C# 程式碼:
    using Xamarin.Forms <--> using Microsoft.Maui AND using Microsoft.Maui.Controls
    using Xamarin.Forms.Xaml <--> using Microsoft.Maui.Controls.Xaml

而之前在 Xamarin.Forms 時會使用 Xamarin.Essentials 套件所使用到的東西,已經內建到 Maui 的類別庫裡面了,所以只要把 Xamarin.Essentials 的命名空間移除即可。

雖然目前有在開發 .NET Upgrade Assistant (升級小幫手),不過看起來應該還有一段路要走,可參考:
https://github.com/dotnet/maui/wiki/Migrating-from-Xamarin.Forms-(Preview)#wip-net-upgrade-assistant-steps

所以結論...

還是 手動 進行吧!

透過 Visual Studio 2022 在 .NET MAUI 的 TopStoreApp 專案當中進行替換動作,利用快捷鍵 "Ctrl + Shift + F" 叫出 "尋找和取代" 窗格,並切到 "檔案中取代" 來進行以下:

就如同前面說的,來替換 XAML 標記碼的 namespace 命名空間,把 xmlns="http://xamarin.com/schemas/2014/forms" 取代成 xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
01-1
取代完成,在目前 TopStoreApp 開發到的部分當中會有 5 個取代:
01-2

來替換 C# 程式碼的 namespace 命名空間,把 using Xamarin.Forms; 取代成 using Microsoft.Maui;\r\nusing Microsoft.Maui.Controls;,並且勾選使用規則運算式的使用:
02-1
(注意含 ";" 分號)

取代完成,在目前 TopStoreApp 開發到的部分當中會有 9 個取代:
02-2

再繼續來替換 C# 程式碼的 namespace 命名空間,把 using Xamarin.Forms.Xaml; 取代成 using Microsoft.Maui.Controls.Xaml;,並把剛剛勾選使用規則運算式取消:
03-1
(注意含 ";" 分號)

取代完成,在目前 TopStoreApp 開發到的部分當中會有 4 個取代:
03-2

再繼續來替換掉 Xamarin.Essentials."空值"
04-1
取代完成,在目前 TopStoreApp 開發到的部分當中會有 5 個取代:
04-2

由於在開發 TopStoreApp 時有使用 Xamarin.Essentials 的時候,撰寫習慣都是直接在程式碼寫全名運用,所以是這樣替換。如果是習慣使用 using 命名空間的,請選擇替換 using Xamarin.Essentials;

最後再將先前 Xamarin.Forms 所使用 "Xam.Plugin.BaseBindingLibrary" 的 Nuget 套件,要引入的命名空間 Xam.Plugin.BaseBindingLibrary 替換成 Maui.Plugin.BaseBindingLibrary

替換掉 Xam.Plugin.BaseBindingLibrary 成為 Maui.Plugin.BaseBindingLibrary
05-1
取代完成:
05-2

以上針對 TopStoreApp 目前開發到的部分,有運用到的 XAML 標記碼與 C# 程式碼所引用的 namespace 命名空間,全部從 Xamarin.Forms 版本轉換為 .NET MAUI 的版本完畢!

本 EP 介紹所完成的範例程式碼可在此下載



上一篇
EP05: Edit App.xaml and App.xaml.cs for transfer, add a style to Styles.xaml
下一篇
EP07: Fix obsolete property and add Resource files by using .NET MAUI
系列文
Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言