远程 API/Web 服务层 MVC 的域逻辑和数据访问

Posted

技术标签:

【中文标题】远程 API/Web 服务层 MVC 的域逻辑和数据访问【英文标题】:Domain Logic and Data Access of MVC at Remote API/Web Service Layer 【发布时间】:2010-09-25 18:57:24 【问题描述】:

在我们的系统中,我们有一个远程 API 层(例如 SOAP、XML-RPC、REST 等)来处理 Web 应用程序和在其上开发的任何客户端应用程序的域逻辑和数据访问。与过去不同,我在 web 应用程序中没有业务逻辑代码和数据库连接,所有用户操作都被转换为调用层的方法。

我担心的是,比如说页面的渲染,它需要进行大量调用来获取数据,例如带有报告、最近历史记录、一些 portlet 等的用户仪表板。使用我当前的设计(将逻辑和 DA 委托给远程层),您看到的缺点是什么?我看到通过 HTTP 建立和传输基于文本的数据比 DB 访问更重且更昂贵。此外,必须在 Remote 层进行优化(给定 Web 应用程序中的业务逻辑和 DA 代码,您可以更灵活地进行优化)。

我现在正在考虑是否应该创建一个远程“Helper”服务,该服务允许我将所有调用压缩为一个,即我不是进行多次调用,而是发送一个带有一组方法名称和参数的调用。它看起来有点难看,这就是为什么我现在仍然对这样做持怀疑态度。

我想知道您对这种架构的看法,如果您使用类似的方式开发了一个 Web 应用程序,那么您过去采取了哪些方法来保证良好的性能?如果还有其他我真正应该担心的问题,也请与我分享。

谢谢!

yc

【问题讨论】:

我注意到这个问题已经很老了。你自己回答了这个问题吗?如果没有,并且您仍在寻求建议,请告诉我,我会尽力解决。 嗨,伙计,这个问题没有得到解答。我用他所说的架构设计并实现了这个应用程序,但我不知道几年后会出现什么问题。肯定想听听你的回复。主题。 @yclian - 自从提出这个问题以来,我已经看到了很多时间。你的架构现在表现如何?当您有依赖数据调用时,您是如何解决这些问题的?我的意思是,当您不知道要获取哪些数据时,先处理一些数据?谢谢 【参考方案1】:

如果你在 asp.net mvc 中正确使用输出缓存,那么性能会大大提高。

【讨论】:

以上是关于远程 API/Web 服务层 MVC 的域逻辑和数据访问的主要内容,如果未能解决你的问题,请参考以下文章

MVC设计模式与三层架构

在哪里放置需要从数据库中获取数据的域逻辑

三层架构MVC

深入探讨:如何理解.Net的三层架构

三层架构与MVC

微服务架构day01