繁体   English   中英

ASP.NET MVC和Web服务

[英]ASP.NET MVC & Web Services

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

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

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

听起来你应该将模型拆分成自己的程序集,并从MVC应用程序和WCF应用程序中引用它。

  • YourApp.Data - 可能是共享模型和数据访问
  • YourApp.Web - 如果您想在您的网络应用中分享更多内容
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

如果你想做WebServices MVC风格,你应该使用MVC来构建自己的REST应用程序。

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

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

将模型分离到它自己的项目中并没有打破“MVC”模式。 首先,它只是 - 一种模式。 MVC模式的目的是清楚地描述您的数据,数据处理程序和演示者以及它们之间的接口方式。 最好的方法是Seb建议如何:

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

可能对你有帮助的是Rob Conery整合的MVC店面。 去观看视频:

MVC店面视频系列

如果你想查看浏览器中的实际代码以快速了解他是如何做到的,请转到此处: MVC Storefront Codeplex Code Browser

我不认为将模型分成它自己的程序集与你是否使用MVC有任何关系,你仍然有一个模型。 哪里肯定无关紧要?

我做了这件事。

我的博客上查看我的结果

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

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

将Web服务和数据库视为同一个。 根据这个类比,我认为将您的Web服务输入放置在放置数据库逻辑的位置是有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM