使用 WCF 服務模型開發 Oracle 資料庫應用程式
在最低層級,Windows Communication Foundation (WCF) 呈現程式設計模型,用戶端會透過用戶端與服務端點之間建立的通道交換 SOAP 訊息,以叫用服務上的作業。 此模型稱為 WCF 通道模型,會公開資料類型和方法,讓您直接在 WCF 通道架構上操作。 WCF 通道模型可讓您直接控制您所建立的 SOAP 訊息內容,以及應用程式和 Oracle 資料庫配接器取用它們的方式;不過,建立格式正確的 SOAP 訊息以透過通道傳送,並驗證傳回的回復訊息可能是詳細的確切工作。
基於這個理由,WCF 會提供另一個稱為 WCF 服務模型的程式設計模型。 WCF 服務模型牽涉到使用 Proxy 類別來叫用目標服務上的作業,或從用戶端接收作業。
用來在目標服務上叫用作業的 Proxy 類別稱為 WCF 用戶端類別。 此類別會將服務公開的作業模型化為具有強型別參數的 .NET 方法。 藉由使用 WCF 服務模型,您可以叫用 Oracle 資料庫配接器公開的作業作為 WCF 用戶端上的 .NET 方法。 For more information about WCF clients, see "WCF Client Overview" at https://go.microsoft.com/fwlink/?LinkId=91458.
在 WCF 服務模型中,服務所公開的服務合約是由介面表示。 此服務合約的 Managed 程式碼表示稱為 WCF 服務合約。 WCF 服務合約會將作業模型化為具有強型別參數的方法。 若要從用戶端接收作業,請從這個介面實作類別 WCF 服務。 然後,您可以在 System.ServiceModel.ServiceHost 中裝載這個類別的實例,讓用戶端在您的程式碼上叫用作業。 藉由使用 WCF 服務模型和以 POLLINGSTMT 作業為目標的 WCF 服務合約,您可以使用 Oracle 資料庫配接器在 Oracle 資料庫上接收輪詢作業的結果。
您可以使用工具來從 Oracle 資料庫配接器公開的服務中繼資料產生 WCF 用戶端類別或 WCF 服務合約和相關聯的協助程式程式碼。 您可以使用下列任一工具:
ServiceModel 中繼資料公用程式工具 (svcutil.exe) ,隨附于 WCF
新增配接器服務參考 Visual Studio 外掛程式,隨附于 Oracle 資料庫配接器
[新增配接器服務參考外掛程式] 已與 Visual Studio 設計體驗整合,並提供標準 Microsoft Windows 介面,可在配接器所公開的作業上提供強大的流覽和搜尋功能。 如需如何產生 WCF 用戶端或 WCF 服務合約的詳細資訊,請參閱 產生 WCF 用戶端或 Oracle 資料庫解決方案成品的 WCF 服務合約。
由於它呈現了 .NET 程式設計人員熟悉的模型,並隱藏通道上 SOAP 訊息交換的基礎複雜性,因此 WCF 服務模型通常是開發 Oracle 資料庫配接器程式設計解決方案的最佳選擇。 不過,在某些情況下,WCF 通道模型可能是較佳的選擇。 例如,WCF 服務模型僅支援 ReadLOB 作業的串流。 這是因為在 SOAP 訊息中的物件 XML 表示與服務模型中用來表示物件的 .NET 類型之間序列化和取消序列化,牽涉到將整個訊息讀入記憶體中。 (ReadLOB 作業的結果是此 rule 的例外狀況。)
WCF 通道模型支援所有作業上的 XML 節點層級串流,以及 ReadLOB 和 UpdateLOB 作業上的資料層級串流。 如果您正在處理傳回大型結果集的查詢,或嘗試更新資料表中的 LOB 欄位,WCF 通道模型可能是較佳的選擇。 如需使用 WCF 通道模型的詳細資訊,請參閱 使用 WCF 通道模型開發 Oracle 資料庫應用程式。
本節中的主題包含資訊、程式和範例,可協助您使用 Oracle 資料庫配接器來建立和使用 WCF 服務模型來開發應用程式。