最佳实践:一般asmx数据加载Web方法或多Web方法

时间:2011-04-03 14:40:28

标签: asp.net web-services asmx

我想知道从性能的角度来看哪种方法更好,使用一种Web服务方法通过传递数据库表名称和密钥来加载数据是否更好,或者更好地为每个数据库表使用单独的方法!知道我通过ajax请求使用.net asmx。

很明显,从OO角度来看,一种方法更好,因为它有一种功能类型'数据加载',但性能呢? IIS是否受此影响?制作多个网络服务'asmx文件'或者只是一个更好!

3 个答案:

答案 0 :(得分:0)

我不认为服务级别应该对数据库表有任何了解,就像您理想情况下不希望在控制器操作或ASPX代码中看到数据访问代码一样。

就个人而言,我更喜欢整理我的服务以匹配我的域模型。

例如,如果我有CustomerOrderItem类,我会有相应的Customer.asmxOrder.asmx和{{1}服务公开这些类中的选定方法。

答案 1 :(得分:0)

服务通常负责通过合同公开业务功能。我意识到ASMX服务在最广泛的意义上确实没有“合同”的概念,但是您将其视为服务支持的一组操作。您的目标是什么,您希望将表格数据公开为服务吗?

Microsoft堆栈上的服务技术已经远远超出了ASMX。也许这是一个显而易见的问题,你看过WCF数据服务吗?

链接:

答案 2 :(得分:0)

我真的不认为创建用于处理数据的单独方法来获取不同的表是必要的。通过将额外的表名param传递给你的webservice调用可能会遇到的性能增益\损失太小甚至无法考虑,除非你的表名真的很大,我认为不是这样。

我甚至考虑做这样的事情的唯一原因是,如果我在性能改进方面没有别的办法,或者被迫做这件事; - )。

如果您真的想要优化请求大小,请尝试

  • 使用JSON序列化您的输入参数(如果您还没有这样做)
  • 为您的网络服务使用无Cookie域名

希望这会有所帮助