(首先不要恐慌,System.Data.OracleClient不是由Microsoft删除,但是它不是在客户端版本.net 4)
这种使用可以通过使用System.Data.OracleClient,however Microsoft has decided to deprecate OracleClient.(OracleClient是Oracle开发的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驱动程序。微软为sqlServer提供一个,Oracle为Oracle提供一个。然而,似乎Oracle希望使.Net的使用尽可能的硬,微软希望使Oracle的使用尽可能的硬。
到目前为止,最好的选择看起来像devArt’s dotConnect。
但是我开始质疑天气.NET是一个很好的开发系统为ISV,因为迟早你总是得到一个客户,要求oracle支持。在Java世界里,他们似乎有这个问题解决。
它看起来像Oracle可能会提出一个可怕的完全管理的ADO.NET提供程序它自己甚至可以很容易安装!见here,声称Beta – 2011年,生产 – 2011年底。
解决方法
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注册表项或环境变量来利用客户已经习惯使用的预先存在的连接别名。
希望这可以帮助,
基督教Shay
Oracle
欢迎在我们的功能请求网站上提供您对此功能和其他未来功能的反馈:
http://apex.oracle.com/pls/apex/f?p=18357:46