Attivazione delle modifiche ai dati in N-Tier

2

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?

    
posta Ryan Kinal 28.09.2012 - 20:34
fonte

1 risposta

5

How does the presentation layer trigger database changes?

Bene, il livello di presentazione non dovrebbe attivare direttamente le modifiche nel livello del database. Dovrebbe iniziare la chiamata al livello di servizio, in cui la logica aziendale dovrebbe verificare la richiesta. Al termine della verifica, dovrebbe eseguire l'operazione DB su entità / tabelle di cui ha bisogno.

Potresti anche considerare questo schema molto utile - Pattern del repository che può associare un comportamento ai dati correlati.

    
risposta data 28.09.2012 - 21:17
fonte

Leggi altre domande sui tag