Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C# VS 2005]Applicazione Client/Server

    Salve ragazzi, sono qui a chiedervi un consiglio su quale strada seguire
    per realizzare il seguente progetto.
    Ho un db Access con una ventina di tabelle tutte relazionate tra di loro
    alcune delle quali contengono migliaia di records.
    Tale db si trova su un pc remoto.
    Devo realizzare una windows application (visual studio 2005 - C#) che
    deve essere in grado di leggere e scrivere dal suddetto db;insomma
    si deve comportare come se avesse talele db in locale.
    Naturalmente questa windows application sarà usata da + persone
    in diverse locazioni e ogn'una di esse legge e scrive sul db.
    Quello che ho pensato io è utilizzare un dataset tipizzato
    che derivi dal database in questione e le windows application
    leggono dal dataset lo modificano eventualmente e tramite un web services
    si aggiorna il database in remoto.
    Il mio dubbio è: tale soluzione va bene anche se si ha a che fare con un
    db di medie dimensioni?
    Riesco velocemente a creare un dataset tipizzato a partire dal db popolarlo
    con i dati e salvarlo sul client?
    Naturalmente se avete degli esempi (link ecc..) da mostrarmi che ben
    vengano.
    Cosa mi consigliate?
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  2. #2
    situazione analoga ad un progetto su cui sto lavorando. unica differenza è la presenza di sql server e non access. perchè non pensi a migrare da access a sql server 2005 express (versione non a pagamento e sicuramente più performante)?

    come pensavi di portarti in locale sul singolo client il dataset su cui lavorare? sempre via web service? io ho fatto così. considera comunque la situazione in cui più client vanno a modificare i dati in contemporanea. cosa succede al tuo db? devi gestirti la concorrenza una volta che i dati sono stati modificati localmente nel dataset e inviati per il commit al server? oppure ogni client lavorerebbe su un subset di dati che potresti scaricare di volta in volta senza problemi di sovrapposizione delle modifiche? la storia dei dataset è simpatica, però nel mio caso ho scelto le chiamate singole al webservice per l'aggiornamento della base dati remota
    no pain no gain!

    ricordati che hai dei limiti...

  3. #3
    Originariamente inviato da nogovoia
    situazione analoga ad un progetto su cui sto lavorando. unica differenza è la presenza di sql server e non access. perchè non pensi a migrare da access a sql server 2005 express (versione non a pagamento e sicuramente più performante)?

    come pensavi di portarti in locale sul singolo client il dataset su cui lavorare? sempre via web service? io ho fatto così. considera comunque la situazione in cui più client vanno a modificare i dati in contemporanea. cosa succede al tuo db? devi gestirti la concorrenza una volta che i dati sono stati modificati localmente nel dataset e inviati per il commit al server? oppure ogni client lavorerebbe su un subset di dati che potresti scaricare di volta in volta senza problemi di sovrapposizione delle modifiche? la storia dei dataset è simpatica, però nel mio caso ho scelto le chiamate singole al webservice per l'aggiornamento della base dati remota


    Uso Access perchè si tratta del pacchetto base di Aruba.
    Ho pensato di usare il web service sia per recuperare il dataset
    aggiornato dal db sia per l'aggiornamento del db.
    In effetti non so se la soluzione migliore sia quella di fare le modifiche
    sul dataset e poi passare il nuovo dataset al web service e fonderlo con
    il db, o effettuare le insert, update e delete con delle singole
    chiamate a metodi del web service.
    Tu ha detto che hai preferito fare delle singole chiamate al
    webservice per l'aggiornamento della base dati remota...cioè la
    seconda soluzione che ho menzionato sopra?
    E per leggere i dati chiami cmq un metodo che ti ritorna un dataset?
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  4. #4
    ho optato per la seconda soluzione, aggiornamenti singoli via ws, perchè contemporaneamente vado a gestirmi dei log durante gli insert/update/delete, cosa che con l'invio del ds parziale modificato sarebbe stato più rognoso (ok... non c'avevo voglia/tempo di vederlo più approfonditamente... )

    per avere il ds localmente prima richiedo un ticket di download preso dalla proprietà DateTime.Now.Ticks che mi permette di avere un valore univoco ed evito richieste contemporanee di download e preparo il dataset riempiendolo con le query specifiche. lo salvo in xml sul server e lo zippo per avere un download più veloce sul client.
    il download viene fatto progressivamente da un backgroundworker sul client

    ho preso spunto da codeproject

    tutti le chiamate al ws sono asincrone in modo da non bloccare l'interfaccia del client
    no pain no gain!

    ricordati che hai dei limiti...

  5. #5
    io sto realizzando un applicazione analoga, con VB.NET e postgreSQL come DBMS, ma a cosa li usate i web service? io mi collego direttamente al db senza utilizzare nessun service, attraverso iporta, che vantaggi avete ad usare un web service?
    I database... la mia passione + o -

  6. #6
    Originariamente inviato da power.mobile
    io sto realizzando un applicazione analoga, con VB.NET e postgreSQL come DBMS, ma a cosa li usate i web service? io mi collego direttamente al db senza utilizzare nessun service, attraverso iporta, che vantaggi avete ad usare un web service?
    tu hai il database direttamente esposto su internet?
    no pain no gain!

    ricordati che hai dei limiti...

  7. #7
    Originariamente inviato da power.mobile
    io sto realizzando un applicazione analoga, con VB.NET e postgreSQL come DBMS, ma a cosa li usate i web service? io mi collego direttamente al db senza utilizzare nessun service, attraverso iporta, che vantaggi avete ad usare un web service?

    Con Access non credo si possa fare.
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  8. #8
    tu hai il database direttamente esposto su internet?
    bè no... infatti domandavo proprio per capire a cosa serviva usare un web service... il mio dbms è su un server situato negli uffici della ditta in cui lavoro... grazie
    I database... la mia passione + o -

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.