The difference between creating an instance of your data layer object and assigning it to a static variable and creating a singleton class is that with a singleton class you cannot create more than one instance, whereas in the first scenario you could create more instances and assign them to other variables. The idea of a class with all static members is going back to what I was talking about in the first place. It is the equivalent of a VB.NET module.