共用程式碼
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 類別庫。