C'è una grande differenza tra il livello dell'applicazione e il livello di presentazione da un punto di vista DDD.
Sebbene il DDD sia incentrato su come modellare il dominio usando i blocchi costitutivi DDD e concetti come contesti limitati, linguaggio Ubiquitous e così via, è ancora vitale identificare e separare chiaramente i vari livelli nella tua app.
L'architettura gioca un ruolo importante nell'implementazione di un'app DDD di successo. Un'architettura famosa che ha guadagnato molto hype ultimamente è l'architettura della cipolla:
InquestodesignillivelloUI/Presentazioneeillivellodell'applicazionesonochiaramenteseparati.L'unionedei2insiemeintroduceunaccoppiamentostrettotra2stratichehannochiarepreoccupazionieresponsabilitàseparate.
IllivelloPresentazionedovrebbeospitaresololalogicadipresentazione.EvitaleSmartUIchesannotroppo.QuestoospitaprincipalmenteicontrollerelevistediMVColtreaCSS,JS,modelli,modulietuttociòcheriguardaglioggettidirispostaerichiesta.
Leazioniemessetramitelapresentazionesonodelegateallivellodell'applicazionetramiteicomandi.Illivellodell'applicazionecontienelalogicadell'applicazione.Normalmentesiassociaauncasod'uso.ContieneCOSAdovrebbefareilsistemapersoddisfareuncasod'uso.Untipicoservizioapplicativochiederàaunrepositorydirestituireun'aggregazioneequindidirichiamareun'azionesuquell'aggregato.
Daiun'occhiataalprogettodiesempioda IDDD di Vaughn Vernon