Problema Data Table ed invio dello stesso

martedì 12 maggio 2009 - 18.31

giamisan Profilo | Newbie

Ciao a tutti, mi trovo a dover risolvere un problema piuttosto strano (credo) e per questo vi chiedo un consiglio.

Sto sviluppando una applicazione chat client - server. Il mio PC funge da Server mentre un altro/i fungono da client.
Lo scopo della mia applicazione è dare la possibilità al client di vedere i dati del server, è una cosa un po' strana però in sostanza sul server vi è un programma che può essere eseguito solo ed esclusivamente su quel pc.

Tramite delle stringhe di testo ad hoc la chat client effettua delle richieste alla chat server la quale dopo averle codificate effettua a sua volta delle richieste, utilizzando delle API, al server del programma che può essere eseguito solo sul mio pc.

Parliamo ora solo della chat client.
A seconda delle richiesta che essa fa al server tramite le API può ricevere una stringa di testo (nel caso in cui la risposta dal server contenga una sola parola/record) oppure un array (caso in cui la risposta dal server contenga più di un record)

Nel primo caso, non ho nessunissimo problema ad inoltrare tramite la chat server la stringa di testo alla chat client.
Se invece il server mi risponde con un Array allora immagazzino tutti i dati in un oggetto DataTable per poi inviare questi dati alla chat client che a sua volte li elabora.

Ora, secondo voi, esiste un modo per passare tramite LAN un oggetto DataTable?
Nel caso in cui questo non fosse possibile,cosa che temo, come mi consigliereste di risolvere il problema cercando di non stressare troppo il PC ma soprattutto di rendere il tutto il più veloce possibile?

Grazie mille a tutti
Giacomo

Jeremy Profilo | Guru

Ciao Giacomo.
>Ora, secondo voi, esiste un modo per passare tramite LAN un oggetto DataTable?
No.
>Nel caso in cui questo non fosse possibile,cosa che temo, come mi consigliereste di risolvere il problema cercando di non stressare troppo il PC ma soprattutto di rendere il >tutto il più veloce possibile?
Utilizza un Dataset.

Facci sapere...
Ciao

giamisan Profilo | Newbie

Ciao, allora innanzitutto scusa per la tardiva risposta, ma tra che ho voluto perfezionare bene la compilazione dei dati nel Dataset e tra che ho provato diverse strade, ho preferito scrivere quando ero certo di cosa avrei detto.

Partendo dal presupposto che non sono una cima in programmazione, già la tua idea del dataset mi è stata molto molto utile però ho poi avuto il problema di come inviarlo e leggendo libri qua e la avevo optato per l'invio del dataset tramite webservice. Però poi il problema era fare il webservice!!
Ieri poi, parlando con un amico, mi ha dato una idea che ho messo in pratica e devo dire essere parecchio performante. In sostanza lui mi ha detto che non essendo una grossa mole di dati e non avendo il client la necessita di modificare tali dati forse sarei riuscito a risolvere il tutto in un modo leggermente diverso e più semplice.
In sostanza mi ha detto di salvare sul PC server il Dataset in un file xml con il classico metodo WriteXml.
Dopodiche, implementare sul client la classe FIleSystemWatcher che punta sulla directory del server. A questo punto, quando si scatena l'evento Change del FileSystemWatcher creare il dataset sul client e riempirlo tramite il metodo ReadXml.
Ci ho messo veramente 2 minuti a fare il tutto e devo dire che è piuttosto performante se si considera il fatto che i due pc non fanno parte di una rete locale e che quindi i dati viaggiano su internet. Devo solo apportare delle modifiche per gestire le eccezioni poichè l'evento Change viene intercettato in tempi pressochè fulminei, talmente tanto veloci che quando viene intercettato il file è ancora in scrittura!!!

Jeremy Profilo | Guru

Ottimo.
Se hai bisogno ..... siamo qui.

Ciao.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5