|
|
@@ -13,36 +13,22 @@
|
|
|
|
|
|
The current plan to implement ADO.NET is as follows:
|
|
|
|
|
|
- <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:
|
|
|
+ <b>Step 1:</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.
|
|
|
+ engine. This provider was started by Rodrigo Moya and Tim Coleman.
|
|
|
|
|
|
<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.
|
|
|
+ libgnomedb, GNOME-DB, and gaSQL. glib2 and libxml2 both work on Linux
|
|
|
+ and Windows.
|
|
|
|
|
|
<p>There is work under way to get libgda working under
|
|
|
- Windows using Cygwin by the GNOME-DB developers.
|
|
|
+ Windows using Cygwin by the GNOME-DB developers, but we have not
|
|
|
+ been successful yet.
|
|
|
|
|
|
<p>LibGDA has providers for
|
|
|
<a href="http://www.mysql.com/">MySQL</a>,
|
|
|
@@ -56,53 +42,59 @@
|
|
|
via <a href="http://www.freetds.org/">FreeTDS</a>),
|
|
|
<a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a>,
|
|
|
<a href="http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>,
|
|
|
- and http://www.microsoft.com/office/access/default.asp">MS Access</a>
|
|
|
+ and <a href="http://www.microsoft.com/office/access/default.asp">MS Access</a>
|
|
|
(via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a>).
|
|
|
-
|
|
|
- * 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:
|
|
|
+ <b>Step 2:</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
|
|
|
+ * <p><b>System.Data.SqlClient</b> will 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>The <a href="http://wwww.go-mono.com/tds-providers.html">SqlClient and SybaseClient Design</a>
|
|
|
+ states that System.Data.SqlClient will be written completely in
|
|
|
+ C#. FreeTDS and jTDS projects will be used as references on how to
|
|
|
+ implement the TDS protocol. SqlClient will use common internal code with SybaseClient
|
|
|
+ and TdsClient.
|
|
|
+
|
|
|
+ * <p><a href="http://www.freetds.org/">FreeTDS</a>
|
|
|
+ is a collection of free native C libraries: tds, dblib,
|
|
|
+ and ctlib for accessing TDS protocol databases like
|
|
|
+ Microsoft SQL Server and Sybase.
|
|
|
|
|
|
- <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><a href="http://jtds.sf.net/">jTDS</a>
|
|
|
+ is a 100% Java JDBC Provider implementing the TDS protocol
|
|
|
+ which allows data access to Microsoft SQL Server and
|
|
|
+ Sybase databases.
|
|
|
|
|
|
- <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:
|
|
|
+ <b>Step 3:</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
|
|
|
- which has libodbc.so
|
|
|
- On Windows, uses the native ODBC libraries (odbc32.dll) that comes
|
|
|
+ System.Data.Odbc by Brian Ritchie for those using ODBC.
|
|
|
+
|
|
|
+ * <p>On Unix, the provider uses <a href="http://www.unixodbc.org/">unixODBC</a>
|
|
|
+ for its ODBC connectivity. The ODBC provider uses the libodbc.dll that
|
|
|
+ comes with unixODBC.
|
|
|
+
|
|
|
+ <p>There is an alternative to unixODBC, <a href="http://www.iodbc.org/">iODBC</a>,
|
|
|
+ but it has not been tested with the ODBC provider.
|
|
|
+
|
|
|
+ * On Windows, the provider uses the native ODBC libraries (odbc32.dll) that comes
|
|
|
with Windows since unixODBC is supposed to be compatible with that.
|
|
|
- If you do not have odbc32.dll on Wwindows, get the latest MDAC
|
|
|
- from Microsoft. The mapping between these native shared libraries is handled
|
|
|
+ If you do not have odbc32.dll on Windows, get the latest MDAC
|
|
|
+ from Microsoft.
|
|
|
+
|
|
|
+ * <p>The mapping between these native shared libraries is handled
|
|
|
in etc/mono/config
|
|
|
- In mono cvs, the file is mono/data/config.in
|
|
|
-
|
|
|
- <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>In mono cvs, the file is mono/data/config.in
|
|
|
|
|
|
<p>unixODBC has providers for:
|
|
|
Oracle, Microsoft SQL Server and Sybase (via FreeTDS),
|
|
|
@@ -111,18 +103,39 @@
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
- <b>Step 5:</b> Other ADO.NET providers:
|
|
|
+ <b>Step 4:</b> Other ADO.NET 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>Two Mono.Data providers have been started:
|
|
|
- Mono.Data.MySql for the MySQL client/server database
|
|
|
- and Mono.Data.SqliteClient for the SQL Lite database.
|
|
|
- See Current Status for more information on these providers.
|
|
|
+ a managed provider for each supported DBMS.
|
|
|
+
|
|
|
+ <p>System.Data.SqlClient for Microsoft SQL Server. See the
|
|
|
+ Mono.Data.TdsClient provider.
|
|
|
+
|
|
|
+ <p>Mono.Data.TdsClient for older Microsoft SQL Server
|
|
|
+ and Sybase databases. This has been started by Tim Coleman
|
|
|
+ and will provide the functionality for System.Data.SqlClient
|
|
|
+ and Mono.Data.SybaseClient.
|
|
|
+
|
|
|
+ <p>Mono.Data.SybaseClient for Sybase SQL Server. See the
|
|
|
+ Mono.Data.TdsClient provider.
|
|
|
+
|
|
|
+ <p>Mono.Data.PostgreSqlClient for PostgreSQL. Started by
|
|
|
+ Rodrigo Moya, Daniel Morgan, and Tim Coleman. This provider
|
|
|
+ uses the PostgreSQL C API (libpq.so on Linux and pq.dll on
|
|
|
+ Windows).
|
|
|
+
|
|
|
+ <p>Mono.Data.MySql for MySQL client/server database. Started by
|
|
|
+ Daniel Morgan using C# Bindings to MySQL from Brad Meril.
|
|
|
+ This provider uses the MySQL C API (libmysqlclient.so on
|
|
|
+ Linux and libmySQL.dll on Windows).
|
|
|
+
|
|
|
+ <p>Mono.Data.SqliteClient for the SQL Lite database. Started by
|
|
|
+ Vladimir Vukicevic. This provider uses
|
|
|
+ <a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a> database engine.
|
|
|
+ It is used in mPhoto.
|
|
|
+
|
|
|
+ <p>See Current Status for more information on these providers.
|
|
|
|
|
|
<p>Some providers we would like to have are
|
|
|
Mono.Data.DB2, Mono.Data.miniSQL,
|
|
|
@@ -130,18 +143,16 @@
|
|
|
Mono.Data.Berkeley, and SapDB.
|
|
|
Others, of course, are welcomed.
|
|
|
|
|
|
- <p>System.Data has been designed so
|
|
|
- non-database providers can be created too.
|
|
|
</ul>
|
|
|
|
|
|
- <b>Step 6:</b> Create tools for ADO.NET
|
|
|
+ <b>Step 5:</b> Create tools for ADO.NET
|
|
|
|
|
|
<ul>
|
|
|
* <p><b>SQL# CLI - a command-line tool</b> to execute SQL commands,
|
|
|
test connection strings, and connect to various ADO.NET
|
|
|
providers in Mono. The SQL# CLI has been started on and can be found in
|
|
|
- mcs/class/System.Data/Test/SqlSharpCli.cs
|
|
|
- It is written in C# and runs on Mono.
|
|
|
+ mcs/tools/SqlSharp/SqlSharpCli.cs
|
|
|
+ It is written in C# and runs on Mono and .NET
|
|
|
|
|
|
* <p><b>SQL# GUI - a GUI tool</b> to execute SQL commands. This
|
|
|
has not been started. The idea is to use the GnomeDbSqlEditor,
|
|
|
@@ -158,7 +169,7 @@
|
|
|
gda# is the C# bindings to libgda which is a generic data access
|
|
|
library that has providers for many databases.
|
|
|
|
|
|
- * <p>ADO.NET Configuration command-line and GUI tools. These tools have
|
|
|
+ * <p><b>ADO.NET Configuration command-line and GUI tools</b>. These tools have
|
|
|
not been started. They could become a part of SQL# though. The
|
|
|
configuration tool can be used to set up DSNs for the ODBC and OLE-DB
|
|
|
providers. The tools would be written in C# and run on Mono.
|
|
|
@@ -166,58 +177,48 @@
|
|
|
</ul>
|
|
|
|
|
|
* Current Status
|
|
|
-
|
|
|
- <p>We are working on Steps 1, 2, 4, and 5. We still have tons and tons of
|
|
|
- stuff still to do. If you have any ideas, let us know on the [email protected]
|
|
|
|
|
|
- <p><b>For Step 1</b>, the <p>PostgreSQL</p> provider can connect,
|
|
|
+ <p>The<b>PostgreSQL</p> provider as Mono.Data.PostgreSqlClient can connect,
|
|
|
execute commands, retrieve data via a Data Reader, read data in a DataTable
|
|
|
in a DataSet via a Data Adapter, get a DataTable holding schema data,
|
|
|
- and use input parameters in its SQL. Currently, the PostgreSQL provider
|
|
|
- exists in System.Data.SqlClient. It needs to be moved
|
|
|
- to Mono.Data.PostgreSQL so the Microsoft SQL Server provider can
|
|
|
- be placed in System.Data.SqlClient.
|
|
|
+ and use input parameters in its SQL, and SQL errors and exceptions for PostgreSQL
|
|
|
+ are working.
|
|
|
+
|
|
|
+ <p>The <b>PostgreSQL</b> provider
|
|
|
+ has been moved from System.Data.SqlClient to Mono.Data.PostgreSqlClient
|
|
|
+ so System.Data.SqlClient can be used for the Microsoft SQL Server provider.
|
|
|
|
|
|
- <p><b>For Step 2</b>, Rodrigo Moya has been working on <b>System.Data.OleDb</b>
|
|
|
- which uses libgda
|
|
|
- which is an OLE-DB/ADO data access for Unix. The C-Sharp bindings to libgda
|
|
|
- currently work - meaning they can compile, run, and you can connect to a
|
|
|
+ <p><b>System.Data.OleDb</b> is working with libgda (an OLE-DB/ADO data access for Unix).
|
|
|
+ The C-Sharp bindings to libgda currently work - meaning they can compile, run, and you can connect to a
|
|
|
PostgreSQL database via libgda via the C-Sharp bindings to libgda. Basic
|
|
|
functionality (execution of commands, data retrieval, transactions, etc) are
|
|
|
now working. Current focus is on filling up the missing pieces (Data adapters
|
|
|
mainly) and schema support. We need help building libgda on Windows though. libgda
|
|
|
- builds find on linux though.
|
|
|
+ builds find on linux though. An inital implementation of GetSchemaTable() for
|
|
|
+ the OleDbDataReader has been checked into cvs. GetSchemaTable() isn't correct for OleDb,
|
|
|
+ but the foundation is there.
|
|
|
|
|
|
- <p><b>For Step 3</b>, we need someone to start on the <b>Microsoft SQL Server</b>
|
|
|
- and <b>Sybase</b> support. This can be done by creating
|
|
|
- a <b>FreeTDS</b> .NET Data Provider
|
|
|
- or C# bindings to FreeTDS native libraries. A better solution, but a solution
|
|
|
- that would take longer, would be to create a pure
|
|
|
- managed provider in C# that implements the TDS (Tabular DataStream) protocol. TDS
|
|
|
- is used to access Microsoft SQL Server and Sybase databases. Another possibility
|
|
|
- is to wrap System.Data.SqlClient around System.Data.OleDb since System.Data.OleDb on
|
|
|
- Mono uses <a href="http://www.gnome-db.org/">libgda</a> and libgda has
|
|
|
- a FreeTDS provider. Yet another possibility, port
|
|
|
- the <a href="http://jtds.sourceforge.net/">jTDS</a> provider to a pure C# ADO.NET
|
|
|
- provider. jTDS is a 100% pure Java (Type 4) open source JDBC 2.0 driver for
|
|
|
- the Microsoft SQL Server series (6.5, 7.x and 2000).
|
|
|
+ <p>Tim Coleman has just started on the <b>TDS</b> protocol support neccessary for the
|
|
|
+ <b>SqlClient, SybaseClient, and TdsClient</b> providers. The provider will be
|
|
|
+ implemented in pure managed C#. We are using FreeTDS and jTDS as references.
|
|
|
+ The TDS provider will exist in Mono.Data.TdsClient.
|
|
|
+ The System.Data.SqlClient and Mono.Data.SybaseClient will
|
|
|
+ be based off of Mono.Data.TdsClient provider. Currently, we are providing
|
|
|
+ the foundation for the TdsClient provider. Next step is to implement the TDS
|
|
|
+ protocol in C#.
|
|
|
|
|
|
- <p><b>For Step 4</b>, Brian Ritchie has contributed an initial implementation of
|
|
|
- an <b>ODBC</b> ADO.NET Provider that uses unixODBC on Linux and the native odbc
|
|
|
- that comes on Windows. There is basic implementations of
|
|
|
+ <p><b>ODBC</b> support has been started by Brian Ritchie.
|
|
|
+ It uses unixODBC on Linux and uses native ODBC support on Windows.
|
|
|
+ There is basic implementations of
|
|
|
OdbcConnection, OdbcCommand, OdbcDataReader, OdbcParameter, and
|
|
|
OdbcParameterCollection. The provider can execute queries and display result sets
|
|
|
(and ExecuteNonQuery too). Currently, developers are working on the Parameter &
|
|
|
Transaction support. It was tested on Debian against a DB2 7.2 UDB. It was
|
|
|
- also test on Windows XP against a Microsoft SQL Server 2000.
|
|
|
-
|
|
|
- <p><b>For Step 5</b>, we have create two Mono.Data providers so far:
|
|
|
- Mono.Data.MySql and Mono.Data.SqliteClient.
|
|
|
+ also tested on Windows XP against a Microsoft SQL Server 2000 database.
|
|
|
|
|
|
<p><b>Mono.Data.MySql</b> is an ADO.NET provider for
|
|
|
the <b>MySQL</b> client/server database management system
|
|
|
- that uses the MySQL C Client Library. This provider is
|
|
|
- found in Mono.Data.MySql. Currently, we can connect,
|
|
|
+ that uses the MySQL C Client Library. Currently, we can connect,
|
|
|
execute simple commands, and
|
|
|
retrieve results using a data reader. A schema DataTable has been partially
|
|
|
implemented which is returned from GetSchemaTable() in MySqlDataReader.
|
|
|
@@ -230,43 +231,55 @@
|
|
|
The C# Bindings to MySQL are thanks to Brad Meril.
|
|
|
|
|
|
<p><b>Mono.Data.SqliteClient</b> is an ADO.NET provider for
|
|
|
- the <b>SQL Lite</b> database. SQL Lite can be
|
|
|
- found <a href"http://www.hwaci.com/sw/sqlite/download.html">here</a>.
|
|
|
- There is SQL Lite binaries for Linux and Windows. sqlite.dll on Windows
|
|
|
+ the <a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>
|
|
|
+ database. There is SQL Lite binaries for Linux and Windows. sqlite.dll on Windows
|
|
|
and sqlite.so on Linux. The SQL Lite proivder
|
|
|
was contributed by Vladimir Vukicevic.
|
|
|
|
|
|
<p><b>DataSet, DataAdaptor, DataTable, DataRelation, DataRow, DataColumn,
|
|
|
- DataColumnCollection, DataRowCollection, and others</b> need more work.
|
|
|
+ DataColumnCollection, DataRowCollection, and others</b> need more work. There are
|
|
|
+ many classes that are just stubs and need to be implemented.
|
|
|
|
|
|
- <p><b>Integration with ASP.NET</b> needs to be started, such as, data binding
|
|
|
+ <p><b>Integration with ASP.NET</b> has not been started, such as, data binding
|
|
|
to a System.Web.UI.WebControls.DataGrid. This may involve implementing many classes
|
|
|
in System.Web and System.Data. Gonzalo, Gaurav, Leen, Patrik, Duncan, and others are
|
|
|
working very hard on the ASP.NET support. If you want to help,
|
|
|
contact <a href="mailto:[email protected]">Gonzalo Paniagua Javier</a>
|
|
|
|
|
|
- <p><b>Integration with Windows.Forms</b> needs to be started, such as, data binding
|
|
|
+ <p><b>Integration with Windows.Forms</b> has not been started, such as, data binding
|
|
|
to a System.Windows.Forms.DataGrid. This may involve implementing many classes
|
|
|
in System.Windows.Forms and System.Data.
|
|
|
|
|
|
<p><b>Integration with <a href="http://gtk-sharp.sourceforge.net/">GTK#</a></b>
|
|
|
- needs to be started, such as, data binding
|
|
|
+ has not been started, such as, data binding
|
|
|
to a GtkTreeView. This may involve creating new classes
|
|
|
to go between the glist data model and the ADO.NET data model.
|
|
|
Mike Kestner would be the best person to ask for help on GTK#.
|
|
|
|
|
|
- <p><b>Integration with QT#</b> needs to be started. Any information on
|
|
|
+ <p><b>Integration with QT#</b> has not been started. Any information on
|
|
|
how this can be done is appreciated. Adam Treat would be the best
|
|
|
person to ask about QT#.
|
|
|
|
|
|
- <p><b>Integration with GDA# and Libgnomedb#</b> which exists in GTK# needs
|
|
|
- to be started. Creating classes
|
|
|
- to bind data between the data model in ADO.NET and the data model that
|
|
|
- exists in <a href="http://www.gnome-db.org/">GDA</a> and
|
|
|
- <a href="http://www.gnome-db.org/">libgnomedb</a>. There are some nifty widgets
|
|
|
+ <p><b>Integration with GDA#</b> has not been started. It is
|
|
|
+ included in the GTK# project, GDA#
|
|
|
+ does not require GTK+ nor GNOME. GDA# is C# bindings
|
|
|
+ to <a href="http://www.gnome-db.org/">GDA</a> which
|
|
|
+ is an ADO/OLE-DB like layer for Linux provided as a C library. Classes
|
|
|
+ that would bind data between the ADO.NET data model and the GDA data model will
|
|
|
+ need to be created. Rodrigo Moya is the best person to contact about this.
|
|
|
+
|
|
|
+ <p><b>Integration with GnomeDb#</b> has not been started. It is
|
|
|
+ included in the GTK# project and uses GDA# for its data access model.
|
|
|
+ Creating classes to bind data between the data model in ADO.NET
|
|
|
+ and the data model that exists in GDA# and GnomeDb# will
|
|
|
+ need to be started. GnomeDb# is C# bindings to
|
|
|
+ <a href="http://www.gnome-db.org/">GnomeDb</a> which uses
|
|
|
+ <a href="http://www.gnome-db.org/">GDA</a> as its data access layer. GnomeDb
|
|
|
+ is a C API in a library that contains
|
|
|
+ gtk+ widgets (GUI controls) for data access. There are some nifty widgets
|
|
|
(GUI controls) that can be used, such as, GnomeDbGrid, GnomeDbBrowswer,
|
|
|
GnomeDbSqlEditor, GnomeDbList, GnomeDbLogin, GnomeDbReportEditor, GnomeDbTableEditor,
|
|
|
- GnomeDbCombo, and GnomeDbForm.
|
|
|
+ GnomeDbCombo, and GnomeDbForm. Rodrigo Moya is the best person to contact.
|
|
|
|
|
|
<p><b>XML support in System.Data</b> needs to be started. This involves working on
|
|
|
the classes: DataSet, XmlDataDocument, and the method ExecuteXmlReader() that
|
|
|
@@ -290,22 +303,21 @@
|
|
|
<p>After some work done in System.Configuration, you can now do something
|
|
|
like:
|
|
|
|
|
|
-<pre>
|
|
|
- // Get an instance of the multiplexor from machine.config file
|
|
|
- // Can be overriden in the application config file
|
|
|
- object o = ConnectionSettings.GetConfig ("mono.data/multiplexor");
|
|
|
- if (o == null)
|
|
|
- --- error
|
|
|
+ <p>
|
|
|
+ <pre>
|
|
|
+ // Get an instance of the multiplexor from machine.config file
|
|
|
+ // Can be overriden in the application config file
|
|
|
+ object o = ConnectionSettings.GetConfig ("mono.data/multiplexor");
|
|
|
+ if (o == null)
|
|
|
+ --- error
|
|
|
|
|
|
- Multiplexor mp = (Multiplexor) o;
|
|
|
+ Multiplexor mp = (Multiplexor) o;
|
|
|
|
|
|
- // may be a string [] argument can help passing arguments
|
|
|
- IDbConnection cnc = mp.CreateConnection (providerName);
|
|
|
-</pre>
|
|
|
+ // may be a string [] argument can help passing arguments
|
|
|
+ IDbConnection cnc = mp.CreateConnection (providerName);
|
|
|
|
|
|
- <p>and in the machine.config file:
|
|
|
+ and in the machine.config file:
|
|
|
|
|
|
-<pre>
|
|
|
<configuration>
|
|
|
<configSections>
|
|
|
<section name="mono.data"
|
|
|
@@ -320,13 +332,11 @@
|
|
|
</multiplexor>
|
|
|
</sectionGroup>
|
|
|
</configuration>
|
|
|
-</pre>
|
|
|
|
|
|
- <p>validate="false" tells MultiplexorSectionHandler not to load the Type
|
|
|
- until an instance is required. You can add more attributes or whatever
|
|
|
- inside <multiplexor> as long as MultiplexorSectionHandler parses it.
|
|
|
+ validate="false" tells MultiplexorSectionHandler not to load the Type
|
|
|
+ until an instance is required. You can add more attributes or whatever
|
|
|
+ inside <multiplexor> as long as MultiplexorSectionHandler parses it.
|
|
|
|
|
|
-<pre>
|
|
|
public class MultiplexorSectionHandler :
|
|
|
IConfigurationSectionHandler
|
|
|
{
|
|
|
@@ -341,15 +351,14 @@
|
|
|
return mp;
|
|
|
}
|
|
|
}
|
|
|
-</pre>
|
|
|
|
|
|
- <p>This way, if our providers works with MS, the user can test them in both
|
|
|
- MS and mono by just adding a few lines to machine.config (i still have
|
|
|
- to upload a default machine.config file for mono). And this is the .NET
|
|
|
- way of doing it (of course, if you prefer, you can use the other config
|
|
|
- file. I just wanted to make people aware of this feature that now works
|
|
|
- on mono).
|
|
|
-
|
|
|
+ This way, if our providers works with MS, the user can test them in both
|
|
|
+ MS and mono by just adding a few lines to machine.config (i still have
|
|
|
+ to upload a default machine.config file for mono). And this is the .NET
|
|
|
+ way of doing it (of course, if you prefer, you can use the other config
|
|
|
+ file. I just wanted to make people aware of this feature that now works
|
|
|
+ on mono).
|
|
|
+</pre>
|
|
|
|
|
|
<p><b>Building System.Data</b>
|
|
|
|
|
|
@@ -382,14 +391,15 @@
|
|
|
<pre>
|
|
|
cd mcs/class/System.Data
|
|
|
../../nant/NAnt.exe
|
|
|
-</pre>
|
|
|
+</pref>
|
|
|
|
|
|
- This will automatically copy the System.Data.dll to Test.
|
|
|
- If you need to do a clean for the System.Data.dll assembly,<br><br>
|
|
|
+ * This will automatically copy the System.Data.dll to Test.
|
|
|
+ If you need to do a clean for the System.Data.dll assembly,<br><br>
|
|
|
|
|
|
-<pre>
|
|
|
+<pre>
|
|
|
cd mcs/class/System.Data
|
|
|
../../nant/NAnt.exe clean
|
|
|
+
|
|
|
</pre>
|
|
|
</ul>
|
|
|
|