Share via


共用程式碼

WCF RIA Services 可讓您撰寫中介層和展示層之間共用的應用程式邏輯,因此在伺服器上及用戶端上提供相同的功能。程式碼可以使用原始程式檔或組件來共用。

不像產生用戶端程式碼主題中所述的自動程式碼產生程序,共用程式碼在編譯期間不會改變。但是在各層之間會逐字複製或共用程式碼。共用程式碼可讓您針對在伺服器上定義一次,但是也在用戶端上產生程式碼的實體,定義邏輯或部分類別擴充的片段,讓相同的邏輯可同時在兩個位置中使用。

共用原始程式檔

您可以將原始程式檔加入至中介層,然後明確地指定這些檔案與展示層共用。在各層之間共用原始程式檔有兩種方法卜。第一種方法是根據共用的命名慣例命名原始程式檔:*.shared.cs(針對 C#) 或 *.shared.vb (針對 Visual Basic)。第二種方法就是使用 Visual Studio 2010 中的連結檔案功能。

共用的命名慣例

當您使用共用的命名慣例 (*.shared.cs*.shared.vb) 共用檔案時,您會實作「提取」模型來共用原始程式碼檔。在編譯期間,共用的檔案會主動從中介層專案複製到用戶端專案。共用的命名慣例只有在 RIA Services 連結存在於用戶端與伺服器專案之間時,才適用於共用檔案。

共用檔案

共用的命名慣例具有下列優點:

共用的命名慣例優點 描述

內建支援

不需要開發人員進一步的動作,就能讓共用的檔案維持同步狀態。

透明

名稱清楚地指出檔案供共用。

自動維護

加入新的共用檔案時,如果編譯方案,會自動更新連結到中介層的所有用戶端專案。

易於了解的偵錯經驗

開發人員可以在檔案的伺服器或用戶端版本中設定中斷點。

共用的命名慣例具有下列缺點:

共用的命名慣例缺點 描述

新的概念

開發人員必須知道共用的命名慣例。

檔案會被複製

共用的檔案實際上會被複製到用戶端專案,表示開發人員可能會不小心編輯複製的版本,而且在下次編譯期間會遺失變更。

如需詳細資訊,請參閱HOW TO:透過原始程式檔共用程式碼

連結的檔案

連結的檔案是 Visual Studio 2010 的現有功能,而且對 RIA Services 不是唯一的。專案間的 RIA Services 連結可以存在,但使用連結的檔案時並不需要。當您使用連結的檔案方法時,會實作「提取」模型來共用原始程式碼檔。用戶端專案不包含檔案的複本。用戶端專案只會參考伺服器專案中的檔案。

連結的檔案

您也可以將伺服器和用戶端專案同時連結到另一個專案中的檔案。

連結的檔案

連結的檔案方法有下列優點:

連結的檔案優點 描述

現有的 Visual Studio 功能

開發人員不需要學習新慣例。

檔案不會被複製

檔案僅存在於伺服器專案中。因此,開發人員無法變更複製的用戶端版本,而且下次編譯期間不會遺失那些變更。

連結的檔案方法有下列缺點:

連結的檔案缺點 描述

需要明確的使用者動作

開發人員必須連結每個共用的檔案。

無自動維護

新增或移除共用的檔案時,都必須更新每個用戶端專案。

不透明

開發人員必須檢查專案檔案來決定要共用的檔案。

不熟練的偵錯經驗

判斷哪一層提示中斷點並不容易。

如需詳細資訊,請參閱HOW TO:透過原始程式檔共用程式碼

共用組件

您可以將程式碼編譯到類別庫中,然後透過組件參考共用類別庫,而不是共用專案之間的原始程式檔。即使是搭配不同的架構 (例如 .NET Framework 4 版 和 Silverlight 4 ) 使用,您還是要使用 WCF RIA Services 類別庫來確認這些組件相容。

以下圖表顯示使用 RIA Services 類別庫共用程式碼的多層式架構 (N-Tier) 應用程式。中介層和用戶端層會使用類別庫的組件參考。

類別庫結構

如需 RIA Services 類別庫的詳細資訊,請參閱建立 RIA Services 方案逐步解說:建立 RIA Services 類別庫