マイクロソフトは、System.Data.OracleClientが.NET 4.0以降は非推奨になると発表した。この名前空間に含まれるクラスは、.NET 4.0では非推奨マークが付けられ、将来のバージョンでは削除される。OracleClientはマイクロソフトが開発したOracle用ADO.NETプロバイダで、.NET Frameworkクラスライブラリに含まれている。
この決定は、Oracleを利用している.NET開発者たちのコミュニティに論争を巻き起こした。エンタープライズ系.NETアプリケーションではサードパーティー製Oracleプロバイダの利用が多い一方で、System.Data.OracleClientは小規模なアプリケーションで多く用いられており、一般的に他のマイクロソフト製ツールとの統合がより容易である。
マイクロソフトの主張によれば、この決定は多くの熟考と調査を踏まえてなされたとのことだ。
すべての選択肢を慎重に考慮し、顧客やパートナーやMVPと議論した後で、ADO.NETロードマップの一部としてOracleClientを非推奨にすることが決定されました。
このように決定した理由の一部は、サードパーティー製のOracle用ADO.NETデータプロバイダの可用性と機能が向上し続けていることにある。主要なOracle用プロバイダにも、パフォーマンスの著しい改善や、複数バージョン間の互換性向上がみられる。
- オラクルによる無料のOracle Data Provider for .NET(ODP.NET) ODP.NET 11gはOracleデータベースの9.2以降のすべてのバージョンに互換性がある。また、1つのOSで複数のバージョンを共存させることができる。
- DataDirect ADO.NET Data Provider for Oracle マネージコード100%。無料の試用版あり。
- Devart dotConnect for Oracle 旧名OraDirect.NET。無料の試用版あり。Entity Framework、LINQ to Oracle、ASP.NET プロバイダモデルをサポート。
コミュニティの反発にもかかわらず、マイクロソフトは決定を翻すそぶりを見せなかった。よって何も期待すべきではない。マイクロソフトの公式見解は「サードパーティ製プロバイダの多くが、顧客がマイクロソフトに期待するのと同等の品質とサポートを継続して提供可能である」ということである。したがって、OracleClientをサードパーティ製プロバイダと同等の品質に上げることは投資に値しないので、ADO.NETに注力しているMSの資源を解放する、ということなのだ。
この動きはOracleを使った.NET開発のハードルを上げるための姑息なストライキだと言っている人々もいる。しかし多くの人々はこの決定を警戒しながらも楽観的に見ている。マイクロソフトがその自社開発偏重主義を見直しているからかもしれない、と。たとえば、ALT.NETの人々に共通した不満は、マイクロソフトが理由もなく車輪を再発明することである。つまり、良い選択肢がすでに存在するにもかかわらず、彼ら自身のバージョンの製品を作成することだ。MSTest対NUnit、またはEntity Framework対NHibernateがその例だ。しかし最近ではjQueryを公式にサポートしたり、ASP.NET MVCのソースコードを提供したりするよう決定しているということを踏まえれば、今回の決定についても、マイクロソフトが実装スタック全体をコントロールする必要はないことをさらに認めたのだという解釈もできるかもしれない。マイクロソフトも、パートナーやコミュニティが一部分を提供することに頼ることができるのだ。
なお、Connected Show ポッドキャストに、この動きを議論し、最悪の事態にはならないことを分析しているエピソードがある。