Ho studiato architettura n-tier ultimamente, in particolare in VB.NET con Entity Framework e / o LINQ to SQL. Comprendo i concetti di base, ma mi sono chiesto quali siano le migliori pratiche in merito all'attivazione di operazioni di tipo CRUD da input / azioni dell'utente. Quindi, l'arcitecture ha un aspetto simile al seguente:
[presentation layer] - > [livello aziendale] - > [livello dati] - > (Database)
Ottenere informazioni dal database nel livello di presentazione è semplice e astratto. Si tratta semplicemente di creare un'istanza di un nuovo oggetto dal livello aziendale, che a sua volta utilizza il livello dati per ottenere le informazioni corrette. Tuttavia, il salvataggio (aggiornamento e inserimento) e l'eliminazione sembrano richiedere particolari API sugli oggetti di business rilevanti. Devo ammettere che questa è una pratica standard, a meno che un oggetto commerciale non si salvi su varie operazioni (che sembrano inefficienti) o sulla dismissione (che sembra semplicemente non funzionerebbe, o potrebbe essere ingombrante e inaffidabile).
I miei oggetti business "salvabili" dovrebbero implementare una particolare interfaccia "ISavable" o "IDatabaseObject"? Si tratta di un modello (anti-) riconosciuto? Ci sono altri schemi migliori che dovrei usare che non conosco?
La domanda TLDR, suppongo, è Come cambia il database di trigger del livello di presentazione?