Hi Yevi,
As ThemesSelectorID is a global static string, it is tied to the
whole Application, not each user session - every session can read and update the same bit of data. In this way, static variables work in a very similar way to the Application object in ASP3, but are far more efficient (
http://www.devx.com/vb2themax/Tip/18845)
If you stored the name of the theme as a static string, one person could set the theme to TemplateMonster, but the next person who visits a page will also get the TemplateMonster theme. We want the ID of the control to be the same for everyone, not the name of the theme. Using Session directly or indirectly, as shown in BasePage.cs, is really the only way to store per-user settings.
HTH
Phil