有没有人有关于在ASP.Net MVC应用程序中使用Web服务作为模型的建议或提示?我没有看到有人写这样做.我想构建一个MVC应用程序,但不是将它绑定到使用特定数据库,也不是将数据库限制为单个MVC应用程序.我觉得一个Web服务(RESTful,很可能是ADO.Net数据服务)是要走的路.
您的MVC应用程序与数据库分离的可能性或有用程度有多大?在您的应用程序生命周期中,您经常看到从SQL Server到Oracle的更改?从我交付的最近10年的项目来看,它从未发生过.
建筑就像洋葱一样,它们在所依赖的东西之上有各种抽象层.如果您打算使用RDBMS进行存储,那么这就是您架构的核心.从数据库中提取自己,以便你可以交换它是一个非常谬误.
现在,您可以将数据库访问与域分离,并且存储库模式是执行此操作的方法之一.目前大多数成熟的解决方案都使用ORM,因此如果您需要成熟的技术,可能需要查看NHibernate,或者在数据之上使用ActiveRecord/linq2sql来查看更简单的活动记录模式.
既然您已经制定了数据策略,那么您就拥有了某种域名.当您向客户端公开数据时,您可以选择通过MVC模式执行此操作,您通常会在其中发送从域生成的DTO以进行呈现,或者您可以决定利用REST之类的体系结构样式来提供更松散耦合的系统,通过提供链接和自定义表示.
当你走向解决方案的外层时,你会从紧耦合变为松散耦合.
但是,如果您的问题是在REST架构或Web服务之上构建MVC应用程序,并将其用作模型......为什么要这么麻烦?如果您要拥有域模型,为什么不在您的系统和服务中重复使用它?
从MVC应用程序生成UI并生成RESTful架构所需的文档是两个完全不同的上下文,基于彼此之间的基础只会导致比需要更多的痛苦.你牺牲了性能.
取决于您的确切场景,但远程基于XML的服务作为MVC中的模型,从经验,不是一个好主意,它可能过度工程并忽视域开始的需要.