Share via


第 3 部分 - 設定 Xamarin 跨平台解決方案

無論使用何種平臺,Xamarin 項目都會使用相同的解決方案檔格式(Visual Studio .sln 檔格式)。 即使無法載入個別專案,也可以跨開發環境共用解決方案(例如 Visual Studio for Mac 中的 Windows 專案)。

建立新的跨平臺應用程式時,第一個步驟是建立空白解決方案。 本節說明接下來會發生什麼事:設定專案來建置跨平臺行動應用程式。

共用程式碼

如需如何跨平台實作程式代碼共用的詳細描述,請參閱程式 代碼共用選項 檔。

.NET Standard

.NET Standard 專案可讓您輕鬆地跨平臺共用程式碼,產生可在 Windows、Xamarin 平臺 (iOS、Android、Mac) 和 Linux 中使用的元件。 這是共用 Xamarin 解決方案程式碼的建議方式。

其他選項

從歷史上看,Xamarin 使用 可攜式類別庫 (PCLs)共用專案。 這兩項都不建議用於新專案;您應該考慮將現有的應用程式移轉至使用 .NET Standard。

填入解決方案

無論使用哪一種方法來共用程式碼,整體解決方案結構都應該實作鼓勵程式代碼共用的分層架構。 Xamarin 方法是將程式代碼分組為兩個項目類型:

  • 核心(或「共用」) 專案 – 在一個位置撰寫可重複使用的程式代碼,以跨不同平台共用。 盡可能使用封裝原則來隱藏實作詳細數據。
  • 平臺特定應用程式專案 – 盡可能少結合取用可重複使用的程序代碼。 平臺特定功能會在此層級新增,建置在Core專案中公開的元件上。

核心專案

共用程式代碼的核心項目應該是 .NET Standard,而且只參考所有平臺可用的元件, 即。常見的架構命名空間,例如 SystemSystem.CoreSystem.Xml

核心項目應該盡可能實作非UI功能,這可能包括下列層級:

  • 數據層 – 負責實體數據儲存的程序代碼,例如 SQLite-NET 或甚至 XML 檔案。 數據層類別通常只供數據存取層使用。
  • 數據存取層 – 定義 API,可支援應用程式功能所需的數據作業,例如存取資料清單的方法、個別數據項,以及建立、編輯和刪除它們。
  • 服務存取層 – 提供雲端服務的選擇性層給應用程式。 包含程式代碼,可存取遠端網路資源(Web 服務、影像下載等),以及可能快取結果。
  • 商務層 – 模型類別的定義,以及向平臺特定應用程式公開功能的外觀或管理員類別。

平臺特定應用程式專案

平臺特定項目必須參考系結至每個平臺 SDK 所需的元件(Xamarin.iOS、Xamarin.Android、Xamarin.Mac 或 Windows),以及 .NET Standard 專案。

平臺特定項目應該實作:

  • 應用層 – 商務層 對象與使用者介面之間的平臺特定功能和系結/轉換。
  • 使用者介面層 – 螢幕、自定義使用者介面控件、驗證邏輯的呈現。

專案參考

項目參考會反映專案的相依性。 核心專案會限制它們對通用元件的參考,讓程式代碼易於共用。 平臺特定應用程式項目會參考 .NET Standard 專案,以及他們利用目標平臺所需的任何其他平臺特定元件。

在案例研究中會提供項目結構方式的特定範例。

新增檔案

建置動作

請務必針對特定文件類型設定正確的建置動作。 這個清單顯示一些常見檔案類型的建置動作:

  • 所有 C# 檔案 – 建置動作:編譯
  • Xamarin.iOS 和 Windows 中的映射 – 建置動作:內容
  • Xamarin.iOS 中的 XIB 和分鏡腳本檔案 – 建置動作:InterfaceDefinition
  • Android 中的影像和 XML 版面配置 – 建置動作:AndroidResource
  • Windows 專案中 的 XAML 檔案 – 建置動作:頁面
  • Xamarin.Forms XAML 檔案 – 建置動作:EmbeddedResource

一般而言,IDE 會偵測文件類型,並建議正確的建置動作。

區分大小寫

最後,請記住,某些平臺具有區分大小寫的文件系統(例如 iOS 和 Android),因此請務必使用一致的檔案命名標準,並確定您在程式碼中使用的檔名完全符合文件系統。 對於您在程式代碼中參考的影像和其他資源來說,這特別重要。