About a week ago Microsoft announced that the System.Data.OracleClient namespace will be deprecated in .Net 4.0. However the fact is that “deprecated” doesn’t mean it will disappear completely anytime soon. In fact the official statement clearly states the following:
Microsoft will continue to provide hotfixes for critical issues in System.Data.OracleClient as per the standard support policy for .Net Framework 4.0. We will also continue to make critical bug fixes in future service packs for .Net Framework 4.0.
So it will probably hang around for another 8-10 years so your old application doesn’t have to be updated for some time yet. But you probably don’t want to write new .Net 4.0 applications with it. Instead you should probably search for third-party providers.
So why is Microsoft making this move?
Some evil tongues may claim that Microsoft is simply just bored with developing for their competitor, and maybe they are, but that’s not the whole truth. Microsoft have always encouraged their partners and others to provide third-party solutions for their development tools and languages. The official statement also says:
We learned that a significantly large portion of customers use our partners’ ADO.NET providers for Oracle; with regularly updated support for Oracle releases and new features. In addition, many of the third party providers are able to consistently provide the same level of quality and support that customers have come to expect from Microsoft. This is strong testament of our partners support for our technologies and the strength of our partner ecosystem. It is our assessment that even if we made significant investments in ADO.Net OracleClient to bring it at parity with our partners based providers, customers would not have a compelling reason to switch to ADO.Net OracleClient.
This is probably true, but I don’t believe that this fact is the complete reason for this decision. Microsoft is now pushing the Entity Framework (and it’s light-weight cousin: LINQ to SQL) and there have never been any promises from Microsoft about any EF support for Oracle. However Oracle themselves have made promises about that, but according to a recent blog post by Julie Lerman (a fellow MVP and the author of the excellent book Programming Entity Framework) this doesn’t seem to happen very soon:
Oracle continues to promise their EF support, though there is still a wait and wonder policy on their end. Their .NET guy, Christian Shay (who spoke at DevConnections in the Data Access track last November) has not updated his blog since September.
Julie also said that DataDirect recently refreshed their beta of Connect for ADO.NET Entity Framework provider for Oracle.
What does this mean for you and me?
As I mentioned earlier, “deprecated” does not mean “deletion”. You can probably continue to support your old applications that uses the OracleClient for many years yet. But consider using a third-party provider for new .Net 4.0 applications. For myself, this doesn’t effect me at all since at my current position at Interactive Medica we use SQL Server and I don’t mind using third-party tools for new development if needed.