Create A Utility Class Containing Site-Wide Functions

In Classic ASP, the typical model for managing site-wide functions is to create one or more server-side includes containing libraries of code. The OOP nature of ASP.NET offers a much more elegant solution.

I used to love include files in Classic ASP. I would group together similar functions and subroutines into collections of files, and selectively include them at the top of a page based on the page's requirement. ASP.NET doesn't support this approach, and one of the first questions I asked in a newsgroup relating to ASP.NET was how to manage this?

One very kind poster told me to create a "utility" class, and reference it from my code-behind. Being completely new to OOP, I had no idea how to approach this, so they even posted some sample code, based on what they were using in professional applications:

public sealed class Utils // sealed to ensure the utility class won't be inherited

private Utils() {} // Ensure you cannot instantiate an object of this type
    //Add static methods which means you can reference them
    //anywhere in the project simply by using Utils.
    //This one keeps the name of the connection string in just 2 places - 
    //once in the Web.Config, and once in the Utils class.

    public static string GetConnString()
        return WebConfigurationManager.ConnectionStrings["myConnString"].ConnectionString;

To use this method is simple. Whenever a connection object is created one of the arguments passed to the constructor is the connection string. This is done as follows:

string connectionString = Utils.GetConnString();

This simple snippet also made me realise the difference between static and instance methods. And the best thing? Intellisense loves to colour "Utils" light blue.