Ian*_*ose 31 .net sql-server oracle ado.net odp.net
另请参见System.Data.OracleClient命名空间?
(首先不要惊慌,System.Data.OracleClient尚未被Microsoft删除,但它不在.net 4的客户端版本中)
这可以通过使用System.Data.OracleClient来实现,但Microsoft决定弃用OracleClient.(OracleClient是Microsoft开发的Oracle ADO.NET提供程序,作为.NET Framework的一部分提供.)
您可以使用ODP.Net,但是您希望您的Sql Server客户必须安装ODP.Net吗?(您希望您的任何客户必须安装Oracle软件吗?)
DataDirect不是一种选择,因为它需要花费一条腿和一条腿; 如果您需要将单个服务器连接到大型机,它可能几乎可以负担得起.但是,期望所有客户都不能购买它.
将表单C#移动到Java不是一个好选择,因为我是C#程序员并希望能够谋生!
像大多数必须支持多个RDBMS的ISV一样,我们只需要一个允许我们使用与SqlServer相同的Oracle小部分的解决方案.因此System.Data.OracleClient对我们来说足够强大.
(也许我们应该开始将所有数据存储在平面文件中,以便客户的DBA停止尝试告诉我们如何编写软件.Oracle DBA更糟糕!)
我真正的问题是如何编写与Oracle通信的.NET软件,我们可以免费安装与SqlServer对话的.NET软件.必须使用ODP.NET只会让oracle客户端安装更加痛苦,但更多的是出错.
如果我使用的是JAVA,我可以使用JDBC 4类驱动程序.Microsoft为SqlServer提供了一个,Oracle为Oracle提供了一个.但是,Oracle似乎希望尽可能地使用.Net,并且微软希望尽可能地使用Oracle.
到目前为止,最好的选项看起来像devArt的dotConnect.
然而,我开始质疑天气.NET是一个很好的ISV开发系统,因为迟早你总是得到一个需要oracle支持的客户.在Java世界中,他们似乎已经解决了这个问题.
看起来Oracle可能即将推出一个完全托管的ADO.NET提供商,它甚至可能很容易安装!看到这里,声称β - 2011年,生产- 2011年底.
编辑:完全托管的ODP.NET现已投入生产.它非常小(小于10MB)并且不依赖于其他文件.你可以在这里获得:
http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
原始答案:
一种方法轻松地确保所需的Oracle客户端软件(包括ODP.NET)总是可用的部署机器上是与您的应用程序中嵌入它.ODP.NET已经得到了很多现在更容易嵌入该XCOPY ODP.NET是可用的.您可以从以下链接下载:
http://www.oracle.com/technology/software/tech/windows/odpnet/index.html
使用XCOPY ODP.NET,部署应用程序时需要做的就是:
1)将您的应用程序复制到目标计算机
2)运行"install.bat",将几个Oracle DLL复制到目标机器(包括ODP.NET和Oracle客户端(OCI)软件)
3)运行"configure.bat",它执行"gacutil"并更新目标机器的注册表
4)为您的应用程序提供连接字符串信息.您可以使用EZCONNECT连接字符串("hostname @ servicename"),或者您(或您的客户)可以通过将TNS_ADMIN注册表项或环境变量设置为指向已配置sqlnet连接别名的另一个Oracle主目录来共享预先存在的sqlnet配置.
而已!真的很简单.
我希望您能够在上面的链接中仔细查看ODP.NET XCOPY,亲眼看看现在将ODP.NET与您的应用程序嵌入是多么容易.
补充说明:
如果您选择不在应用程序中嵌入ODP.NET,则无论是Microsoft OracleClient还是ODP.NET,都需要在任何部署计算机上安装其他Oracle客户端(OCI)软件.这两种情况的唯一区别在于,当您使用ODP.NET时,它也需要存在于部署机器上.好消息是客户机器上的典型Oracle安装已经包含ODP.NET.
现在,如果您的目标计算机已经安装了ODP.NET,则无需执行任何其他操作.您只需要分发您的应用程序.如果确实需要使用标准安装程序安装ODP.NET,也可以从上面提供的链接下载它.标准的ODP.NET安装只需几分钟,并为您配置一切.
同样,您可以使用EZConnect连接字符串使网络配置变得轻而易举,或者使用TNS_ADMIN注册表项或环境变量来利用客户已经习惯使用的预先存在的连接别名.
希望这可以帮助,
Christian Shay
神谕
请随时在我们的功能请求网站上提供有关此功能和其他未来功能的反馈:http://apex.oracle.com/pls/apex/f?p = 18357: 46
小智 5
您是否看过像devArt的dotConnect这样的其他Oracle提供商?作为示例,此驱动程序是100%托管代码,支持许多高级Oracle功能,提供实体框架支持(有一天会在ODP.NET中出现,我敢肯定).
在ODP.NET 11g发布之前,我们还没有获得许多其他功能(如ASP.NET提供程序模型支持).相当自由的许可和合理的价格.如果我没记错的话,还附带它自己的探查器.
在他们的测试中,与ODP.NET相比,表现良好.我很乐意为您指出一些开源软件,但根据我的经验,一旦您作为数据库购买了Oracle,您已经接受了这样一个事实,即您将为数据库相关工具存入一些现金.
归档时间: |
|
查看次数: |
10185 次 |
最近记录: |