While debugging a classic ASP application (and learning about classic ASP at the same time) I’ve encountered the following
Application("Something") = "some value"
and elsewhere in the code this value gets used thus:
someObj.Property = Session("Something")
How does the Application object relate to Session?
A
Sessionvariable is linked to a user. AnApplicationvariable is shared between all users.Applicationis a handy vault for storing things you want to persist but you can’t guarantee they’ll always be there. So think low-end caching, short-term variable storage, etc.In this context with these definitions, they have very little to do with each other except that getting and setting variables is roughly the same for each.
Note: there can be concurrency issues when using
Application(because you could easily have more than one user hitting something that reads or writes to it) so I suggest you useApplication.Lockbefore you write andApplication.Unlockafter you’re done. This only really applies to writing.Note 2: I’m not sure if it automatically unlocks after the request is done (that would be sensible) but I wouldn’t trust it to. Make sure that any part of the application that could conceivable explode isn’t within a lock otherwise you might face locking other users out.
Note 3: In that same vein, don’t put things that take a long time to process inside a lock, only the bit where you write the data. If you do something that takes 10 seconds while in a lock, you lock everybody else out.