Ik heb een snelle vergelijking gemaakt van de verschillende providers, bestaande uit:
- Installatie-ervaring.
- Connectiviteit.
- Server Explorer-ervaring.
- Bijwerken vanuit database-ervaring (database eerst).
- Toewijzingen van gegevenstypes (database eerst).
Hier zijn de conclusies:
1. Installatie-ervaring.
Oracle's ODP.NET (bèta 3):Complexe installatie van afzonderlijke x86- en x64-versies, installatieprogramma's niet ontworpen voor Windows. Vult systeempad in (gevaarlijk dicht bij maximale lengte), installeert niet in standaardmappen (programmabestanden + appgegevens).
Devart's DotConnect:Vlotte installatie, provider DLL wordt volledig beheerd.
Vooruitgang van DataDirect:Vlotte installatie, provider DLL wordt volledig beheerd.
OPENLINK:Lijkt installatie aan serverzijde vereist, niet verder getest.
2. Connectiviteit.
Oracle's ODP.NET (bèta 3):ingewikkeld om te configureren, vereist Oracle-installatie op clientcomputer en ofwel een extra TSN-bestand in Oracle-installatie of een lange en complexe verbindingsreeks die eruitziet als LISP/Scheme.
Update: Kon dit niet vinden in de documentatie, maar verbindingsreeks kan ook een eenvoudige gegevensbrondefinitie bevatten, b.v. servernaam:poort/servicenaam.
Devart's DotConnect:Eenvoudige verbindingsreeks + wizard.
De voortgang van DataDirect:eenvoudige verbindingsreeks + wizard.
3. Server Explorer-ervaring.
Oracle's ODP.NET (bèta 3):de krachtigste van de drie, maakt eenvoudige bewerking, weergave van sleutels en indexen mogelijk.
Devart's DotConnect:Bekijken van tabellen en velden.
De voortgang van DataDirect:maakt eenvoudige bewerking, weergave van sleutels en indexen mogelijk.
4. Updaten vanuit database-ervaring (database eerst).
Oracle's ODP.NET (bèta 3):eenvoudig.
Devart's DotConnect:toont tabellen van alle schema's, geen optie om te filteren - maakt het vinden van tabellen vermoeiend.
De voortgang van DataDirect:ongecompliceerd.
5. Toewijzingen van gegevenstypes (database eerst).
Oracle's ODP.NET (bèta 3):Standaardtoewijzing voor nummer (1,0), nummer (2,0) en nummer (3,0) zijn verkeerd *. Kan handmatig worden overschreven voor nummer (2,0) en nummer (3 ,0). Fixing voor nummer (1,0) werkt niet (tenminste niet op bèta 3 - werkte mogelijk in bèta 2).
Bijwerken: Nu de releaseversie uit (112030) is, is dit opgelost. Sommige toewijzingen zijn mogelijk via een sectie in het app.config-bestand.
Devart's DotConnect:toont tabellen van alle schema's, geen optie om te filteren - maakt het vinden van tabellen vermoeiend. Standaardtoewijzing voor binaire float, binary double, tijdstempel met tijdzone, nummer (2,0), nummer (3,0) en nummer (4 ,0) zijn fout*. Handmatige overschrijving zou moeten werken - niet gecontroleerd.
De voortgang van DataDirect:Standaardtoewijzingen zijn OK*.
(*) Kaarten die ik verwachtte:
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
Als u wilt dat het databasetype elk nummer in het .NET-typebereik kan opslaan, dan vereist IntX een nummer (N,0) waarbij Ceil(log10(2^X)) =N voor opslag**.
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)
** Bij de berekening wordt uitgegaan van niet-ondertekende getallen, voor getekende getallen ceil(log(2^(X-1)).
Referenties voor aannames van gegevenstypes:
TECH on the Net
Devart
Oracle