ADP - Advanced Data Provider - is a transparent factory for ADO.NET which loads providers dynamically. It is written in C# and works on .NET, Portable.NET and Mono on Linux, Windows and MacOSX.