- <b>Step 1:</b> Initial <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdatasqlclient.asp?frame=true">System.Data.SqlClient</a> Provider:
-
- <ul>
- * Initial implementation of System.Data.SqlClient is based on
- the <a href="http://www.postgresql.org/idocs/">PostgreSQL C API</a> which is a
- client API to the PostgreSQL DBMS. PostgreSQL was chosen so we could quickly
- create and test the System.Data classes.
-
- * Once the <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdatasqlclient.asp?frame=true">System.Data.SqlClient</a>
- code is functional and is usable by other people, we willl move it to
- Mono.Data.PostgreSQL.
-
- * <a href="http://www.go-mono.com/postgresql.html">Current PostgreSQL ADO.NET Provider Status and Test Notes</a>
-
- </ul>
-
- <b>Step 2:</b> <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataOleDb.asp?frame=true">System.Data.OleDb</a> Provider:
-
- <ul>
- * <p>On Unix systems: System.Data.OleDb uses the
- <a href="http://www.gnome-db.org/">LibGDA</a>
- engine.
-
- <p>LibGDA is a data access engine like ADO/OLE-DB, but for Unix. The
- GDA in libGDA stands for GNU/GNOME Data Access, but it does not require GNOME.
- It only requires glib2 and libxml2. LibGDA is used by
- libgnomedb, GNOME-DB, and gaSQL.
-
- <p>There is work under way to get libgda working under
- Windows using Cygwin by the GNOME-DB developers.
-
- <p>LibGDA has providers for MySQL, PostgreSQL, XML, ODBC (via unixODBC),
- Oracle, Interbase, Sybase and MS SQL Server (via FreeTDS), IBM DB2,
- SQLite and MS Access (via MDB Tools).
-
- * On Windows systems: System.Data.OleDb will use libgda as well,
- if we can get it working, or OLE-DB as
- its engine.
-
- </ul>
-
- <b>Step 3:</b> <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdatasqlclient.asp?frame=true">System.Data.SqlClient</a> Provider:
-
- <ul>
- * <p>System.Data.SqlClient will then become a
- provider for Microsoft SQL Server, both on Windows and
- Linux, to be compatible with applications written
- for the Microsoft .NET Development Framework.
-
- <p>Once Step 1 has been completed and the PostgreSQL
- provider support has been moved to its own place at
- Mono.Data.PostgreSQL, we will use
- <a href="http://www.freetds.org/">FreeTDS</a> as the basis
- for providing access to Microsoft SQL Server databases. Or we will
- use FreeTDS and jTDS (a 100% Java JDBC Provider for TDS) as a basis for
- creating a pure managed SQL Server provider.
-
- <P>FreeTDS is a C API for Unix and Windows that implements
- the TDS (Tabular Data Stream) protocol used in accessing
- Microsoft SQL Server and Sybase databases. A .NET Data Provider could be
- created for Sybase databases as well, but this would be put in Mono.Data.Sybase.
- </ul>
-
- <b>Step 4:</b> <a href="http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/668/msdncompositedoc.xml&frame=true">System.Data.Odbc</a> Provider:
-
- <ul>
- * An ADO.NET Provider for ODBC has been created in
- System.Data.Odbc for those using ODBC.
- On Unix, <a href="http://www.unixodbc.org/">unixODBC</a> mabye used.
- On Windows, we may just use the native ODBC libraries that comes with Windows since
- unixODBC is supposed to be compatible with that.
-
- <p>unixODBC works on Unix and Windows. Well, I have not actually
- used it on Cygwin, but it does build and install without problems.
-
- <p>unixODBC has providers for:
- Oracle, Microsoft SQL Server and Sybase (via FreeTDS),
- MySQL, PostgreSQL, Informix, IBM DB2 Universal Database,
- Interbase, miniSQL (mSQL), AdabasD, Empress, and others.
-
- </ul>
-
- <b>Step 5:</b> Other System.Data providers:
-
- <ul>
- * <p>The idea in Microsoft .NET System.Data is to have
- a managed provider for each supported DBMS. System.Data.SqlClient
- for Microsoft SQL Server.
- System.Data.OracleClient for Oracle 8i and 9i.
-
- <p>We will need to have Mono.Data.MySQL, Mono.Data.PostgreSQL,
- Mono.Data.DB2, and Mono.Data.miniSQL. Others,
- of course, are welcomed.
-
- <p>System.Data has been designed so
- non-database providers can be created too.
- </ul>