Introduction ... In a previous tutorial, we created an abstract class for basic SCRUD database operations. Today we're going to build on that to create a generic database abstraction layer (DAL). The aim of this is to allow you to connect to any database type without having to worry about changing your Data Layer classes. We're also going to be introducing 2 of the most common design patterns. Factory Singleton First download the previous tutorial source code from here. We'll be creating 2 new classes...