1 messaggio dal 26 giugno 2009
Ciao a tutti, vorrei scambiare con voi qualche parere sullo sviluppo di una classica applicazione in 3 layer.

Mi ritrovo spesso ad utilizzare nel DAL , Linq To SQL perche' mi agevola molto la vita. LinqToSql mi genera automaticamente delle entità che mappano le tabelle del mio Db. Solitamente pero' nel BL io creo nuove entity con un mapping alle entity di LinqToSql per evitare che i vari layer siano dipendenti l'uno dall'altro. E' il modo migliore? Avete altri consigli?
L'interfaccia del repository dove la mettete? Nel dal o nel Bl? Io credo che l'interfaccia faccia parte del bl, pero' in questo modo io ho una reference del bl nel Dal, e non dovrebbe esserci, creo una dll per definire le varie interfacce cosi' resta al di fuori di entrambi?

Altra cosa: in un applicazione wpf con architettura mvvm, se io ho piu' viewmodel e quindi piu' UI, come implemento l'apertura di un nuovo viewmodel da un precedente viewmodel, cercando di ridurre al minimo la conoscenza di wpf al viewmodel? Nel senso, se io in un command metto una clsse di una nuova window e poi eseguo open(), il viewmodel si ritrova ad essere consapevole e quindi strettamente legato all'interfaccia grafica... alternative?

Grazie e spero nasca una discussione costruttiva :)
Ti rispondo relativamente al problema del layering. Il concetto di repository è mutuato dal Domain Driven Design, ossia una serie di linee guida per strutturare l'architettura dell'applicazione un po' più evoluto del three layer, in cui il focus centrale dell'architettura è il domain layer, costituito da entity, value object, servizi e repository.

Quindi dove vanno le interfacce? beh, nel dominio

Se vuoi approfondire questi concetti, da' pure un'occhiata a ModelVC
http://modelvirtualcasting.codeplex.com/
o questi due ottimi libri
http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/
http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/

Ciao,
m.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.