3 The coordinator for the ADO.NET implementation is
4 <a href="mailto:rodrigo@ximian.com">Rodrigo Moya</a>,
5 with the collaboration of:
6 <a href="mailto:danmorg@sc.rr.com">Daniel Morgan</a>,
7 <a href="mailto:tim@timcoleman.com">Tim Coleman</a>,
8 <a href="mailto:brianlritchie@hotmail.com">Brian Ritchie</a>, and
9 <a href="mailto:vladimir@pobox.com">Vladimir Vukicevic</a>.
14 <p>The current plan to implement ADO.NET is as follows:
17 <li>Either create ADO.NET providers or modify pre-exiting ADO.NET providers to
21 <li>Create ADO.NET Providers
24 <li><a href="http://www.go-mono.com/mysql.html">MySQL</a>
25 <li><a href="http://www.go-mono.com/odbc.html">ODBC</a>
26 <li><a href="http://www.go-mono.com/oracle.html">Oracle</a>
27 <li><a href="http://www.go-mono.com/oledb.html">OLE DB</a>
28 <li><a href="http://www.go-mono.com/postgresql.html">PostgreSQL</a>
29 <li><a href="http://www.go-mono.com/sqlclient.html">Microsoft SQL Server</a>
30 <li><a href="http://www.go-mono.com/sqlite.html">SQL Lite</a>
31 <li><a href="http://www.go-mono.com/sybase.html">Sybase</a>
32 <li><a href="http://www.go-mono.com/tdsclient.html">TDS Generic</a>
33 <li>Providers which we do not have, but we would like to have. Currently,
34 some of these databases are supported via the ODBC or OLEDB providers.
36 <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a>
37 <li><a href="http://www.hughes.com.au/">miniSQL</a></li>
38 <li><a href="http://www.sleepycat.com/">BerkeleyDB (Sleepycat)</a></li>
39 <li><a href="http://www.sapdb.org/">SapDB</a></li>
40 <li>Microsoft Access - could be done by creating C# bindings to <a href="http://mdbtools.sourceforge.net">MDB Tools</a></li>
41 <li>dbase or xbase type database files</li>
42 <li>Others are welcome</li>
46 <li>Modify Pre-existing ADO.NET Providers to work with Mono. This may
47 require fixing or implementing areas of Mono too.
49 <li><a href="http://www.go-mono.com/firebird.html">Firebird Interbase</a></li>
50 <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> is a PostgreSQL Managed data provider written
51 in 100% C# and does not require a client library </li>
52 <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a MySQL Manager data provider written in 100% C# and does not
53 require a client library</li>
54 <li><a href="http://sourceforge.net/projects/mysqldrivercs/">MySQLDriverCS</a> is a MySQL data provider written in C#</li>
60 <li>Create Tools for Configuration, Testing, and Entering SQL Queries
62 <li><b>SQL# CLI - a command-line tool</b> written in C# to
64 test connection strings, and connect to various ADO.NET
65 providers in Mono. The SQL# CLI can be found in
66 mcs/tools/SqlSharp/SqlSharpCli.cs</li>
67 <li><p><b>SQL# GUI - a GUI tool</b> written in C# to
69 Currently, there is SQL# For GTK# which
71 mcs/tools/SqlSharp/gui/gtk-sharp
72 It has a SQL editor with
73 syntax hi lighting of SQL keywords</li>
74 <li><b>Configuration Command-Line and GUI Tools for ADO.NET</b>.
75 These tools have not been started. The tools would be written in
76 C# and run on Mono. The
77 configuration tool can be used to do the following:
79 <li>setup DSNs for the ODBC and OLE-DB
80 providers and configurations for
81 their underlying libraries (unixODBC and libgda)</li>
82 <li>setup configurations for the Mono.Data.ProviderFactory
83 that Brian Ritchie created</li>
84 <li>setup native database client library configurations too, such as,
85 freetds.conf for Microsoft SQL Server and Sybase</li>
93 <p>Variouls ADO.NET Providers have been created: PostgreSQL, MySQL, Sybase, SQL Lite,
94 Microsoft SQL Server, OLE DB, ODBC, and TDS Generic. See their respective web page for
97 <p><b>DataSet, DataAdaptor, DataTable, DataRelation, DataRow, DataColumn,
98 DataColumnCollection, DataRowCollection, and others</b> need more work. There are
99 many classes that are just stubs and need to be implemented.
101 <p><b>XML support in System.Data</b> needs work. This involves working on
102 the classes: DataSet, XmlDataDocument, and the method ExecuteXmlReader() that
103 exists in a provider's class that implements IDbCommand, and others.
104 Stuart Caborn has started the XML support in a DataSet. Tim Coleman started
105 XML support in the ExecuteXmlReader() in a SqlCommand.
107 <p><b>ADO.NET Provider Factory</b> has been started by Brian Ritchie. The
108 Provider Factory is used to dynamically create
109 connections, commands, parameters, and data adapters based on configuration information. This
110 provider factory can also provide utility functions needed by a lot of
111 providers but are not exposed via the provider.
113 <p><b>Integration with ASP.NET</b> has not been started, such as, data binding
114 to a System.Web.UI.WebControls.DataGrid. This may involve implementing many classes
115 in System.Web and System.Data. Gonzalo, Gaurav, Leen, Patrik, Duncan, and others are
116 working very hard on the ASP.NET support. If you want to help,
117 contact <a href="mailto:gonzalo@ximian.com">Gonzalo Paniagua Javier</a>
119 <p><b>Integration with Windows.Forms</b> has not been started, such as, data binding
120 to a System.Windows.Forms.DataGrid. This may involve implementing many classes
121 in System.Windows.Forms and System.Data.
123 <p><b>Integration with <a href="http://gtk-sharp.sourceforge.net/">GTK#</a></b>
124 has not been started, such as, data binding
125 to a GtkTreeView. This may involve creating new classes
126 to go between the glist data model and the ADO.NET data model.
127 Mike Kestner would be the best person to ask for help on GTK#.
129 <p><b>Integration with QT#</b> has not been started. Any information on
130 how this can be done is appreciated. Adam Treat would be the best
131 person to ask about QT#.
133 <p><b>Integration with GDA#</b> has not been started. It is
134 included in the GTK# project, GDA#
135 does not require GTK+ nor GNOME. GDA# is C# bindings
136 to <a href="http://www.gnome-db.org/">GDA</a> which
137 is an ADO/OLE-DB like layer for Linux provided as a C library. Classes
138 that would bind data between the ADO.NET data model and the GDA data model will
139 need to be created. Rodrigo Moya is the best person to contact about this.
141 <p><b>Integration with GnomeDb#</b> has not been started. It is
142 included in the GTK# project and uses GDA# for its data access model.
143 Creating classes to bind data between the data model in ADO.NET
144 and the data model that exists in GDA# and GnomeDb# will
145 need to be started. GnomeDb# is C# bindings to
146 <a href="http://www.gnome-db.org/">GnomeDb</a> which uses
147 <a href="http://www.gnome-db.org/">GDA</a> as its data access layer. GnomeDb
148 is a C API in a library that contains
149 gtk+ widgets (GUI controls) for data access. There are some nifty widgets
150 (GUI controls) that can be used, such as, GnomeDbGrid, GnomeDbBrowswer,
151 GnomeDbSqlEditor, GnomeDbList, GnomeDbLogin, GnomeDbReportEditor, GnomeDbTableEditor,
152 GnomeDbCombo, and GnomeDbForm. Rodrigo Moya is the best person to contact.
154 <p><b>Building System.Data</b>
156 <p>The System.Data.dll gets built with the rest of the class library.
157 To compile the System.Data.dll assembly separately, you need:
162 * update your mono sources. Be sure you have latest mcs.exe
163 and .dll's, since there have been many fixes needed for
164 compilation on Linux.
166 * compile System.Data.dll:
168 cd mcs/class/System.Data<br>
169 mcs --target library -o \
170 System.Data.dll @list
177 * update your mono sources. Be sure you have latest mcs.exe
178 and .dll's. You can use the same method as Linux,
184 cd mcs/class/System.Data
188 * This will automatically copy the System.Data.dll to Test.
189 If you need to do a clean for the System.Data.dll assembly,<br><br>
192 cd mcs/class/System.Data
193 ../../nant/NAnt.exe clean