Roy,
Thanks very much for the clarification / confirmation.
Our app implementation design was to forego the specific benefits from using
Oracle's managed provider in favor of a compromise with the "wider"
implementation of a "data factory" or "data layer".
Our datalayer is implemented to use three managed providers:
System.Data.SqlClient
System.Data.OleDb
System.Data.OracleClient
for interfacing with SQL Server 7/2000, Microsoft Access, and Oracle 8i/9i
respectively. We have SQL scripts that can build the required tables in any
of the three databases.
There is a string in an XML file that points to the specific set of tables
in one of the three RDBMS -- that is all that is required to switch from one
to the other in the data factory/layer. The reason for this approach was to
attempt to maintain a single code base regardless of client implementation
of the database system. (This is a commercial application not customized
for specific client implementation and is not data intensive such as an
airline reservation system might be.)
The datalayer receives a SQL statement from the business layer and
"translates" it into the required format for the specific provider -- this
very important for parameterized queries.
As a result, we have found it more advantageous to use the Microsoft .net
managed provider for Oracle under our design and test conditions. We have
not had specific problems with Oracle's provider, but made a design decision
up front based on the best available info and very limited testing at the
time (time constraints in getting a product to market) -- and went on from
there ...
However, this is the first time the question has come up about the Oracle
RDBMS being on a Linux box so we had no reference point to work with.
Ron
Roy Fine said:
Ron,
The Oracle .Net Managed client is built upon the Oracle Call Interface
(OCI) - and that is the same interface that the MSFT provider is built upon.
OCI is in turn implemented upon the Net8 protocol stack and the Two Task
Layer - which will effectively isolate you from any of the database server
implementation details. You should not be concerned with the platform used
by the server - it could be Solaris, HP, Linux, Windows NT/2000, etc - it
all works the same from the client side.
With respect to the ODP.NET implementation - I have found it quite stable.
Having programming in VC++ and OCI for the past 5 years, the .NET and C# are
a very welcome productivity boost, and performance with respect to OCI is
not noticably different on the things that we do - and with array binding,
and collection pararmeters with bulk binding for stored procedure, moving
large amounts of data across the network is VERY much improved over other
provider implementations.
regards
roy fine
< truncated >