【问题标题】:Should Datasets be used in an enterprise level web application?数据集是否应该在企业级 Web 应用程序中使用?
【发布时间】:2010-11-08 13:33:14
【问题描述】:

因此,我在之前的一个项目中有一位架构师反对数据集。他讨厌它们,并说它们在 Web 应用程序中没有位置,特别是在具有大量流量的 Web 应用程序中。

我注意到在我接手的许多代码实例中,数据集被大量使用。

它们真的那么糟糕/性能下降吗?

我是否应该考虑取消大量使用数据集的应用程序,并将其替换为通过数据读取器填充的列表?

我很想知道你们在这个主题上的发现,或者你的偏好是什么。

再次感谢大家!数据

【问题讨论】:

    标签: asp.net performance dataset


    【解决方案1】:

    Dino Esposito 文章 DataSets vs. Collections 可能是比较使用数据集与集合的一个很好的参考。

    我的偏好是使用域(业务对象)和集合,遵循Domain Driven Design 的概念,结合使用 NHibernate 进行数据持久性以及 Dependency Injection

    【讨论】:

      【解决方案2】:

      我对数据集没有任何问题,但我希望如果我将其中的很多存储在 Session 中(特别是进程外提供程序)或者必须通过 Web 服务调用序列化它们,我会发现性能问题。大多数情况下,在相当简单的两层或小型三层结构中,我没有发现它们有问题。

      我还会尝试确保数据层返回的数据不会超过我页面实际需要的数据。

      【讨论】:

        【解决方案3】:

        数据集基本上是一个小型的内存数据库,这就是为什么有人告诉您,在具有大量用户的 Web 应用程序中,数据集不能很好地扩展,因为它们会耗尽 Web 服务器上的内存。

        您是否应该替换当前应用程序中的数据集取决于您的应用程序是否因数据集而出现扩展问题(与大量用户一起工作)。

        我也更喜欢使用更复杂的工具来构建 Web 应用程序,但如果您仍在使用数据集和数据适配器来运行您的 Web 应用程序,我会犹豫向您扔一大堆十美元的话。数据集和数据适配器是构建网站的绝佳方式。

        关于数据集,您必须记住的是,它是数据的内存表示形式,并且可以随机访问;而数据适配器是只进的阅读器,但它非常快并且需要很少的内存(足够存储一条记录)。如果可能,Web 应用程序中的数据集通常应保持非常小。

        【讨论】:

          【解决方案4】:

          性能不是一个真正的问题,除非你有理由这样做。数据集的性能可能非常好,也可能很差,这取决于您如何使用它们——这很重要。

          真正的 PITA 与数据集相比,与您可以使用的更丰富的技术(如 LINQ 2 SQL/Entities 和 NHibernate)相比,它们相对难以使用。与对象集合相比,使用常规 LINQ 也很痛苦。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-15
          • 1970-01-01
          • 2012-04-01
          • 2011-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多