Let’s consider this page’s code-behind:
public partial class Products : Page
{
private static SomeClass SharedField;
public Product()
{
// ... Some logic
}
}
Do all Products pages instances share the same SharedField, I know this is a basic concept of static fields. But in this case, really? all users can have access (and can’t have their own instance of) to the same static field on the website-level?
If so, in what aspects this would used by the web developer? or is this non-recommended practice?
Yes, there will be a single instance of that static field for all users, but only within a single worker process. If you have web farms/web gardens, they will each have their own static instance. If the worker process restarts, you’ll get a new static instance.
You’ll have to use locking around that shared field to ensure thread safety.
As for why to use that, I’m not sure, I never do it. The best example I can give you is the built-in static
HttpContext.Current, which gives you access to the Request, Response, etc.