Przeprowadziłem szybkie porównanie różnych dostawców, składające się z:
- Doświadczenie instalacji.
- Łączność.
- Doświadczenie Server Explorer.
- Aktualizacja z bazy danych (najpierw baza danych).
- Mapowanie typów danych (najpierw baza danych).
Oto wnioski:
1. Doświadczenie instalacji.
Oracle ODP.NET (beta 3):Złożona instalacja oddzielnych wersji x86 i x64, instalatory nie przeznaczone dla ścieżki systemowej Windows.Fills (niebezpiecznie blisko maksymalnej długości), nie instalują się w standardowych folderach (pliki programów + dane aplikacji).
DotConnect:Smooth instalacji Devarta, biblioteka DLL dostawcy jest w pełni zarządzana.
DataDirect's Progress:Płynna instalacja, biblioteka DLL dostawcy jest w pełni zarządzana.
OPENLINK:Wydaje się, że wymaga instalacji po stronie serwera, nie testowałem dalej.
2. Łączność.
Oracle ODP.NET (beta 3):Skomplikowana konfiguracja, wymaga instalacji Oracle na komputerze klienta i dodatkowego pliku TSN w instalacji Oracle lub długiego i złożonego ciągu połączenia, który wygląda jak LISP/Scheme.
Aktualizacja: Nie można tego znaleźć w dokumentacji, jednak ciąg połączenia może również zawierać prostą definicję źródła danych, np. nazwa_serwera:nazwa portu/usługi.
DotConnect firmy Devart:Proste parametry połączenia + kreator.
DataDirect's Progress:Prosty ciąg połączenia + kreator.
3. Eksplorator serwera.
Oracle ODP.NET (beta 3):Najpotężniejszy z trzech, umożliwia łatwą edycję, przeglądanie kluczy i indeksów.
Devart's DotConnect:przeglądanie tabel i pól.
DataDirect's Progress:Umożliwia łatwą edycję, przeglądanie kluczy i indeksów.
4. Aktualizacja z bazy danych (najpierw baza danych).
Oracle ODP.NET (beta 3):Prosto.
Devart's DotConnect:Pokazuje tabele ze wszystkich schematów, brak opcji filtrowania - sprawia, że wyszukiwanie tabel jest wyczerpujące.
Postęp DataDirect:prosto.
5. Mapowania typów danych (najpierw baza danych).
Oracle ODP.NET (beta 3):Domyślne mapowanie dla number(1,0), number(2,0) i number(3,0) jest błędne*.Można ręcznie nadpisać dla number(2,0) i number(3 ,0). Naprawienie numeru(1,0) nie działa (przynajmniej nie w wersji beta 3 - mogło działać w wersji beta 2).
Aktualizacja: Teraz, gdy wersja wydania jest już dostępna (112030), zostało to naprawione. Niektóre mapowania są możliwe w sekcji w pliku app.config.
Devart's DotConnect:Pokazuje tabele ze wszystkich schematów, brak opcji filtrowania - sprawia, że wyszukiwanie tabel jest wyczerpujące.Domyślne mapowanie dla binarnego zmiennoprzecinkowego, binarnego podwójnego, znacznika czasu ze strefą czasową, number(2,0), number(3,0) i number(4 ,0) są błędne*. Sterowanie ręczne powinno działać — nie sprawdzano.
DataDirect's Progress:Domyślne mapowania są OK*.
(*) Oczekiwane mapowania:
DB Data Type .NET Data Type
integer Decimal
int Decimal
smallint Decimal
long String
decimal Decimal
rowid String
float Decimal
double Decimal
binary float Single
binary double Double
char[40] String
charvar[40] String
natchar[40] String
natcharvar[40] String
natcharacter[40] String
natcharactervar[40] String
number Decimal
numeric Decimal
nvarchar2[40] String
real Decimal
date DateTime
timestamp DateTime
timestamplocal DateTime
timestampzone DateTimeOffset
xml String
raw15 Binary
raw16 Guid
raw17 Int64
number(1,0) Boolean
number(2,0) Byte or SByte
number(3,0) Byte or SByte (accepted Int16 as OK too)
number(4,0) Int16
number(5,0) Int16 (accepted Int32 as OK too)
number(6,0) Int32
number(7,0) Int32
number(8,0) Int32
number(9,0) Int32
number(10,0) Int32 (accepted Int64 as OK too)
number(11,0) Int64
number(15,0) Int64
number(16,0) Int64
number(17,0) Int64
number(18,0) Int64
number(19,0) Int64 (accepted Decimal as OK too)
number(20,0) Decimal (would accept Int64 as OK too)
number(21+,0) Decimal
Jeśli chcesz, aby typ bazy danych mógł przechowywać dowolną liczbę w zakresie typów .NET, IntX wymaga liczby (N,0), gdzie Ceil(log10(2^X)) =N dla przechowywania**.
Bool (Int1) ==> number(1,0)
Byte (Int8) ==> number(3,0)
Int16, UInt16 ==> number(5,0)
Int32, UInt32 ==> number(10,0)
Int64 ==> number(19,0)
UInt64 ==> number(20,0)
** Obliczenia zakładają liczby bez znaku, dla liczb ze znakiem ceil(log(2^(X-1)).
Odniesienia do założeń typu danych:
TECHNIK w sieci
Devart
Oracle