开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 11251|回复: 24

[教程] 最新Oracle免安装.NET全托管只有3.72M (2014.10.16 Update)

[复制链接]

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
发表于 2013-10-10 14:50:09 | 显示全部楼层 |阅读模式
本帖最后由 nyfor 于 2014-10-16 13:31 编辑

官方在一个月前又有新版本出来了. 12c Release 3 Beta 2 , 文件大小居然变成了 3.72M


之前的免安装客户端,.NET全托管, 6.22M大小 (版本12c 4.121.1.0))
============================================================================================
开发Oracle数据库应用程序,一直以来部署是一个头疼的事情,需要安装客户端,虽然Oracle也有提供XCopy部署的ODAC客户端,但是文件总体积很大.
现在Oracle已经开发出一个全托管的DLL, 仅一个DLL, 无需安装, 部署极为方便. 发布时只需要该DLL跟在Bin目录下即可.

要求.NET Framework版本为 4.0及以上

官方下载地址:
http://www.oracle.com/technetwor ... tilsoft-087491.html

原来引用 Oracle.DataAccess.dll, 现在改为引用Oracle.ManagedDataAccess.dll,
其中的命名空间由 Oracle.DataAccess.Client改为Oracle.ManagedDataAccess.Client
当使用这个全托管的DLL时, 无需安装部署,无需设置注册表,无需配置环境变量,一切皆可在 app.config(或是web.config) 文件中配置

官方文档配置说明:
http://docs.oracle.com/cd/E48297 ... Config.htm#BABEGGHD

当然不在配置文件中做任何配置也是可以的. 连接字串可以使用 EasyConnect 方式配置.
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Oracle.ManagedDataAccess.Client;
  6. using System.Data;

  7. namespace ConsoleApplication1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             try
  14.             {
  15.                 string constr = "user id=scott;password=tiger;data source=//127.0.0.1/ORCL";
  16.                 OracleConnection con = new OracleConnection(constr);
  17.                 con.Open();
  18.                 OracleCommand cmd = con.CreateCommand();
  19.                 cmd.CommandText = "SELECT DEPTNO, DNAME, LOC FROM DEPT";
  20.                 IDataReader dr = cmd.ExecuteReader();
  21.                 while (dr.Read())
  22.                 {
  23.                     Console.WriteLine("{0} {1} {2}", dr.GetValue(0),dr.GetValue(1),dr.GetValue(2));
  24.                 }
  25.                 dr.Close();
  26.                 cmd.Dispose();
  27.                 con.Dispose();
  28.                 Console.ReadLine();
  29.             }
  30.             catch (Exception ex)
  31.             {
  32.                 Console.WriteLine("Error : {0}", ex);
  33.             }
  34.         }
  35.     }
  36. }
复制代码
output.png


再补充一下在 app.config/web.config 中配置还需要增加一个配置节
  1. <configSections>
  2.   <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess" />
  3. </configSections>
复制代码
否则无法识别文档中的配置
  1. <oracle.manageddataaccess.client>
  2.     <version number="*">
  3.       <dataSources>
  4.         ...
  5.         ...
  6.       </dataSources>
  7.       <settings>
  8.         ...
  9.         ...
  10.       </settings>
  11.       <implicitRefCursor>
  12.         ...
  13.         ...
  14.       </implicitRefCursor>
  15.       <edmMappings>
  16.         ...
  17.         ...
  18.       <edmMappings>
  19.     </version>
  20.     <version number="4.112.3.60">
  21.       <dataSources>
  22.         ...
  23.         ...
  24.       </dataSources>
  25.       <settings>
  26.         ...
  27.         ...
  28.       </settings>
  29.       <implicitRefCursor>
  30.         ...
  31.         ...
  32.       </implicitRefCursor>
  33.       <edmMappings>
  34.         ...
  35.         ...
  36.       <edmMappings>
  37.     </version>
  38.   </oracle.manageddataaccess.client>
