1) In a standard .Net application, are classes loaded as they are required? (e.g. If I have a class with a static constructor, is that static constructor only run the first time that class is needed?)
2) In an ASP.Net MVC (or web forms) application, is the static constructor invoked on every request that uses it? Or is it only for the first request that uses it?
3) In general, what is the lifetime of an ASP.Net application? Is each request a separate execution? Is anything persisted from request to request?
As you can see, I don't have a good understanding of when/how classes are loaded by the .Net runtime, and I was having trouble articulating the right Google query for this. If someone can point me to general documentation on the subject, I would be most appreciative.