Sunday, July 07, 2013

ODP.NET managed driver, beta 2

So I've suddenly remembered that I have a blog, so why not post something...

For those of you who are not such an avid readers of OTN you may have not heard that Oracle has released the ODP.NET Managed driver (beta 2). So if you are a .NET & Oracle user, this will most likely be relevant for you.

So what is the problem anyway?
Basically up until now, ODP.NET was a .NET layer that talks to the Oracle client .dll files, a small fact that had many implications:

  • Large installation footprint (several hundreds of Mb)
  • Tough deployment to remote machines - needs to install ODP.NET on client machine or deploy large files
  • Challenging when working with several versions, 32bit/64bit os and applications 
So what is it?
The managed driver is basically a single .dll file with a .Net native implementation of ODP.NET.
That means no Oracle Client is needed, and now native code is behind the scenes. XCopy installation can be done easily.

Major benefits:
  • Small footprint
  • Compiled as any cpu so it can work on 32bit/64bit os and application smoothly.
  • Easy to managed multiple versions on the same machine
  • Can be deployed as a simple reference in the application bin directory.
So what's the catch?
  • First of all, it's still a beta...
  • Not all features are supported (although most of them are... ) you can find out more on the documentation
  • Namespace is changed from Oracle.DataAccess.Client to Oracle.ManagedDataAccess.Client
  • Performance differences are still not clear. (The old) Native code always perform very efficiently, but on the other hand 100% managed code has it's performance benefits.
Please note that the Native-Code ODP.NET is still very much available. The managed version (at least for now) comes in addition to the native one.