Lo sviluppo di un'applicazione complessa non è altro che l'applicazione delle basi apprese per introdurre un elevato numero di funzionalità all'interno del software che si realizza.

Se hai compreso bene le modalità di funzionamento delle classi ADO.NET, non penso sia necessario o utile visionare un'applicazione di vaste dimensioni che non farebbe altro che confondere le idee, impedendo di comprendere la logica offuscata dall'intreccio di altre classi "parassita" (per il discorso che intendi approfondire) volte a risolvere problemi specifici e che magari rendono difficile capire come usare le classi del framework per ottenere il proprio scopo.

Se hai delle domande o dei dubbi specifici, motivi per cui chiedi un esempio, prova ad esporle e vedremo di fornire le risposte.

Ciao!