Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

Un business object deve sapere come essere visualizzato?

Ho cominciato a scrivere questo post mentre la mia connessione Web va e viene.  Ieri sera, mentre io e mio fratello discutevamo su perchè una classe va scritta in un certo modo, su come implementare un domain model, su perchè è meglio creare proprie classi custom per fare determinati lavori, ho avuto un sussulto.

Marco ci ha detto poco tempo fa come implementare l'interfaccia ITypedList su una custom collection per comunicare al FX come questa collection deve essere bindata ad una DataGridView (DGV). Implementare questa interfaccia significa sostanzialmente scrivere due metodi pubblici, che il FX esegue la prima volta che viene richiesto il binding della custom collection. In uno di questi due metodi, GetItemProperties, dobbiamo semplicemente ritornare un oggetto PropertyDescriptorCollection che rappresenta l'elenco di property (colonne) che vogliamo mostrare sulla DGV. Quindi, possiamo rimuovere colonne che non ci servono, riordinarle a piacimento, e così via.

Il tutto è tecnicamente corretto, ma c'è una questione di approccio che non mi convince. Con la ITypedList, infatti, doniamo ad un business object la capacità di auto-descriversi verso gli altri, spiegando a chiunque lo richieda come deve essere mostraro. L'abbiamo detto prima: quando il FX deve bindare la custom collection sulla DGV, prima le chiede cosa mostrare e come mostrarlo.

Sono però convinto che questa capacità debba essere slegata dal business object, perchè un certo oggetto può innanzitutto mostrarsi con modalità diverse, a seconda del contesto, oppure, molto più grave, a seconda della UI che stiamo sviluppando. Un oggetto non deve per sua natura sapere come verrà mostrato, perchè il come dipende dal dove, ed un business object non è in alcun posto, esiste e basta. Il dove viene determinato da altri fattori, dalla UI che stiamo creando (WinForms, Web, Mobile, WPF), dallo scenario in cui ci troviamo all'interno dell'applicazione (una vista contabile mostra contenuti fortemente diversi da altre viste), oppure dalle impostazioni personalizzate dell'utente corrente (l'utente IDamiani può ad esempio decidere di non vedere una certa colonna).

Quindi, è vero che la custom collection deve implementare ITypedList, ma l'implementazione spetta ad un'altra classe di supporto, che può cambiare in base ai fattori di cui ho parlato prima.
Il tutto, very very IMHO.

powered by IMHO 1.2

Print | posted on martedì 4 aprile 2006 14:34 | Filed Under [ Tecnologia ]

Feedback

Gravatar

# Keflex.

Keflex.
05/03/2010 07:14 | Side effects of keflex.
Gravatar

# Keflex.

What is keflex used for. Allergy keflex.
14/03/2010 06:00 | Keflex.
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET