2011-09-07 7 views
7

Recentemente stavo discutendo con i colleghi una spinta verso una struttura disciplinata di livello superiore per la nostra applicazione web. Mi ha colpito il fatto che non potessi pensare ad alcuna alternativa.Alternative all'architettura NTier per le applicazioni Web

È sempre il caso di separare le applicazioni Web in livelli?

risposta

5

Un'alternativa alla tradizionale architettura a più livelli è l'architettura Command-Query Responsibility Segregation (CQRS) come discusso da Udi Dahan.

Come tutte le decisioni architetturali si dovrebbe davvero pensare quando usarlo come discusso here

Personalmente, tendo a vedere un sacco di "over architecture" nel mio software viaggia che può davvero più di complicare le cose e rendere le cose molto più difficili mantenere e ovviamente costa molto di più. Hai davvero bisogno di pensare molto al problema aziendale prima di scegliere semplicemente un'architettura.

Mantenere le cose il più semplice possibile per ottenere i migliori risultati e un facile refactoring.

5

È sempre il caso che si debbano separare le applicazioni Web in livelli?

È necessario separare le diverse parti logiche del sistema per evitare che siano strettamente accoppiato a quelle svolte e più riutilizzabili. In quello che li separi non è poi così importante. Puoi chiamarlo strati o qualsiasi altra cosa.

In realtà ci potrebbero essere 2 significati di questi strati:

  1. confini fisici: browser del client, web server, server di servizi web, database di back-end, ...
  2. confini logici: GUI, livello di servizio, DAL, ...

Si potrebbe anche dare un'occhiata al Onion Architecture. Ma le cipolle hanno ancora strati :-)

+5

La convenzione standard utilizza ** livelli ** per i limiti fisici e ** livelli ** per i limiti logici. –

3

Si consiglia di leggere Microsoft Application Architecture Guide, 2nd Edition.

Quindi, ti renderai conto di quanto sia importante questa separazione per ogni sito che è qualcosa di più di 2 semplici pagine web o così.

È una guida completa che spiega i ruoli e le responsabilità di ogni livello e come giocano tutti insieme in una robusta applicazione scalabile &.

Non è necessario leggere tutto, ma per l'inizio dare un'occhiata a Chapter 5: Layered Application Guidelines.

2

C'è un "modello" alternativo per Architettura a strati.

Ma è l'anti modello che l'architettura stratificata sta cercando di risolvere. Vale a dire "Big Ball Of Mud" :)

+0

buon punto @Shiraz Bhaiji – vikingben

Problemi correlati