2012-11-26 30 views
0

我需要爲將由我的公司託管的web服務創建Web服務API和數據合約,但將由第三方實施。什麼是最好的方式來做到這一點?創建由第三方實施的WCF服務

理想情況下,我不想要求第三方必須使用.NET或任何特定的技術。我只是想給他們操作和數據合同。

+0

不過,他們必須創建主機項目並使用我們提供的操作和數據合同?如果他們根本不使用.NET呢? – jjm340

+0

如果他們正在創建服務供您使用(併爲您維護),那麼您應該**確定**指定他們必須使用哪種技術。 –

回答

3

IF第三方使用.NET - 那麼最簡單的解決辦法是隻簡單地定義合同,如C#或VB.NET接口 - 合同的的服務,營運合約(服務方法),數據合同(類型來回傳遞) - 但將實現留給第三方。

你可以將所有這一切都粘貼到一個單獨的類庫組件中,並將它們作爲API定義發佈到基本上。然後,該第三方可以將服務實現作爲C#/ VB.NET類庫實現,並將其發回給您。

IF第三方不使用.NET的話,那麼你必須創建一個WSDL(Web服務描述語言)文檔描述服務和其方法,以及一些XSD (XML模式)文件,描述來回發送的數據類型。

通過基本上完成與上述相同的步驟 - 創建您的服務,操作和數據合同 - 然後自己實現該服務的「虛擬」實現,您可以非常容易地完成此操作。然後啓動該服務並從該運行服務創建WSDL/XSD。將這些文件運送給您的第三方,讓他們自己實施這項服務。

當然還是 - 你也可以手動筆者WSDL/XSD,從頭開始 - 但邊界上)黑色藝術和b)受虐 - 不推薦...

+0

好的,所以我們生成WSDL和XSD,然後他們實現這個服務。然後,我們必須實現客戶端到該服務,我假設我不能在Visual Studio中使用生成服務引用 - 除非他們有一個服務版本啓動並運行? – jjm340

+0

在你的svc.vb文件中標記每個方法與,然後添加一個.asmx文件(內容就像.svc文件),當你點擊.asmx?wsdl時,你會得到一個傳統的WSDL。 – lcryder

+0

@ jjm340:您可以根據您創建的WSDL/XSD文件生成您的服務客戶端(a),或者(b)一旦它啓動並運行,您就可以從實施的服務中生成服務客戶端。 –