如何使用ASP.NET MVC Web应用程序放置Web服务

时间:2010-08-13 06:38:33

标签: asp.net-mvc web-services

我目前有一个由ASP.NET MVC编写的Web应用程序。现在我想添加一个Web服务,以便一些人可以轻松地在其上构建应用程序。我应该在MVC Web项目中创建asmx还是创建另一个引用Model项目的项目?什么是利弊?

提前致谢!

3 个答案:

答案 0 :(得分:1)

轻松决策 - 如果您的MVC Web项目完全依赖于Web服务,请将其保留在MVC Web项目中。如果没有,请参考您的模型为Web服务创建一个单独的项目。

保持项目分离使人们能够更有效地阅读和理解您的代码。如果您的服务使用您的模型,但不是该模型的一部分,那么它应该是参考模型的独立项目。这是干净的设计。

答案 1 :(得分: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应用程序之外,并将精炼的ViewModel放在我的MVC Model文件夹中。我对pro和con的了解不多,但这对我来说只是一种更好的方式。

这样做,无论如何都可以使用你的模型。也许您想将它用于WebService,就像您要求的那样。或者另一个应用程序。您只需将Model项目引用到您需要的其他项目中。

答案 2 :(得分:0)

我会寻找Odata - > WCF数据服务在形式上被称为“Astoria”。 如果您使用例如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/