gpt4 book ai didi

asp.net - 将存储在 Viewstate 中的 DataTable 转换为 List 是一个糟糕的选择吗?

转载 作者:行者123 更新时间:2023-12-02 17:46:19 24 4
gpt4 key购买 nike

我刚刚开始一份新工作,继承了一个噩梦般的 WebForms .net 4.0 项目,该项目在很多地方都出了问题。

我有一个用户控件,它在 ViewState 中存储 DataTable。该代码通过索引号引用整个代码中的列,这使得它完全不可读。我知道我可以按名称引用列以使其更具可读性,但我更愿意将其分解为列表。

之前的开发人员将列表存储在 ViewState 中,因为更改无法持久保存回数据库,我们读入数据,销售人员可以对定价进行修改,然后将信息推送为 XML 格式以生成销售PDF 格式的订单。所以我们需要一个临时存储的机制。

如果我有从头开始的奢侈,我会以 JSON 形式提取数据并在客户端完成所有操作,但我还没有这种奢侈。

  1. 自从我使用 DataTables 以来已经有很长一段时间了,我很确定将它放在 ViewState 中不好,是吗?正确的?它会对 ViewState 施加什么样的负载;我们正在查看 44 列,通常大约 25 行。 :s

  2. 其次,如果将 List 放入ViewState 与 DataTable 相反,或者它们都一样糟糕其他 - 在这种情况下,我目前的立场不会造成任何伤害退出?

  3. 第三个问题,行的更新会在ViewState DataTable,这与 List 一样吗?

  4. 最后一个,更多地寻求建议。最好去哪里存储此信息(最好是列表)服务器端 - 会Session 还是 Cache 更好?

最佳答案

  1. 你是对的。将 DataTable 存储在 ViewState 中是一个糟糕的主意。

  2. 在 ViewState 中存储列表仍然很糟糕,并且可能比存储 DataTable 稍好一些。

  3. 不清楚“数据表上自动发生更新”是什么意思。除非您从 ViewState 检索 DataTable 并以编程方式应用任何更新,否则我怀疑情况确实如此。如果您使用列表,则必须执行相同的操作。

  4. Session 可能更好,但随后您可能会遇到可扩展性问题。坦率地说,我会将其存储在 Session 中,但会选择使用 Out of Proc 状态提供程序之一。这样,您的序列化数据表就不会在每次请求时都发送到客户端,从而使您的页面大小变得非常大,同时让您可以选择将此序列化数据存储在不同的位置(例如 SQL 服务器或 ASP.NET 状态服务器)。

关于asp.net - 将存储在 Viewstate 中的 DataTable 转换为 List<T> 是一个糟糕的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com