复制代码
由于我没有使用分布式事务,这里我抽取出下载包中的一个DLL,另外的一个是 DTC(大多用不到分布式事务,就不管他了)
Oracle.ManagedDataAccess.dll.zip (1.73 MB, 下载次数: 242)

Oracle.ManagedDataAccess.dll.20140917.zip

2.2 MB, 下载次数: 98

Oracle.ManagedDataAccess.dll 最新

评分

参与人数 12贡献 +5 赞扬 +12 收起 理由
serenabenny + 1 Thanks
DanielQ + 1 很给力
pbuilder + 1 感谢分享
benny856694 + 1 赞一个
rakehell + 1 很给力

查看全部评分

回复

使用道具 举报

0

精华

1

贡献

16

赞扬

帖子
48
软币
425
在线时间
31 小时
注册时间
2013-9-4
QQ
发表于 2013-10-10 16:01:58 | 显示全部楼层
不知道这个托管客户端与之前的PInvoke版本在效率上有没有差别
回复

使用道具 举报

0

精华

480

贡献

690

赞扬

DX汉化组

帖子
281
软币
6764
在线时间
1170 小时
注册时间
2013-6-8
发表于 2013-10-10 22:56:55 | 显示全部楼层
我想知道,如果是XAF怎么连接。
回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
 楼主| 发表于 2013-10-11 09:19:14 | 显示全部楼层
焚寂。 发表于 2013-10-10 16:01
不知道这个托管客户端与之前的PInvoke版本在效率上有没有差别

PInvoke是什么?我还没听过呢.
回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
 楼主| 发表于 2013-10-11 09:44:34 | 显示全部楼层
polite0803 发表于 2013-10-10 22:56
我想知道,如果是XAF怎么连接。

XAF的话,
一是你自己去写XpoProvider, 二是建议DevExpress提供该驱动的支持.

如果你有XPO驱动的源代码,则仿照其中的 ODP.NET 的驱动部分应该很容易写出来,可能只要替换一下其中的名称空间就可以.
回复

使用道具 举报

0

精华

1

贡献

16

赞扬

帖子
48
软币
425
在线时间
31 小时
注册时间
2013-9-4
QQ
发表于 2013-10-12 19:49:29 | 显示全部楼层
nyfor 发表于 2013-10-11 09:19
PInvoke是什么?我还没听过呢.

托管代码调用非托管代码
回复

使用道具 举报

0

精华

32

贡献

18

赞扬

帖子
47
软币
621
在线时间
72 小时
注册时间
2013-7-6
发表于 2013-10-13 20:00:18 | 显示全部楼层
不错的东西学习一下
回复

使用道具 举报

0

精华

167

贡献

24

赞扬

帖子
81
软币
1153
在线时间
153 小时
注册时间
2013-6-11
发表于 2013-10-15 15:27:15 | 显示全部楼层
本帖最后由 benny856694 于 2013-10-15 16:03 编辑

似乎这个driver不支持oracle 9i了。
回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
 楼主| 发表于 2013-10-15 16:16:12 | 显示全部楼层
benny856694 发表于 2013-10-15 15:27
似乎这个driver不支持oracle 9i了。

的确,最低版本要求 10g Release 2
Oracle Data Provider for .NET, Managed Driver requires the following:

    Same Windows operating system support as ODP.NET, Unmanaged Driver.

    ODP.NET, Managed Driver is built with AnyCPU. It runs on either 32-bit or 64-bit (x64) Windows and on either 32-bit or 64-bit (x64) .NET Framework.

    Microsoft .NET Framework 4 or later

    Access to Oracle Database 10g Release 2 or later

回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
42
软币
588
在线时间
54 小时
注册时间
2013-10-19
发表于 2013-10-19 18:06:19 | 显示全部楼层
如果有足够的时间,非常愿意一试的。我还是采用最早的方式访问Oracle和发布的。
回复

使用道具 举报

0

精华

102

贡献

15

