Oggi è stato uno dei rari giorni in cui non sono
comparso sul blog.
Ho letto i post di Marco e di Giancarlo che in questi giorni sto sentendo parecchio sul mio
Messenger ("violazione di privacy, lei è arrestato, sig.
Damiani!"). Marco è veramente un mostro di data-binding:
dategli un qualsiasi object e lui ve le binderà a qualsiasi
controllo, in qualsiasi direzione e con qualsiasi capacità di
auto-aggiornamento. Di Giancarlo invece sto collaudando la mitica (ma
solo fra noi due) Janky.Validation, che questa sera è entrata
brillantemente a far parte del mio software di fatturazione. Credo che sia
possibile qualche miglioramento ("Janky, prendi la posta, ci
sono news!"), ma per adesso va bene così com'è.
Già, a proposito, cosa ho fatto oggi? A parte un impegno personale questa
mattina alle 11, ho passato l'intera giornata a sviluppare, sviluppare,
sviluppare. Oggi ho parecchio litigato con TypeDescriptor, con alcune
interfacce (ITypedList, IBindingList, IComparer) ed altro, altro codice su
typed-dataset, dataprovider, master-details, drag'n'drop. Sono un po' stanco, ho
accenni di cervicale, ma sono davvero soddisfatto. Ritengo che a parte un
piccolo bug che mi capita ogni tanto...qualcosa del tipo..."non riesco ad
ordinare due oggetti RigaFattura", mi considero a buon punto. Forse dovrei dare
una sistemata grafica, cosa che sicuramente farò, giocherellando con gli styles
della DataGridView.
Di oggi mi sono piaciute le discussioni Domain Model Vs
Table Model. Mi è piaciuto il post di Giancarlo sulle applicazioni Enterprise. Nel
mio piccolo, ho cercato di strutturare la mia applicazione secondo i classici
layer. In questo momento, la mia soluzione consta di progetti:
- FatturazioneObjects, class library
- FatturazioneDataLayer, class library
- FatturazioneValidation, class library
- FatturazioneResources, class library
- FatturazioneReports, class library
- Janky.Validation, copyright Giancarlo Sudano
- Fatturazione, Windows Application
Indipendentemente dal contesto e dalle dimensioni di un'applicazione, ritengo
che sia una buona norma quella di creare layer correttamente. Sono d'accordo con
Roberto: bisognerebbe evidenziare con colori diversi i blocchi più o
meno indispensabili, anche se poi ovviamente il tutto è opinabile. Comunque sia,
non perchè un'applicazione gira su desktop deve essere fatta diversamente. Una
buona architettura consente ad altri di capire meglio l'applicazione in sè,
consente a noi che magari la riprenderemo in mano fra 6 mesi, di ricominciare il
lavoro meglio, consente di riutilizzare codice più efficacemente. Quasi per
sfida con me stesso, ma anche nei confronti di un partecipante allo scorso
workshop di fronte a WPF, mi verrebbe voglia di misurare il tempo impiegato per
convertire questa mia applicazione per Pocket PC, oppure - appunto -
per Presentation Foundation.
Se ho scritto qualche cavolata, non arrabbiatevi troppo, oggi sono proprio
KO!