2011-08-25 37 views
9

我有幾年前編寫的asp.net mvc應用程序,我添加的內容越多,我傾向於向控制器發出REST/AJAX調用以從中獲取數據。使用Asp.net mvc或web服務會更好嗎?

我的問題是,我繼續這樣工作還是應該公開數據作爲單獨的REST服務(WCF的方式)?

它感覺mvc應用程序設計的邊界以及web服務的設計越來越模糊。 Mvc應用程序(除了分離)最初生成網頁,現在它被用來提供基於服務的數據。

JD

回答

4

我看到兩種可能的情況

單個Web應用程序。在這種情況下,您繼續向控制器添加方法。這很好,因爲它可以在一個地方保持與控制器功能的相關性並節省您的時間。如果從其他Web應用程序調用控制器,則不適用。簡單,醜陋但有效,需要很少的時間進行開發,並且有很多時間進行維護。

Web應用程序+ Web服務。您可以將數據檢索方法分離到服務界面中。積極的一面是你的系統變得更加模塊化和獨立,這對維護很有幫助。如果您預測將會有其他方法即將添加或者其他Web應用程序使用了該方法,那麼此路徑可能比擴展當前Web應用程序更好。不利的一面是,新服務需要對當前Web應用程序進行一些重構,並需要花費時間進行開發/測試等。此決策帶來更多複雜性,但使您的應用程序易於擴展。

2

我認爲WCF擁有MVC幾個優點,如果你嚴格發送數據,特別是在被明確(SOAP與使用自釀的編碼),全行業的工具支持的數據格式方面,優秀的支持不同類型的綁定(即不僅僅是HTTP),各種傳輸級別的服務,漂亮的日誌記錄和跟蹤功能等。

最後歸結爲:是否有足夠的重要優勢來使用WCF 您的情況。這是你必須弄清楚自己的事情。