赞扬

帖子
136
软币
2024
在线时间
288 小时
注册时间
2013-6-22
发表于 2013-10-19 21:21:34 | 显示全部楼层
不错,谢谢分享
回复

使用道具 举报

0

精华

0

贡献

14

赞扬

帖子
27
软币
188
在线时间
11 小时
注册时间
2013-10-21
发表于 2013-10-21 23:44:59 | 显示全部楼层
是正式版本吗  不敢用在正式项目中
回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
 楼主| 发表于 2013-10-22 11:06:21 | 显示全部楼层
zxcvb90 发表于 2013-10-21 23:44
是正式版本吗  不敢用在正式项目中

是正式版的呀,只不过只实现了非托管ODP的部分功能, 我看了下,未实现的那部分功能我都用不到.
我现在已经使用到项目中了.
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
1
软币
56
在线时间
0 小时
注册时间
2013-10-23
发表于 2013-10-23 05:26:56 | 显示全部楼层
这个必须支持,自己的开发工具可以更新换代了
回复

使用道具 举报

0

精华

1

贡献

12

赞扬

帖子
21
软币
182
在线时间
10 小时
注册时间
2013-12-14
发表于 2013-12-14 17:32:08 | 显示全部楼层
这个不错,感谢分享
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
6
软币
62
在线时间
0 小时
注册时间
2013-12-18
发表于 2013-12-18 12:36:59 | 显示全部楼层
很有帮助奥,谢谢分享
回复

使用道具 举报

0

精华

304

贡献

390

赞扬

帖子
185
软币
1927
在线时间
269 小时
注册时间
2013-8-28
发表于 2013-12-23 18:56:35 | 显示全部楼层
这个必须支持!谢谢!
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
24
软币
185
在线时间
14 小时
注册时间
2014-1-2
发表于 2014-1-2 13:16:05 | 显示全部楼层
下来试试,谢谢老大
回复

使用道具 举报

0

精华

208

贡献

133

赞扬

帖子
190
软币
1978
在线时间
423 小时
注册时间
2013-12-18
发表于 2014-3-4 22:56:53 | 显示全部楼层
这个已经在用了. 反正我要用的功能.也只是增删改.  够用了.
回复

使用道具 举报

0

精华

167

贡献

24

赞扬

帖子
81
软币
1153
在线时间
153 小时
注册时间
2013-6-11
发表于 2014-3-4 23:24:42 | 显示全部楼层
yduis6554 发表于 2014-3-4 22:56
这个已经在用了. 反正我要用的功能.也只是增删改.  够用了.

我是通过xpo来用的,发现内存占用巨大,不知道你有这种问题吗
回复

使用道具 举报

0

精华

208

贡献

133

赞扬

帖子
190
软币
1978
在线时间
423 小时
注册时间
2013-12-18
发表于 2014-3-5 09:52:31 | 显示全部楼层
benny856694 发表于 2014-3-4 23:24
我是通过xpo来用的,发现内存占用巨大,不知道你有这种问题吗

我没有用这个.  不太清楚.

我使用的是 iBatisNET. 没发现内存使用有多大.
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
15
软币
135
在线时间
9 小时
注册时间
2014-2-14
发表于 2014-3-17 22:49:47 | 显示全部楼层
这个必须要顶一下!
回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
 楼主| 发表于 2014-10-16 13:36:12 | 显示全部楼层
官方在一个月前又有新版本出来了. 12c Release 3 Beta 2 , 文件大小居然变成了 3.72M
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
13
软币
143
在线时间
9 小时
注册时间
2014-10-9
发表于 2014-10-28 17:01:09 | 显示全部楼层
好东西。一定要收藏
回复

使用道具 举报

0

精华

2

贡献

0

赞扬

帖子
77
软币
257
在线时间
14 小时
注册时间
2013-11-13
发表于 2015-4-3 00:13:02 | 显示全部楼层
看着不错…………支持。
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-3 08:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表