作者 Al Tenhundfeld 译者 王波
查看英文原文:Microsoft OracleClient Deprecated
微软宣布.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就这次的改动,进行了节目讨论并分析为什么这不是一场灾难。