[Mono-dev] Removing Obsolete Code from Mono 2.8
Miguel de Icaza
miguel at novell.com
Mon Mar 1 21:36:06 EST 2010
[ Marek, there is a note for you here, can you check it? ]
Thanks for your feedback, it was very useful.
> Remove Mono.Data.dll which has been superceded by the provider factory added to System.Data.dll in .NET 2.0. The Mono.Data.dll assembly has had the Obsolete attributes on it for a long time.
> There are many different versions of the SQLite provider. However, Mono has a couple of different versions: Mono.Data.SqliteClient which is 1.1 only. It will not work with NET_2_0 profile unless someone fixes it. Mono.Data.Sqlite - the 2.0 parts - is based on System.Data.Sqlite.
Agreed, this is a good time to drop the old provider.
Marek, how far did we deviate from the upstream code? And can we do a
code refresh without breaking the API?
I can drop the old provider if someone tells me which one it is.
> Remove Mono.Data.TdsClient since no one uses this. This assembly is for older Sybase ASE and Microsoft SQL Server databases < version 7.0)
> Keep Mono.Data.Tds which is required by System.Data.SqlClient in System.Data assembly and Mono.Data.SybaseClient assembly.
> I am okay with old Npgsql, ByteFX, and Firebird being removed. People should go to the respective project to get the provider.
I will think a little bit more about Npgsql.
> I am also okay if fxjr adds Npgsql2 to Mono to be distributed with Mono -- only Npgsql2 is maintained in Mono.
Agreed, I also do not mind getting the new provider.
> Even though System.Data.OracleClient is considered obsolete in .net 4.0, I think we should keep it for those who need it.
Agreed as well. There are no open source providers for it.
I talked to the guy in charge of Oracle's .NET provider at PDC, and he
said at the time that the amount of bureaucracy required to get their
provider working on Mono, even when simple was not something he wanted
to do (he needed to build a business case to port their provider and he
did not seem to have the cycles, or enough interest to make it happen).
> If no one ones IBM.Data and Mono.Data.SybaseClient, these two can be removed too because they can use System.Data.Obdc to connect to these and other databases.
The IBM.DB2 provider is used, but it has also lacked maintenance for a
long time and I am not aware of any alternative for users.
Isnt ODBC a slower code path than going directly through our code?
More information about the Mono-devel-list