ODP.NET versus System.Data.OracleClient

Нету больше System.Data.OracleClient. В четвертой версии .NET Framework он deprecated.
Microsoft решила свернуть его развитие.
Источник: ADO.NET team blog
Ну чтож, ODP.NET тоже можно кушать.

А давайте-ка я пройдусь по родному ADO.NET провайдеру от Oracle, называемому ODP.NET.
ODP.NET быстрее, но я делал высоконагруженный проект, где Майкросовстский провайдер прекрасно справлялся с потребностями ораклистов.
ODP.NET функциональнее, однако кому-то этот функционал покажется пятой ногой с внутренней коленкой.
ODP.NET глючнее и может очень дорого обойтись при переходе на другую версию Oracle. Мне кажется Oracle сам по себе далеко не так вкладывается в совместимость, как это делает Microsoft.
Вот что я помню в ODP.NET:
Когда Oracle возвращает число у которого после запятой где-то от 19 знаков точности, ODP.NET это не переварит и “порвет”.
Также есть ядерные забабоны, когда ODP.NET от одной версии Oracle подключается к базе другой версии, например 10й или 11й ODP.NET подключается к девятке или десятке Оракле. Это только в сказке все будет работать хорошо и сказка эта “Документация от Oracle”. А в жизни будет рваться, например, от разного сочетания символов в строке :). Правильный референс в системе на OCI не поможет :) гы гы гы
Ну не все так печально, ко всему можно приспособиться и использовать. Или теперь чаще будем задумываться о том, какую базу использовать.
Вообще, перевод с System.Data.OracleClient на ODP.NET ничего не стоит, а вот перевод наоборот может обойтись очень дорого.
Так что мягкой миграции, господа.

Комментарии

Популярные сообщения из этого блога

A4tech. Мышь не найдена. Пожалуйста, подсоедините мышь.

SVN: Пропали иконки TortoiseSVN.

Вывод в cmd или bat пустой строки.