Nei giorni bui di .NET 1.1 ho creato (credo come tutti) una sorta di sistema MVC per un'applicazione che andava così.
Una pagina è stata creata per essere una specie di maestro "falso". Questo ha avuto qualche tubatura per mostrare menu, script, stili, ecc.
Le "viste" erano controlli utente individuali.
C'era una tabella con informazioni su ogni vista. Ad esempio, "Prodotto" caricherà ~/Controls/Product.ascx
in un segnaposto. La tabella aveva anche un campo che conteneva il nome del tipo della classe del modello (come se). Ogni modello ha implementato un'interfaccia ben nota. Questa classe è stata istanziata utilizzando Activator.CreateInstance()
e chiamata per inizializzare, e quindi è stata passata al controllo stesso (inversione del controllo?). Il controllo quindi ha chiamato vari metodi per ottenere set di dati o quant'altro. L'interfaccia stessa è stata normalizzata per avere i soliti metodi CRUD (Lettura / Scrittura / Elenco / Elimina). C'era anche uno strato DAL / ORM sotto questo.
Non è stato bello, ma ha funzionato bene. È stato facile testarlo e svilupparlo, e la maggior parte degli sviluppatori che sono venuti a bordo si sarebbe ripresa abbastanza rapidamente. Soprattutto, è stato relativamente semplice da creare.