Dot-Net

何時使用 WCF 數據服務,何時不使用?

  • June 23, 2010

對於哪些應用程序或開發場景,使用WCF 數據服務是有意義的,以及其他技術何時是更好的選擇(例如 WCF RIA 服務、ADO 實體框架、經典 ADO.NET、簡單服務或其他)?

WCF 數據服務是一種在 Web 上獲取數據模型(集合和實體)的非常簡單快捷的方法。您可以通過標準 HTTP / REST 呼叫輕鬆瀏覽您的集合、查看實體等。

只要你有大部分 - 顯示和顯示實體和實體集合 - 它工作得非常好。我真的不知道 WCF RIA 服務帶來的額外好處 - 還沒有調查太多。

WCF 數據服務基於數據的模型表示 - 這就是 Linq-to-SQL 或實體框架發揮作用的地方,並允許您基於物理數據庫創建該模型。

但是,當您需要使用諸如面向方法的服務之類的東西時——例如“插入客戶”、“計算客戶的總訂單”等等,那麼基於 SOAP 的 WCF 服務將更適合。基於 SOAP 的 WCF 服務定義了一個服務契約(服務上的一組方法)並允許您在服務對像上呼叫這些方法。

SOAP 在進行面向事務的業務工作時非常有用——它是自我描述的,例如,您的客戶端可以發現和詢問 SOAP 服務(REST 非常缺乏的一個領域——沒有“WSDL”或與 REST 服務類似的東西)。

如果您正在使用 SOAP,我還建議您對數據使用基於模型的方法 - 創建數據庫模型並將這些實體上的方法公開給外部世界 - 再次使用 Linq-to-SQL、實體框架、NHibernate 或其他一些建模/ORM 工具。我不建議在你的大部分工作中使用“經典”或“簡單”的 ADO.NET——這只是太多繁重的工作和愚蠢的程式碼——讓像 Linq-to-SQL 或 EF 這樣的框架來處理那些無聊的基礎設施的東西為您服務,並專注於您的實際業務需求和需求。

引用自:https://stackoverflow.com/questions/3102551