Jeg kørte en hurtig sammenligning af de forskellige udbydere bestående af:
- Installationsoplevelse.
- Forbindelse.
- Server Explorer-oplevelse.
- Opdatering fra databaseoplevelse (database først).
- Tilknytning af datatyper (database først).
Her er konklusionerne:
1. Installationserfaring.
Oracles ODP.NET (beta 3):Kompleks installation af separate x86- og x64-versioner, installationsprogrammer, der ikke er designet til Windows.Fills systemsti (farligt tæt på maks. længde), installerer ikke til standardmapper (programfiler + appdata).
Devarts DotConnect:Glat installation, udbyder DLL er fuldt administreret.
DataDirects fremskridt:Glat installation, udbyder DLL administreres fuldt ud.
OPENLINK:Ser ud til at kræve installation på serversiden, testede ikke yderligere.
2. Forbindelse.
Oracles ODP.NET (beta 3):Kompliceret at konfigurere, kræver Oracle-installation på klientmaskine og enten yderligere TSN-fil i Oracle-installation eller en lang og kompleks forbindelsesstreng, der ligner LISP/Scheme.
Opdatering: Kunne ikke finde dette i dokumentationen, dog kan forbindelsesstreng også indeholde simpel datakildedefinition f.eks. servernavn:port/tjenestenavn.
Devarts DotConnect:Simpel forbindelsesstreng + wizard.
DataDirects fremskridt:Enkel forbindelsesstreng + guide.
3. Server Explorer-oplevelse.
Oracles ODP.NET (beta 3):Den mest kraftfulde af de tre muliggør nem redigering, visning af nøgler og indekser.
Devart's DotConnect:Visning af tabeller og felter.
DataDirects fremskridt:Muliggør nem redigering, visning af nøgler og indekser.
4. Opdatering fra databaseoplevelse (database først).
Oracles ODP.NET (beta 3):Ligetil.
Devarts DotConnect:Viser tabeller fra alle skemaer, ingen mulighed for at filtrere - gør det udmattende at finde tabeller.
DataDirects fremskridt:ligetil.
5. Datatypetilknytninger (database først).
Oracles ODP.NET (beta 3):Standardmapping for nummer(1,0), tal(2,0) og nummer(3,0) er forkerte*.Kan manuelt tilsidesætte for nummer(2,0) og tal(3) ,0). Fixing for nummer(1,0) virker ikke (i hvert fald ikke på beta 3 - kan have fungeret i beta 2).
Opdatering: Nu hvor udgivelsesversionen er ude (112030), er dette blevet rettet. Nogle kortlægninger er mulige via sektion i app.config-filen.
Devarts DotConnect:Viser tabeller fra alle skemaer, ingen mulighed for at filtrere - gør det udmattende at finde tabeller. Standardkortlægning for binær float, binær dobbelt, tidsstempel med tidszone, tal(2,0), tal(3,0) og tal(4) ,0) er forkerte*. Manuel tilsidesættelse burde virke - tjekket ikke.
DataDirects fremskridt:Standardtilknytninger er OK*.
(*) Kortlægninger, jeg forventede:
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
Hvis du ønsker, at databasetypen skal være i stand til at gemme et hvilket som helst tal i .NET-typeområdet, kræver IntX et tal(N,0), hvor Ceil(log10(2^X)) =N for lagring**.
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)
** Beregningen forudsætter tal uden fortegn, for tal med fortegn ceil(log(2^(X-1)).
Referencer for datatypeantagelser:
TECH on the Net
Devart
Oracle