118 messaggi dal 09 luglio 2007
salve, fino a ieri, i progetti che sviluppavo in asp.net 2.0 o >, erano progettati con il pattern n-tier(Data access layer,Business Logic layer,Presentation),oggi il mio capo mi ha detto che dovremo iniziare a progettare con il pattern MVC, che io conoscevo,ma non avevo mai intrapreso seriamente(cioè in progetti reali).

Su internet,voi lo sapete meglio di me, ci sono miliardi di articoli sull'argomento,però non sono riusciuto a distinguere bene la differenza tra il pattern che io utilizzavo e il mvc.

Per cercare di spiegare,che cosa mi manca da capire, vi faccio un esempio:

nella classe DataAccessLayer io solitamente,mettevo la mia classe dataaccess e lì impostavo i miei metodi per gestire la connessione,l'estrapolazione di query etc..(utilizzando anche ultimamente Linq To SQl),

Nella classe Business Login Layer, prendevo i metodi della classe dataaccesslayer e inoltre facevo i relativi controlli di vario genere,impostando anche la sqlcachedependency per poter sfruttare al meglio le performance.

Infine creavo la mia presentazione richiamando i metodi del business logic layer che fa da tramite tra il DataAccessLayer e la Prentetion.


Adesso, in MVC, che cosa cambia da questo sistema?Il Model ho capito che sarebbe il corrspettivo Data Access Layer, Il view è il corrispettivo della Presentation,ma il Controller che cosa sarebbe il Business Logic Layer?

Spero mi possiate illuminare.

Grazie ancora
sanfra1976 ha scritto:
Il Model ho capito che sarebbe il corrspettivo Data Access Layer, Il view è il corrispettivo della Presentation,ma il Controller che cosa sarebbe il Business Logic Layer?

Non esattamente. Volendo fare un'analogia con un 3-layer (o n-layer, cambia poco) diciamo che il presentation layer tipicamente usato dalle web forms viene ulteriormente separato in due livelli: view e controller, mentre il model contiene/utilizza gli strati sottostanti (tipicamente business logic e data access). Se ci pensi bene non è così assurdo suddivedere il presentation layer in due parti perché un conto è produrre un output html, un altro è processare l'input dell'utente (url, parametri in get/post, ecc.); la separazione tra markup e codebehind offerta dalle web form di asp.net non è da questo punto di vista sufficiente perché mantiene questi due aspetti ancora troppo coesi. Il maggior vantaggio di MVC è proprio la separazione tra view e model, ovvero tra logica applicativa vera e propria e visualizzazione dei dati.
Questo per parlare di pattern in senso astratto, se invece ci riferiamo all'implementazione di MVC per ASP.NET abbiamo una serie di altri vantaggi (e qualche svantaggio) rispetto all'uso delle web forms, a partire dal controllo completo dell'html generato.
HTH

Update: dimenticavo di aver affrontato l'argomento anche nel blog, prova a dare una lettura a questo: http://blogs.aspitalia.com/matteo/post2318/3Tier-3Layer-MVC-Cosa.aspx
Modificato da m.casati il 01 luglio 2009 20.22 -

Matteo Casati
GURU4.net
118 messaggi dal 09 luglio 2007
Grazie, adesso mi è tutto più chiaro
Bene. Segui le indicazioni e passa a MVC, non te ne pentirai

Matteo Casati
GURU4.net

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.
In primo piano

I più letti di oggi

Media
In evidenza
MISC