【问题标题】:Stateless asp.net application and ViewState无状态的 asp.net 应用程序和 ViewState
【发布时间】:2016-07-31 18:13:58
【问题描述】:

Microsoft 文档 http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/web-development-best-practices 鼓励保持 Web 应用程序无状态,但也提到现实世界的应用程序需要存储数据,建议这样做

“不要将其存储在 Web 服务器上。您可以通过其他方式存储状态,例如在客户端的 cookie 中或在 ASP.NET 会话状态中使用缓存提供的进程外服务器端”。

按照这个逻辑,在 ASP.Net Web Forms 应用程序中使用 ViewState 是有状态还是无状态方法?它保存在客户端,与提到的 cookie 相同。让我们假设我不使用任何 Session 和 Application 来存储数据的理想场景。

【问题讨论】:

    标签: asp.net .net webforms


    【解决方案1】:

    当然;使用 ViewState 就像在无状态方面使用 cookie。

    请注意,Web 表单是 MS 和开发社区已经远离的过时技术。您应该查看 Razor 模板,这是一种更轻量级和更灵活的渲染 asp.net Web 应用程序的方法。

    膨胀是 ViewState 中保存的数据量的一个大问题,虽然如果您正在创建部门 CRUD 应用程序这可能没问题,但它可能不适用于针对移动设备的东西。

    此外,Web 表单会生成非常特殊的 HTML,这使得使用现代客户端技术变得困难。

    Here's a link to a pretty good article 关于剃刀模板的兴起和 Web 表单的衰落。

    【讨论】:

    • 感谢您的全面回复。不同的是,Web 表单是否真的过时了。我最近正在研究它,在我发现的许多意见中,它看起来仍然是 MVC 的不错替代品。各有优缺点。
    • 作为一名学习者,我密切关注不同的技术。似乎 WebForms 可能适用于一些针对内部需求的小型解决方案,其中开发时间至关重要。虽然大规模的一次肯定会从 MVC 方法中受益。我还想知道 MVC 的未来可能是什么,它的可持续性如何,因为有些概念看起来像是倒退了一步。
    • 我可能应该对 Web 表单的不相关性发表评论,但我是新手。这个答案似乎只批评使用 Web 表单。
    【解决方案2】:

    术语“ViewState”中包含“状态”,因此根据定义,它被认为是提供视图的状态。然而,与 cookie 不同的是,ViewState 只为视图提供状态,而不为任何其他页面或会话提供状态。 Cookies 可以在未来的会话中使用,ViewState 只能在视图的当前实例中使用。就在页面消失时 ViewState 丢失的程度而言,ViewState保留在客户端。 ViewState 的主要目的是在回发中保留状态,而不是在页面之外的任何其他地方使用。

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      相关资源
      最近更新 更多