Sto cercando di creare un programma in silverlight che gestisca dei dati. So che per farlo ho la necessità di utilizzare dei WCF Data Service.
Ora ho creato una soluzione contenente un database un data model (entity framework) e un servizio WCF.
Poi ho aggiunto alla soluzione un progetto silverlight.
Ho aggiunto un riferimento al mio servizio WCF. Ma sto facendo fatica a capire come gestire i dati Utilizzando BeginExecute e EndExecute Per esempio il mio database ha 5 tabelle io per ottenere i dati di una tabella utilizzo il seguente codice TerritoriContext = New TerritoriEntities(New Uri(HtmlPage.Document.DocumentUri, "TerritoriService.svc")) Dim allTerritori = TerritoriContext.Territori allTerritori.BeginExecute(New AsyncCallback(AddressOf LocalCallBack), allTerritori)
BeginExecute e EndExecute
Per esempio il mio database ha 5 tabelle io per ottenere i dati di una tabella utilizzo il seguente codice
TerritoriContext =
New TerritoriEntities(New Uri(HtmlPage.Document.DocumentUri, "TerritoriService.svc"))
Dim allTerritori = TerritoriContext.Territori
allTerritori.BeginExecute(New AsyncCallback(AddressOf LocalCallBack), allTerritori)
Poi ho creato il metodo LocalCallBack
Dim LocalNorthwindContext As DataServiceQuery(Of Territori) = CType(result.AsyncState, DataServiceQuery(Of Territori)) DataGrid1.ItemsSource = LocalNorthwindContext.EndExecute(result).ToList Ora quello che vorrei capire è per ogni dato che voglio caricare devo creare un metodo callback? Come funziona in questo caso? Non sono molto ferrato con i metodi asicroni utilizzati su web application. Per esempio se volessi creare un programma con 5 pulsanti e che alla pressione dei pulsanti carichi la corrispondente tabella in un datagrid. Come si gestisce il salvataggio dei dati con il BeginSaveChanges? Qualcuno di voi ha qualche esempio da propormi o qualche tutorial. Vi ringrazio per il vostro aiuto!
Dim
LocalNorthwindContext As DataServiceQuery(Of Territori) = CType(result.AsyncState, DataServiceQuery(Of Territori)) DataGrid1.ItemsSource = LocalNorthwindContext.EndExecute(result).ToList Ora quello che vorrei capire è per ogni dato che voglio caricare devo creare un metodo callback? Come funziona in questo caso? Non sono molto ferrato con i metodi asicroni utilizzati su web application. Per esempio se volessi creare un programma con 5 pulsanti e che alla pressione dei pulsanti carichi la corrispondente tabella in un datagrid. Come si gestisce il salvataggio dei dati con il BeginSaveChanges? Qualcuno di voi ha qualche esempio da propormi o qualche tutorial. Vi ringrazio per il vostro aiuto!
DataGrid1.ItemsSource = LocalNorthwindContext.EndExecute(result).ToList
Ora quello che vorrei capire è per ogni dato che voglio caricare devo creare un metodo callback?
Come funziona in questo caso? Non sono molto ferrato con i metodi asicroni utilizzati su web application.
Per esempio se volessi creare un programma con 5 pulsanti e che alla pressione dei pulsanti carichi la corrispondente tabella in un datagrid.
Come si gestisce il salvataggio dei dati con il BeginSaveChanges?
Qualcuno di voi ha qualche esempio da propormi o qualche tutorial.
Vi ringrazio per il vostro aiuto!
Se l'utilizzo di WCF Data Services è una esigenza che ti sei imposto tu, ti consiglio vivamente di usare i WCF RIA Services, ti rendono la vita più semplice :).
Capisc e dotnet tu? No! E allor che parl a fà!
Ok ho notato che la cosa è molto più veloce e sopratutto semplice. Però volevo chiedere alcune delucidazioni.
Una volta creato la domain class service io mi torvo nelle origini dati della mia soluzione tutte le tabelle del mio database(file di ms sql "mdf") con le quali posso interagire come se fossero in locale. Ho notato che se con il drag e drop aggiungo un tabella sul mia page automaticamente il widzar mi crea una datagrid e un oggetto chiamato NomeTabellaDomainDataSource per caso corrisponde (anche se in senso molto lato) al classico NomeTabellaBindingSource che posso utilizzare come origine dati e per il binding? Quindi il che significa che devo crearne uno per ogni tabella con il quale interagisco?
Con i WCF RIa Service se voglio distribuire la mia sola applicazione silverlight come plug-in da aggiungere ad una pagina HTML, come posso fare ?
Se l'applicazione non è legata ad un servizio basta che distribuisco il file XAP mentre in questo caso quali sono i file da distribuire e come bisogna configurarli?
Scusate per le innumerevoli domande e Grazie per il vostro aiuto!
Associazione Culturale DotNetCampania - C.F.: 95127870632