我目前有一個由ASP.NET MVC編寫的Web應用程序。現在我想添加一個Web服務,以便一些人可以輕鬆地在其上構建應用程序。我應該在MVC Web項目中創建asmx還是創建另一個引用到Model項目的項目?有什麼優點和缺點?如何將Web服務放置在您的ASP.NET MVC Web應用程序
在此先感謝!
我目前有一個由ASP.NET MVC編寫的Web應用程序。現在我想添加一個Web服務,以便一些人可以輕鬆地在其上構建應用程序。我應該在MVC Web項目中創建asmx還是創建另一個引用到Model項目的項目?有什麼優點和缺點?如何將Web服務放置在您的ASP.NET MVC Web應用程序
在此先感謝!
簡單的決定 - 如果您的MVC Web項目完全依賴Web服務,請將其保留在MVC Web項目中。如果沒有,請參考您的模型爲Web服務創建一個單獨的項目。
保持項目獨立性可以讓人們更有效地閱讀和理解你的代碼。如果你的服務使用你的模型,但不是該模型的一部分,那麼它肯定應該是一個參考模型的獨立項目。這是乾淨的設計。
我的意見,我會做這樣的事情在我的解決方案
solution.Model -- the model that reflects your db,
solution.Repository
solution.MVC -- your model will be the refined Model, referencing the solution.Model
solution.Test
solution.WebService -- referencing solution.Model
我把我的模型我的MVC的Web應用程序外,只是把精緻的ViewModels在我的MVC模型文件夾。我對pro和con的瞭解不多,但這只是爲我做的一個更好的方法。
這樣做,無論如何你都可以使用你的模型。也許你想用它作爲你所要求的WebService。或用於其他應用程序。您只需將您的Model項目引用到您需要它們的其他項目。
謝謝,搶!正如你所提到的,我也有一個Model項目。阻止創建新Web服務的唯一原因是我認爲單獨託管Web應用程序和Web服務存在一點偏差。你如何託管你的Web應用程序和Web服務?謝謝! – Roy 2010-08-13 07:02:03
應用程序和webservice都可以單獨託管。他們只是使用Model項目生成的dll。 – 2010-08-17 08:24:32
我會尋找奧達塔 - > WCF數據服務形式上稱爲「阿斯托利亞」。 如果您正在使用例如linq-to-sql或EF,您可以使您的數據以平靜的方式提供並提供基本的API ... 您可以像在WCF中那樣定義您的端點,因爲底層服務基於WCF。而且我會用不同的命名空間......
網站 http://msdn.microsoft.com/en-us/data/bb931106.aspx
新手引導與視頻 http://msdn.microsoft.com/en-us/data/ee720180.aspx
開放的數據格式 http://www.odata.org/
謝謝!如果我們將Web服務與Web應用程序分開,我們需要單獨託管它們,但它們對相同的數據執行相同的邏輯。它看起來對客戶有偏見嗎? – Roy 2010-08-13 06:57:10