簡體   English   中英

ASP.NET MVC使用松散耦合的WCF Web服務

[英]ASP.NET MVC using Loosely-Coupled WCF Web Service

我之所以需要松散耦合的WCF,是因為實體框架是緊耦合的。 當我說松散耦合時,不需要實例化數據庫上下文或添加WCF的服務引用。 當開發人員需要更改服務器,IP地址或服務URL時,它只依賴於Web配置或一些不需要編譯的.ini文件。

相反,MVC(比如控制器)將只發送請求消息,然后從WCF服務獲取響應數據。 但是,如果沒有基於數據庫的模型(因為我們需要在intellisense中進行視圖標記),我們仍然負擔不起,其中WCF將獲取數據。 假設我們已經有了這些數據庫對象類,創建了一個將WCF數據綁定到MVC模型的存儲庫。

我的意思是WCF Web服務,它只包含消息,不再傳遞對象引用,因為這就是新的SOA定義。 傳遞消息而不是對象更有意義。

這是一種更好的方法嗎? 在可擴展性和性能方面,我並不是要冒犯實體框架粉絲。

根據僅使用基本類型的消息模式來定義WCF Web服務是一種完全有效的方法,因此客戶端無需了解WCF即可使用該服務。 否則,WCF對於與其他平台(例如Java)的互操作將是無用的。

了解WCF是一種通用且強大的框架,用於實現各種傳輸協議的通信。 它可以同樣有效地用於原始XML消息傳遞,也可以用於對象編程。 對象序列化和反序列化是框架的可選附加,而不是要求。 (實際上沒有“傳遞對象引用”這樣的東西 - 最終它是一個遍布通信通道的XML信息集。此外,實體框架不是WCF的一部分 - 它是一個獨特的ORM框架,可以與WCF一起使用如果你想,但這是你的選擇。)

可伸縮性和性能在數據和操作合同方面完全與服務設計正交。 您應該隨意采用任何方法來定義您的服務最適合您的應用程序。 如果那是XML消息,那沒關系 - 不要讓別人告訴你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM