Ho cambiato idea: la prima GUI *architetturalmente* decente disponibile per il
Northwind Starter Kit sarà
web e basata su
Model View Controller, quindi nisba (per il momento)
Model View Presenter. Non solo: l'implementazione MVC sarà molto semplice, e non utilizzerà toolkit esterni; il motivo è semplice: uso NSK come applicazione reference per i miei
corsi ed
eventi/webcast, ed alla domanda "Che libri consigli per studiare le tematiche relative al
design?" rispondo sempre "Almeno
GoF e
P of EAA". Spesso, inoltre, questi testi sono già posseduti dai partecipanti. Ebbene, in [P of EAA]
Martin presenta una semplice implementazione ASP.NET di MVC, fondamentalmente basata su
Template Method.
Poichè ho necessità di disporre di questa versione della GUI già da settimana prossima, poichè la mostrerò durante il
corso OOD che erogherò presso
Microsoft Italia, questa implementazione mi offre 3 vantaggi:
- Non usando un toolkit esterno, è possibile spiegarla senza dover introdurre *anche* il tool. Ergo: guadagno tempo (che posso utilizzare per mostrare altri argomenti) e non appesantisco la spiegazione "mischiando" 2 argomenti (MVC *e* tool)
- Chiunque dovesse osservare il codice, potrebbe utilizzare il [P of EAA] come "quick reference" per la parte GUI e quindi avere uno strumento per orientarsi
- E' una buona scusa per introdurre anche Template Method :-)
Questa scelta non implica l'abbandono di MVP, che è solo rimandato. Ribadisco la mia intenzione di rendere disponibili differenti GUI implementate in modo architetturalmente e tecnologicamente etereogeneo, ma tutte insistenti sulla stessa accoppiata domain model/business logic.
In realtà i "lavori" di implementazione di MVC sono quasi ultimati (e vorrei ben vedere: mi serve settimana prossima!), e qualche giorno dopo il corso pubblicherò su sourceforge i sorgenti aggiornati cercando di recepire eventuali critiche/suggerimenti dei partecipanti al corso. Mi spiace che i tempi di aggiornamento siano così "dilatati", ma essendo l'unico sviluppatore attivo del progetto e dovendo "anche" lavorare/vivere (scegliete voi l'ordine), è difficile conciliare "qualità" (che è il mio primo obbiettivo) e "velocità". Ricordo che il progetto è sotto licenza Common Public Licence, quindi chiunque voglia contribuire sarà ben accetto :-)
P.S.: in realtà sto lavorando anche su altri fronti per evolvere NSK: security (CAS/permission), integrazione della nuova versione (ancora non pubblicata) del Validation Application Block, separazione delle classi "container" (collection/liste) da quelle "view" e l'implementazione di una Unit of Work ad uso dei DAL. Insomma... It's just a question of time (cit.)
Technorati tags: software architecture, nsk