Oracle 的 Alex Keh 在 2013 年 8 月说道:
托管 ODP.NET 发布。它目前是 Oracle DB 12c 的一部分
客户。要使用托管 ODP.NET,您必须下载并安装
数据库客户端。从那里,您可以仅提取托管的 ODP.NET
装配和设置文件。这些文件小于 10 MB,可以
部署到任何目标机器。
目前,我们正在打包一个独立管理的 ODP.NET 版本,
ODAC 12 版本将会小得多。这将发布于
OTN 很快。
如果您可以等待几天,ODAC 12c 将在 OTN 上发布,您可以下载该版本。这将是我们最新、最伟大的
托管 ODP.NET 版本
====
我们不打算将托管 ODP.NET 放在 NuGet 上。我们相信
使用 ODAC 管理的 ODP.NET 下载将提供与
NuGet 在程序集隔离和下载大小方面。
有一个线程讨论 Oracle 是否应该提供托管
ODP.NET NuGet 支持。一旦您使用 ODAC 12c,我想知道
您对是否仍然需要 NuGet 支持的想法。https://forums.oracle.com/thread/2559445 https://forums.oracle.com/thread/2559445
Nuget 管理的 ODP.NET https://www.nuget.org/packages/Oracle.ManagedDataAccess/:
PM> Install-Package Oracle.ManagedDataAccess
那么到底问题出在哪里呢?
基本上到目前为止,ODP.NET 是一个与 Oracle 客户端 .dll 文件通信的 .NET 层,这个小事实具有很多含义:
- 安装占用空间大(数百 Mb)
- 远程计算机部署困难 - 需要在客户端安装 ODP.NET
机器或部署大文件
- 使用多个版本、32 位/64 位操作系统和应用程序时具有挑战性
那么它是什么?
托管驱动程序基本上是一个具有 ODP.NET .Net 本机实现的单个 .dll 文件。
这意味着不需要 Oracle 客户端,现在本机代码位于幕后。 XCopy 安装可以轻松完成。
主要优点:
- 占地面积小
- 作为任何CPU编译,因此它可以在32位/64位操作系统上工作
并顺利申请。轻松管理多个版本
同一台机器
- 可以作为应用程序中的简单参考进行部署
bin 目录。
那么有什么问题呢?
- 并非所有功能都受支持(尽管大多数功能都是......)
可以找到更多关于文档 http://docs.oracle.com/cd/E38410_01/welcome.html
- 命名空间更改自
Oracle.DataAccess.Client 到 Oracle.ManagedDataAccess.Client
- 性能差异仍不清楚。 (旧)本机代码
始终执行非常高效,但另一方面 100% 得到管理
代码有其性能优势。
请注意,本机代码 ODP.NET 仍然非常可用。除了本机版本之外,还提供了托管版本(至少目前如此)。
参考:http://oracleatdotnet.blogspot.com.es/2013/07/odpnet-management-driver-beta-2.html http://oracleatdotnet.blogspot.com.es/2013/07/odpnet-managed-driver-beta-2.html
ODP.NET 托管驱动程序和非托管驱动程序之间的差异
http://docs.oracle.com/html/E41125_02/intro004.htm http://docs.oracle.com/html/E41125_02/intro004.htm
Oracle Data Provider for .NET 的功能
http://docs.oracle.com/database/121/ODPNT/features.htm#ODPNT0007 http://docs.oracle.com/database/121/ODPNT/features.htm#ODPNT0007