ODP.NET vs MSDP

来源:互联网 发布:王小帮淘宝创业故事 编辑:程序博客网 时间:2024/05/22 02:09

最近做项目在考虑数据库层,是用System.Data.OracleClientMSDP),还是Oracle.DataAccess.dllODP.NET)。之前用的是MSDP,可因为要处理XML文件,所以还用了一部分ODP.NET。现在想全部使用ODP.NET,于是查了点资料。最关键是ODP.NET是否稳定。

 

微软观点

Microsoft .NET Framework 1.1 Data Provider for OracleMSDP)与Oracle Data Provider for .NETODP.NET9i都很可靠,它们提供类似的功能。用它们中的任何一个开发应用程序,相似之处都大于它们的区别,因为,这两个DPData Prodvider)的相应类具有完全相同的命名和实现.NET框架的接口。然而,它们也有很多重要的不同之处:

在某些情况下,ODP.NET中的数据类型更好地映射到本地Oracle数据类型。除了微软对复杂数据类型提供的方法外,如LOBsTimestampsREF CURSORsOracle XMLODP.NET也提供。如果你使用这些数据类型,尽管用微软DPData Provider)也可以完成,但ODP.NET使得软件开发更容易。ODP.NET也提供微软没有的功能,如database connectionsinformation messageserror detailarray bindingPL/SQL associative arraystransaction application failover (TAF)、以及globalization

微软DP被紧密地集成在VS .NET IDE中,这样,你就可以使用代码生成向导来connectionscommandsdata adapters——ODP.NET目前不能。微软DP的部署很容易,因为它是.NET框架1.1或其之后的一部分。微软DP支持Oracle客户端8.1.7 或更高版本,而ODP.NET要求Oracle客户端9.2或更高版本。

   在比较了MSDPODP.NET后,根据应用程序开发和部署的要求,选择正确的DP。下面超链接是微软提供的这两个DP的详细区别。

原文地址:http://msdn.microsoft.com/en-us/library/ms971518

另外,在下面链接看到,微软已经在.NET框架4.0deprecated它的DP。请检索 Microsoft Kills Its Oracle Data Provider for ADO.NET 你会发现很多引用。

原文地址:http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx

 

Oracle观点

那么Oracle的观点如何?既然微软在.NET框架4.0中不赞成System.Data.OracleClient,也就不用多说了。

原文地址:http://www.oracle.com/technetwork/topics/dotnet/index-085703.html 原文地址:http://www.oracle.com/technetwork/topics/dotnet/index-154765.html

 

个人观点

ODP.NETMSDP都可以使用,但是MS.NET框架4.0,也就是VS 2010,建议开发人员不要使用MSDP,意味着,微软意识到这种数据库接口是无法与大型数据库生产商竞争的,比如Oracle,因为ODP.NET在处理复杂数据类型时提供了更多的方法等等。