iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
Mobile Development

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

EP03: Transfer 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 系列 系列文的 EP03。


在上一回 EP02 裡增加了 .NET MAUI 的 TopStore App 專案當中所需用到的 Nuget 套件。

由於在先前的 Xamairn.Forms 版本中的 TopStore App 都有按照 MVVM 框架設置專案內的資料夾放置程式碼檔。

所以接著只要透過 Windows 的檔案總管,來把 "必要的 *.xaml 與 *.cs 檔案" (皆在按照 MVVM 架構規劃的資料夾中),從 Xamarin.Forms 專案複製到 .NET MAUI 專案當中。

在 Xamarin.Forms 專案當中選取所需的必要資料夾:
01
上圖左邊為 Xamarin.Forms 專案資料夾;右邊為 .NET MAUI 專案資料夾

在 .NET MAUI 專案的資料夾當中貼上:
02
上圖左邊為 Xamarin.Forms 專案資料夾;右邊為 .NET MAUI 專案資料夾

接著回到 Visual Studio 2022 的 .NET MAUI 專案當中,在 Visual Studio 當中的方案總管當中會看到這些資料夾的出現。
03

因為預設的專案範本所用到的 AppShell 不符合需要,因此在 Visual Studio 當中的方案總管中找到 AppShell,右鍵選單當中點選 "刪除":
04

刪除後的專案呈現的狀態:
05

接著在 .NET MAUI 專案當中透過右鍵選單,選擇加入->新增檔案,來增加空白 AppShell 檔案:
06-1

在 C# 項目的 .NET MAUI 分類底下可以找到 AppShell 的空白範本,設定好檔案名稱後點選 "新增":
06-2

加入完成後專案呈現的狀態:
06-3

複製 Xamarin.Forms 專案當中的 AppShell.xaml 檔案的 Shell 標記中的下圖紅色框的 XAML 標記碼。
07-1

到 .NET MAUI 專案當中的 AppShell.xaml 檔案當中。

對應先前圖片標記 1 的部分:
07-2-1
對應先前圖片標記 2 的部分:
07-2-2

複製 Xamarin.Forms 專案當中的 AppShell.xaml.cs 檔案,撰寫在建構方法當中的 C# 程式(如下圖紅框所示):
07-3

再到 .NET MAUI 專案當中的 AppShell.xaml.cs 當中,找到其 AppShell 類別建構式後,貼上剛剛從 Xamarin.Forms 專案中複製的 C# 程式碼(如下圖紅框所示):
07-4

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


PS 預設 Visual Studio 2022 的 C# 項目的檔案範本中不會有 Shell 的空白範本可用,請參考此 GitHub 存放庫的 README 介紹:
https://github.com/JamestsaiTW/dotNET-MAUI-or-Xamarin.Forms-Empty-Shell-ItemTemplate


上一篇
EP02: Check Nuget Package between Xamarin.Forms and .NET MAUI Project
下一篇
EP04: Transfer Resource Files from Xamarin.Forms to .NET MAUI Project
系列文
Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言