2009-06-29 52 views
1

在最近的Stackoverflow podcast (#59)中,Jeff Atwood提到Stackoverflow有一些「共享狀態」。我理解共享狀態的一般概念,但在ASP.NET MVC應用程序(如Stackoverflow)中,共享狀態究竟是什麼?什麼是ASP.NET MVC應用程序中的共享狀態?

具體來說,我想了解以下內容:

  1. 是什麼樣子?你如何在荒野中發現它?
  2. 它給系統帶來了什麼限制?
  3. 你如何擺脫它?
  4. 如果這麼糟糕,爲什麼有人 將它包含在他們的設計中?

回答

1

在聽完最新的Stackoverflow podcast之後,我已經想出了Jeff所說的共享狀態。

1.它看起來像什麼?你如何在荒野中發現它?

傑夫指的是在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

相關問題