Se c’è “qualcuno” lì fuori che deve accedere a dati contenuti in database Oracle, certamente saprà che Microsoft ha deprecato il provider nativo per Oracle (OracleClient) incluso nel framework sin dalle prime versioni dello stesso. Non sto qui a sindacare sulle decisioni che MS ha preso a riguardo, avrà avuto i suoi buoni motivi (e dire che funzionava così bene…); quello che si può fare è “guardarsi attorno” e vedere cosa offre il mercato, sia in termini di soluzioni gratuite, sia in termini di soluzioni a pagamento.
Principalmente abbiamo a che fare con tre “attori”:
- ODP.net: è Il provider fornito da Oracle, per l’ambiente .net. E’ gratuito, ma dalla mia esperienza non è molto stabile e dai commenti che potete trovare nel blog di ADO.net ha anche dei problemi di memory leakage, così come dei problemi con i typed dataset (almeno nella versione che avevo usato io).
- Data Direct: è un provider di terze parti. Non ho avuto modo di provarlo, ma sembra essere una ottima soluzione, vista anche l’esperienza della società che lo supporta.
- DevArt: altro provider di terze parti. L’ho provato e devo dire di essere rimasto favorevolmente impressionato.
La suite di componenti di DevArt offre molte caratteristiche interessanti: mentre con ODP.net non esiste supporto a Entity Framework, il provider di DevArt ha addirittura un ambiente che permette di generare gli edml direttamente dal database Oracle, oppure di impiegare LINQ2SQL. Inoltre è completamente realizzato in codice managed e permette di connettersi direttamente al database senza richiedere i driver OCI sulla macchina client. Esistono infine molte versioni della suite, ed il prezzo varia in accordo con ciò che contiene la suite stessa.
Non ho avuto ancora modo di provare il provider di Data Direct, ma da ciò che è scritto nel sito sembra supportare anch’esso Entity Framework ed è scritto in codice 100% managed.
Altre informazioni riguardo questo argomento le potete trovare in questo post.