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转储。