是否可以將oData與WCF服務應用程序一起使用但不使用WCF數據服務?作爲oData公開WCF服務的數據
這將是巨大的,如果有人能闡明的OData更多的光線。我在這個主題上做了一些Google搜索,但每當我搜索「wcf odata」時,我都會獲得有關WCF數據服務的信息。
任何幫助/鏈接將不勝感激。
是否可以將oData與WCF服務應用程序一起使用但不使用WCF數據服務?作爲oData公開WCF服務的數據
這將是巨大的,如果有人能闡明的OData更多的光線。我在這個主題上做了一些Google搜索,但每當我搜索「wcf odata」時,我都會獲得有關WCF數據服務的信息。
任何幫助/鏈接將不勝感激。
WCF數據服務是微軟實現一般的OData協議。因此,只有WCF數據服務/支持/實施的OData - 一個「正常」的WCF服務不不(並可以不)。
您可能需要詳細說明爲什麼您覺得需要或希望使用OData但不使用WCF數據服務。這個設置有什麼問題/問題? 爲什麼你想只使用「正常」的WCF服務?
更新:好的,所以你想有服務,以不同的方式和不同的方式暴露數據。你可以做的是創建一個定期的WCF服務,它公開了SOAP端點以及一個webHttpBinding
REST端點。這會起作用 - 但是這是一個「常規」的WCF服務,帶有參數並返回一些數據結構的方法。這是而不是 WCF數據服務(OData)。
OData更像是一個「這裏是我的數據集合,你可以瀏覽它」這種方法 - 更多的是使用REST將整個數據模型暴露給外部世界。這不會與SOAP混合和匹配 - 這更多地是面向過程的,例如, LoadCustomer
,SaveInvoice
等等。
因此,雖然絕對有可能讓面向過程的WCF服務同時公開SOAP和REST端點,但我真的不知道如何混合和匹配「揭露這種資源」方法對於帶有SOAP綁定的WCF數據服務/ OData - 我相信這只是行不通的。因此,如果您必須公開WCF數據服務(OData)的數據模型,則需要爲SOAP客戶端創建第二個完全不同的常規WCF服務,這可能基於最終的相同數據(例如,訪問同一個數據庫),但它的「臉」看起來很不一樣。
微軟有一個新的項目叫做WCF WebApi(NuGet Package),它簡化了RESTful WCF。它確實需要考慮REST的「表示」部分,以便您可以根據內容協商(或任選您想要的任何約定)以多種表示方式公開您的數據(JSON,XML,oData,PNG等)服務合同運營。目前烘焙到框架中的是支持oData GET queries的能力,通過簡單地返回集合.AsQueryable()
。
雖然這不是一個純粹的WCF/OData的解決方案,爲您的問題說話,我以爲我會提及情況下,滿足您的特定需求的項目。目前的Go-Live許可證可能會被禁止,這可能是該代碼的「預覽」狀態;但如果不是,這可能是您的一個解決方案。
*更新*該項目已被納入ASP.NET(通常與ASP.NET MVC一起使用),不再屬於WCF團隊。新產品被稱爲ASP.NET WebAPI。
實際上,我們正在尋求開發以不同格式顯示數據的服務,所以我只是在想,如果我們能將它們集於一身。它不是我想要使用普通的wcf服務,無論什麼要求。 – genericuser
數據應該通過oData公開,並且應該是安靜的。客戶也可能想要SOAP。如果有任何信息可以通過wcf清除我有關oData的概念,那麼它有什麼可能,這將非常有用。 – genericuser
@ Priya10:更新了我的迴應 –