Lavoro in una soluzione abbastanza grande e vecchia che ha molti punti di accesso per diversi tipi di client, con siti Web per l'accesso pubblico, siti Web per l'accesso interno, alcuni siti Web e servizi Web per l'accesso delle aziende partner, ecc.
Tutte queste applicazioni utilizzano tecnologie diverse (basate su Microsoft), come ASP classico, WebForm ASP.NET, MVC 3, ASMX, DTSX, ecc. Il codice non ha uno standard e molti programmatori senza esperienza su base di codice e nel business hanno codificato a modo loro.
Il punto centrale di tutte le applicazioni è un database SQL Server con tonnellate di stored procedure che implementano tutte le regole aziendali. Le applicazioni sono in genere solo una shell per il database. L'accesso ai dati avviene senza framework o ORM (usando puro ADO.NET, riscrivendo normalmente tutto dalla creazione di una connessione per iterare attraverso un lettore di dati su ogni metodo, funzione o qualsiasi altra cosa).
Quali sono le best practice più moderne per creare uno strato di accesso ai dati produttivo basato su stored procedure?
Per motivi di lavoro, non possiamo riscrivere le vecchie applicazioni (il cliente non pagherà per questo, e il volume del lavoro giornaliero è troppo grande per farlo internamente). Inoltre, non possiamo utilizzare alcun ORM di terze parti (gli architetti sono contrari per "motivi di sicurezza"). Quindi, i miglioramenti devono essere più simili ai refactoring.