Session[Constant] vs Session[“String Literal”] Performance
I’m retrieving user-specific data like ViewData["CartItems"] = Session["CartItems"]; with a string literal for keys on every request. Should I be using constants for this?
If yes, how should I go about implementing frequently used string literals and will it significantly affect performance on a high-traffic site?
Related question does not address ASP.NET MVC or Session.
The reason to use constants has to do with maintainability, not performance. Performance is about the same either way.
With a string literal, you can never tell whether it’s the same as another string literal intentionally or by coincidence, so when it’s time to change one, you don’t know which other ones to change. But if you have the values in constants, you just make the change in one place.
Bad:
Good:
Now imagine changing the value of the session key to “userName” without wanting to change it for any viewdata key…