【问题标题】:Web service vs. class file - performanceWeb 服务与类文件 - 性能
【发布时间】:2011-07-11 15:11:50
【问题描述】:

我正在尝试找出执行此操作的最佳方法:我正在处理一个项目,并将所有数据访问层代码放入 .ASMX 文件中,以使它们与我的表示层分开。我从后面的代码中调用我的所有方法,并使用类文件等 Web 服务。我正在根据另一位开发人员的工作遵循这种做法。到目前为止,对此有两种看法:一种说法是,当代码隐藏从 Web 服务调用该方法时,它会影响性能,因为它必须执行 HTTP 请求,另一种说法是,不会影响性能。 ASMX 文件位于同一服务器上的同一项目中。是否确实有性能影响?我倾向于认为不是。

对此的任何帮助或意见将不胜感激。

【问题讨论】:

  • 好问题。如果我理解正确,您是说您正在调用类中的方法,在 .asmx 文件中,但实际上不是通过 Web 服务引用?还是你?如果您没有调用 Web 服务引用,而是调用项目内部的一个类(这也是 Web 方法)——它不会序列化为 HTTP。它只是简单地调用方法。

标签: performance class service


【解决方案1】:

如果您作为 Web 服务调用,即使您在同一服务器内调用,您仍然需要通过代理和参数编组;与直接调用同一个类相比,性能会受到影响;呼叫开销可能要高几个数量级。如果被调用的方法没有做一些实质性的工作,你不会想这样做。

【讨论】:

  • 感谢您的回答。我实际上将它们称为类而不是真正的 Web 服务,因为这个应用程序是作为客户端应用程序开始的,当我使用服务器端控件时,我不想重做所有代码。如果我调用它们并将它们用作类,是否还会影响性能?
  • 如果您不通过代理,我不明白您为什么要将内容放入 .ASMX 文件而不仅仅是 .cs 文件?
  • 这是为了节省时间,因为我将来可能会探索将其再次转换为客户端。
  • 我明白了——好吧,不通过代理调用 .asmx 文件中的方法与调用任何其他方法一样,因此没有开销。
  • 感谢您的帮助。我很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 2011-03-21
  • 2016-09-24
  • 1970-01-01
相关资源
最近更新 更多