Puoi e dovresti astrarre il tuo livello dati. Tuttavia, prima di decidere arbitrariamente che il tuo scopo è quello di supportare più database, devi rendertene conto:
- Tutti i database hanno i loro capricci e si comportano in modi diversi, quindi anche se si utilizza un ORM (il framework di entità è OK, ma non sono convinto di quanto sia buono per grandi volumi di dati) è necessario essere consapevoli che potrebbe non funzionare in modo identico per tutti i database (ad esempio le transazioni distribuite potrebbero non essere supportate). Ciò consente di aumentare i costi di sviluppo, possibilmente considerevolmente, se si desidera fornire un'esperienza coerente su tutti i database.
- Anche se ORM è Impressionante e fa tutto in modo identico in ogni database, devi comunque eseguire tutti i test di accettazione in ogni ambiente di database per confermare ciò che sicuramente aumenta i costi di QA.
Ora stai scrivendo un sito Web .NET, dal suono di esso per il mercato consumer, quindi sarà ospitato su una scatola da qualche parte come Godaddy con accesso a un database SQL Server come parte del pacchetto.
Dato che qual è il ritorno sull'investimento atteso dal supporto di qualsiasi altro database diverso da SQL Server?
Direi che solo se pensi che questa cifra sia positiva e in proporzione agli altri costi di sviluppo dovresti considerare di supportare più di un database e quindi supportare solo altri database una volta stabilito e stabile il tuo prodotto con SQL Server indietro fine e c'è una domanda definita dai tuoi clienti.