在最近的Stackoverflow podcast (#59)中,Jeff Atwood提到Stackoverflow有一些“共享状态”。我理解共享状态的一般概念,但是在ASP.NET MVC应用程序(如Stackoverflow)的上下文中究竟是什么共享状态?
具体来说,我想知道以下内容:
答案 0 :(得分:1)
在听完最新的Stackoverflow podcast之后,我发现了杰夫所说的共享状态。
<强> 1。它是什么样子的?你如何在荒野中发现它?
Jeff指的是在ASP.NET MVC中使用Session变量。
<强> 2。它给系统带来了哪些限制?
如果配置不正确,使用会话变量可以将用户绑定到特定的Web服务器。如果用户在请求之间在不同的Web服务器之间跳转,则Session变量中的数据将不可用。
第3。你怎么摆脱它?
您可以通过将Session变量持久保存到可从所有Web服务器访问的数据库来消除共享状态。 ASP.NET提供了一个将Session变量免费保存到数据库的选项,但出于某种原因,Jeff不愿意使用此功能。他提到他喜欢删除代码,但是他决定推出自己的机制来将会话状态保存到数据库中。
<强> 4。如果它太糟糕了,为什么会有人将它包含在他们的设计中呢?
因为当你编码时它就在那里而且很容易。
alt text http://www.codeproject.com/KB/mobile/DeepCast/easy-button.jpg