2 messaggi dal 05 marzo 2007
Ciao a tutti.

Ad agosto avendo un po' di tempo libero (e spinto anche da cio che ho sentito ai
COMMUNITY-DAY 2008 di Milano) ho provato a cimentarmi (e vedere come funziona)
Silverlight 2 Beta 2. Mi e' piaciuto veramente molto !!!

Ho provato a simulare come potrebbe essere un'applicazione gestionale (o comunque un'
applicazione che ha la necessita di leggere e scrivere dati da un data-base)

In Silverlight 2 abbiamo anche i TextBox e i DataGrid per esempio, percui posso chiamare
un servizio che mi ritorni una collezione di OrdiniTesta/OrdiniRighe.

Il problema e' che, se modifico/inserisco solo alcune cose, come faccio a far ritornare
dal servizio (che si occupa di persistere i dati) solo le cose modificate.

Percui mi e' venuta un'idea: creare un piccolo progettino (ovvero una libreria) in
cui si estendono le funzinalita della classe ObservableCollection<T> al fine di avere
una "SPECIE" di unit-of-work o comunque un qualcosa che tramite dei metodi

GetInsert()
GetDelete()
GetUpdate()
GetInsertChilds()
GetDeleteChilds()
GetUpdateChilds()

mi permettano di avere le entity inserite,annullate,modificate in un contesto master-detail.

per far cio' mi sono creato una mia classe che eredita da ObservableCollection<T> e poi
con il polimorfismo mi sono ridefinito i metodi ClearItems(),InsertItem(int index, T item),
RemoveItem(int index), etc ...

Percui niente ... lo scopo di questo post e solo dire che se a qualche persona
interessa lo puo' trovare al seguente link: http://www.codeplex.com/mastefano64
Magari qualch'uno ha un'idea migliore della mia.

OVVIAMENTE CI TENGO A PRECISARE CHE IL TUTTO E' AL MOMENTO SOLO UN GIOCO PER CUI NON ASPETTATEVI DI TROVARE CHISSA CHE COSA, MI SCUSO INOLTRE SE POSSO AVER UTILIZZATO IN MODO POCO APPROPRIATO IL TERMINE UNIT-OF-WORK ... MA NON SAPEVO COME FARE A SPIEGARE IL CONCETTO.

Ciao stefano

------------------------------------------------------------

Esistono 2 progetti:

1) SilverlightClassLibrary1 (fornisce una libreria di classi)

2) SilverlightApp01 (fornisce 2 applicazioni di prova Page1.xaml/Page2.xaml) per passare
da una all'altra devo andare nel file App.xaml.cs e nell'evento

private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new Page2();
}

istanziare la classe Page1 piuttosto che Page2.

La differenza tra le due e' che la prima usa un DataGrid senza template la seconda usa un DataGrid
con template. All'atto pratico cio' comporta una diversa gestione degli errori (del dataGrid).

stefanomarchisio

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.