Mi sono sempre insegnato a gestire qualsiasi codice di accesso ai dati in un 'livello' completamente separato dalla mia logica aziendale e dal mio codice UI. Questa è sempre stata una buona architettura per me e tutte le "regole" o le migliori pratiche che vedo riescono ancora a adattarsi a questo stile di codifica, in particolare il principio della responsabilità singola .
Per la maggior parte dei miei progetti domestici, userei il mio ORM che ho creato, che ho sempre pensato di creare open-source. Tuttavia da allora, LINQ è diventato disponibile, il che era molto simile al modo in cui il mio ORM funzionava (ma ... meglio).
Non c'è nulla che prima potessi fare con il mio ORM che ora non posso fare con LINQ (tranne i bit dell'integrazione REST). Quindi la mia domanda è; LINQ è il mio nuovo livello di accesso ai dati? Ho più bisogno di questo livello? Il mio BLL dovrebbe semplicemente parlare direttamente con LINQ? O questa cattiva pratica è ancora?
Modificare:
La domanda originale si riferiva a LINQ to Entities, ma ci sono molte risposte interessanti su LINQ to SQL. Quali sono i pensieri delle persone su entrambi? Ho capito che LINQ to SQL non può davvero sostituire un DAL, ma Entity Framework potrebbe?