微软宣布.NET 4.0 以后的版本将弃用 System.Data.OracleClient 。该命名空间的类将会在.NET 4.0 中标识为弃用并在未来发布的版本中移除。OracleClient 是微软针对 Oracle 开发的 ADO.NET 提供程序并且作为.NET Framework 类库的一部分。
这项决定引起了使用 Oracle 的.NET 社区开发人员之间的争论。与此同时许多企业级.NET 应用程序使用第三方 Oracle 提供程序,System.Data.OracleClient 通常会在小型应用程序中使用,它与微软开发工具的集成性非常好。
微软坚称这项决定是经过研究和深思熟虑之后做出的:
经过慎重地考虑各方的观点以及和我们的客户、合作伙伴和 MVP 沟通之后,我们决定把 OracleClient 从 ADO.NET 路线图中移除。
这项决定有部分原因是基于目前 Oracle 的第三方 ADO.NET 数据提供程序的广泛应用和不断完善。流行的 Oracle 提供程序在性能上有着显著提升以及不同版本的兼容性得到完善:
- Oracle 发布针对.NET 的免费 Oracle 数据提供程序(ODP.NET) ODP.NET 11g 与所有版本的 Oracle 数据库兼容(包括 9.2 版本),在同一个操作系统上可安装多个版本。
- DataDirect ADO.NET 针对 Oracle 数据提供程序 100% 托管代码,免费试用
- Devart 公司开发的 Oracle 数据提供程序 dotConnect 正式名称是 OraDirect.NET,免费使用,支持 Entity Framework、LINQ to Oracle 和 ASP.NET 数据源提供程序模块
尽管遭到社区成员的反对,微软并没有改变该决定的意思,任何人都不应抱有幻想。微软官方的解释是“大部分第三方提供程序都提供同样的性能并能够满足顾客的需求”。因此,不值得对 OracleClient 进行投入,以到达第三方提供者的水平,这样可让微软集中资源在 ADO.NET 的开发上。
一些人把这项举动称作针对 Oracle 以提高.NET 开发门槛的不正当打击,但也有很多人对这项决定持谨慎乐观的态度,也许微软在重新审视对其它公司产品的偏见。例如,ALT.NET 开发人员普遍抱怨微软毫无原因就重新发明轮子,在已经有很好的替代产品的情况下重新开发自己的版本。看看,MSTest 和 NUnit,或者 Entity Framework 和 NHibernate 就知道了。最近官方支持 jQuery 和提供 ASP.NET MVC 源代码的背景下,这项决定可解释为微软进一步承认它无需控制所有的技术。他们可以依赖合作伙伴和社区来提供部分支持。
再者,播客Connected Show 就这次的改动,进行了节目讨论并分析为什么这不是一场灾难。
评论