2011-02-18 61 views
0

[我以前從未使用過WCF。我一直在谷歌搜索了幾天,並沒有發現任何信息,使我的決定是否使用它明顯的我。]我應該將WCF添加到ASP.NET MVC網站以將數據提供給移動應用程序嗎?

我一直在開發一個網站使用ASP.NET MVC,LINQ到SQL和SQL Server。

現在我想開發它就會從網站的數據庫被送入數據的一些移動應用程序。

有人建議,我認爲我使用WCF這一點。

我知道,如果我面臨的公共互聯網數據,可以,如果有人真的想要它刮掉,但我想,以儘量減少我的數據「scrapablility」。

因爲我的移動應用程序將可能只是被髮送/ JSON格式接收數據時,我會使用WCF,而不是僅僅基於REST的JSON-返回URI的MVC中得到什麼好處?

如果我實現WCF,應我的MVC網站是打擊那些服務的數據也,而不是在我的控制器使用LINQ?

回答

1

我有一個ASP.NET MVC應用程序打WCF。我最初是在沒有WCF的情況下通過讓控制器與一個服務層交互來開發它的,這個服務層碰到了我的倉庫。在開發過程中出現了一項要求,要求我將UI與服務層進行物理分離。

添加WCF是在後方的痛苦。事情沒有WCF工作後不再工作。例如,我的實體的狀態在傳輸到/從服務層傳輸時丟失,這使得我的ORM(NHibernate)的某些功能非常難以使用。我無法再檢索實體,將視圖模型映射到我的控制器中的實體,並允許NHibernate確定是否需要更新。

這就是說,與WCF相關的挑戰之初大多發生。我不需要經常重新訪問配置,而且我已經習慣了使用分離的實體。我也有物理分離的好處,WCF非常靈活。

如果我需要Web服務而不是分離,我會使用WCF嗎?我真的不知道。我可能會嘗試使JSON操作方法工作,因爲這些方法更容易(更不用說更有趣)。保持簡單仍然是一個很好的原則。

至於你的MVC網站打服務?我認爲可以肯定地說你的動作方法應該非常簡單,並且在你的MVC項目中應該只有很少的業務邏輯或持久性問題。分離問題使得適應和改變你的應用變得更容易。

1

我沒有看到任何需要WCF。如果API很小,我會考慮API區域或控制器,並通過控制器操作中的JSON傳遞數據。我會重構應用程序,以便API和您的控制器使用相同的存儲庫。如果您需要通過AJAX從視圖中檢索數據,則可以使用該API,但如果控制器可以利用存儲庫,則在控制器中看不到使用它們的任何點。

相關問題