ASP.NET MVC和Web服务

时间:2020-03-06 14:34:43  来源:igfitidea点击:

在我的ASP.NET MVC项目中添加Web服务是否破坏了MVC的整个概念?

该Web服务(WCF)依赖于我的MVC项目中的Model层与后端进行通信(因此在我看来,它需要成为MVC解决方案的一部分)。

我应该将其添加到Controller或者Model层吗?

解决方案

我们是否需要将Web服务添加到MVC应用程序的特定原因?除非有特殊原因,否则我们应该像RESTful Web服务一样以RESTful方式使用控制器。

查看Rob Connery的这篇文章,了解更多信息:
ASP.Net MVC:使用RESTful体系结构

我已将Web服务添加到我的应用程序中,并且运行良好。我不认为它违反了MVC,因为它是模型的替代接口。 MVC不适合Web服务,因为Web服务没有视图。

听起来我们应该将模型拆分为自己的程序集,然后从MVC应用程序和WCF应用程序引用它。

  • YourApp.Data-共享模型和数据访问权限
  • YourApp.Web-如果要在整个Web应用程序中共享更多内容
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

如果我们想以MVC风格进行Web服务,则应该使用MVC来构建自己的REST应用程序。

我认为将模型分为自己的程序集与我们是否使用MVC无关,我们仍然拥有模型。哪里无关紧要?

将模型分离到自己的项目中不会破坏" MVC"模式。首先,这只是一个模式。 MVC模式的目的是清楚地区分数据,数据处理程序和演示者之间的接口方式。最好的方法是Seb建议:

  • YourApp.Data
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

Rob Conery组合在一起的MVC店面可能会。在这里观看视频:

MVC店面视频系列

如果我们想在浏览器中查看实际代码以快速了解他的操作方式,请转到此处:
MVC店面Codeplex代码浏览器

我已经去做这个了。

在我的博客上查看我的结果

ps:只要我们认为Web服务是存储库的模型,我相信这不会破坏MVC概念,因为所有Web服务所做的都是返回XML转储。