无状态 asp.net 应用程序和 ViewState
Stateless asp.net application and ViewState
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 应用程序无状态,但也提到实际应用程序需要存储数据,建议
"not to store it on the web server. You can store state in other ways, such as on the client in cookies or out of process server-side in ASP.NET session state using a cache provide".
按照这个逻辑,在 ASP.Net Web Forms 应用程序中使用 ViewState 是有状态还是无状态方法?它保存在客户端,与上述 cookie 相同。假设我不使用任何 Session 和 Application 来存储数据的理想情况。
当然;在无状态方面,使用 ViewState 就像使用 cookie 一样。
请注意,Web 窗体是一种过时的技术,MS 和开发社区已经放弃了它。您应该查看 Razor 模板,这是一种更轻量级和更灵活的呈现 Web 应用程序的方法。
膨胀是 ViewState 中保存的数据量的一个大问题,虽然如果您正在创建部门 CRUD 应用程序,这可能没问题,但它可能不适用于针对移动设备的东西。
此外,Web 表单会产生非常特殊的 HTML,这使得现代客户端技术难以使用。
Here's a link to a pretty good article 关于剃刀模板的兴起和 Web 表单的衰落。
术语 "ViewState" 中包含 "state",因此根据定义,它被认为提供了视图的状态。然而,与 cookie 不同的是,ViewState 只为视图提供状态,而不是任何其他页面或会话。 Cookies 可以在未来的会话中使用,ViewState 只能在当前的视图实例中使用。就当页面消失时 ViewState 丢失的程度而言,ViewState 不 保留在客户端。 ViewState 的主要目的是保存 post-backs 的状态,而不是用于页面之外的任何其他地方。
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 应用程序无状态,但也提到实际应用程序需要存储数据,建议
"not to store it on the web server. You can store state in other ways, such as on the client in cookies or out of process server-side in ASP.NET session state using a cache provide".
按照这个逻辑,在 ASP.Net Web Forms 应用程序中使用 ViewState 是有状态还是无状态方法?它保存在客户端,与上述 cookie 相同。假设我不使用任何 Session 和 Application 来存储数据的理想情况。
当然;在无状态方面,使用 ViewState 就像使用 cookie 一样。
请注意,Web 窗体是一种过时的技术,MS 和开发社区已经放弃了它。您应该查看 Razor 模板,这是一种更轻量级和更灵活的呈现 Web 应用程序的方法。
膨胀是 ViewState 中保存的数据量的一个大问题,虽然如果您正在创建部门 CRUD 应用程序,这可能没问题,但它可能不适用于针对移动设备的东西。
此外,Web 表单会产生非常特殊的 HTML,这使得现代客户端技术难以使用。
Here's a link to a pretty good article 关于剃刀模板的兴起和 Web 表单的衰落。
术语 "ViewState" 中包含 "state",因此根据定义,它被认为提供了视图的状态。然而,与 cookie 不同的是,ViewState 只为视图提供状态,而不是任何其他页面或会话。 Cookies 可以在未来的会话中使用,ViewState 只能在当前的视图实例中使用。就当页面消失时 ViewState 丢失的程度而言,ViewState 不 保留在客户端。 ViewState 的主要目的是保存 post-backs 的状态,而不是用于页面之外的任何其他地方。