2010-08-13 20 views
0

我目前有一個由ASP.NET MVC編寫的Web應用程序。現在我想添加一個Web服務,以便一些人可以輕鬆地在其上構建應用程序。我應該在MVC Web項目中創建asmx還是創建另一個引用到Model項目的項目?有什麼優點和缺點?如何將Web服務放置在您的ASP.NET MVC Web應用程序

在此先感謝!

回答

1

簡單的決定 - 如果您的MVC Web項目完全依賴Web服務,請將其保留在MVC Web項目中。如果沒有,請參考您的模型爲Web服務創建一個單獨的項目。

保持項目獨立性可以讓人們更有效地閱讀和理解你的代碼。如果你的服務使用你的模型,但不是該模型的一部分,那麼它肯定應該是一個參考模型的獨立項目。這是乾淨的設計。

+0

謝謝!如果我們將Web服務與Web應用程序分開,我們需要單獨託管它們,但它們對相同的數據執行相同的邏輯。它看起來對客戶有偏見嗎? – Roy 2010-08-13 06:57:10

1

我的意見,我會做這樣的事情在我的解決方案

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項目引用到您需要它們的其他項目。

+0

謝謝,搶!正如你所提到的,我也有一個Model項目。阻止創建新Web服務的唯一原因是我認爲單獨託管Web應用程序和Web服務存在一點偏差。你如何託管你的Web應用程序和Web服務?謝謝! – Roy 2010-08-13 07:02:03

+0

應用程序和webservice都可以單獨託管。他們只是使用Model項目生成的dll。 – 2010-08-17 08:24:32

0

我會尋找奧達塔 - > 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/

相關問題