c# - 在 MVC 3 中使用现有的 Web 服务

标签 c# web-services asp.net-mvc-3

仅供引用,我正在使用 MVC 3 和 Razor 以及 C# 和 .NET3.5/4.0 开发我的第一个 MVC Web 应用程序,并且我正在寻找“最佳实践”方法用于在 MVC 3 应用程序中使用现有的 Web 服务。从到目前为止我所了解的情况来看,我所需要做的就是以下内容。在 MVC 项目中包含对现有 Web 服务的引用,为我希望在应用程序中使用的数据创建一个模型,创建一个 Controller 来进行 Web 服务调用,然后填充从模型创建的对象(阅读>AutoMapper 看看这对该过程有何帮助),然后创建一个 View 来显示已转换为 MVC View 模型的数据。

我有疑问的部分是从网络服务检索和创建/更新数据的最佳方式是什么。也许我把这件事复杂化了,但似乎我错过了一些东西。

我是否需要创建一个映射到从 Web 服务检索的数据的“域模型”,然后创建映射到域模型的“ View 模型”,然后在 MVC 3 应用程序中使用 View 模型?

基本上,我正在寻找有关如何最好地使用现有 Web 服务作为我的数据访问层的意见。

最佳答案

在数据访问层上,您将打开连接,获取原始数据,然后关闭它。与从数据库获取数据的方式相同。然后,您可以通过数据适配器将此原始数据转换为业务层(域模型)。然后,任何顶级应用程序(例如您的 MVC3 网站)都会将此域模型转换为适当的 View 模型,以及任何其他用于渲染的数据,再次通过数据适配器。

这样做的主要论点是,现在任何需要它的顶级应用程序都可以访问该服务。将任何类型的数据检索方法放入数据访问层也是合乎逻辑的,因为这在逻辑上就是数据访问层的设计目的。

总是存在简单地从 Controller 访问服务的诱惑,但关注点分离可能表明这是构建代码的糟糕方法。您应该将该服务封装为应用程序的域/业务层服务。

简而言之,您不需要这样做,但最佳实践建议您应该这样做。当层之间很少或没有转换时,有时会感觉很乏味,但它通常有助于保持一致性。

关于c# - 在 MVC 3 中使用现有的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651292/

相关文章:

c# - 将模型传递给局部 View ?

c# - 下载多个文件的更快方法

c# - 返回域对象列表最佳实践

javascript - 禁用调试时,使用捆绑缩小的脚本在 ASP.NET MVC 3 中不起作用

java - Android kSOAP Web服务问题

android - 如何在 Android 3.0+ Honeycomb 上使用 ksoap2

java - Tomcat Java Web 应用程序运行缓慢

c# - 无法在我的WPF应用中复制内存

c# - "Show Threads in Source"按钮在 VC# 2010 Express 中有什么作用吗?

c# - 阻止 WM_QUIT