Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Consiglio su un'applicazione client server con database
giovedì 24 luglio 2008 - 19.55
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
danielmaz
Profilo
| Newbie
21
messaggi | Data Invio:
gio 24 lug 2008 - 19:55
Salve ragazzi, è da poco che mi cimento in applicazioni con database SQLite.. vi spiego il mio problema.
Ho realizzato per un ufficio un'applicazione che utilizza i database localmente in una directory, ora il mio problema è che devo realizzare la stessa applicazione client/server. Non avendo mai fatto nulla del genere vi chiedo in che modo posso realizzarla? Vorrei fare che sul server di questo ufficio ci sia il database e che i vari client possano fare query al server sia di inserimento sia di visualizzazione.
Qualcuno ha già qualche codice client\server da postare per questo scopo?
Grazie a tutti in anticipo per le vostre risposte.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
gio 24 lug 2008 - 21:26
Sqlite è nato per essere un database "personale" (se non privato).
Ho sentito che sono stati fatti degli esperimenti per renderlo multiutente ma il link che avevo ora è sparito.
Usa sql express che è meglio :D
danielmaz
Profilo
| Newbie
21
messaggi | Data Invio:
gio 24 lug 2008 - 21:54
Ciao Cteniza,
ti ringrazio per il consiglio, vedrò di usare SQL Express ma il mio problema rimane come realizzare quanto detto prima
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
gio 24 lug 2008 - 22:24
Intanto fai un'applicazione che usa sql server, alla gestione della concorrenza ci penserai più tardi.
Ovvero, sviluppa un prototipo molto seplice che fa le cose basilari giocaci un pò da diverse postazioni tentando di fare la stessa cosa contemporaneamente, impara dalle segnalazioni e dagli errori che scopri.
Con sql server io aggiungerei, per la gestione della concorrenza, un campo di tipo timestamp a tutte le tabelle.
danielmaz
Profilo
| Newbie
21
messaggi | Data Invio:
gio 24 lug 2008 - 23:09
Quindi ovviamente sul loro pc che farà da server devo installarci sqlserver e vorrei invece evitare di fare un'applicazione che funzioni solo se sul server è installato sqlserver perchè probabilmente questo programma andrà anche in altri uffici e la gente non capendoci niente di queste cose non si metterà a installare quì e là troppe cose. Per questo vorrei realizzare un client/server semplice dove l'applicazione server funzioni senza dover installare niente e che restituisca le query ai client che fanno la richiesta.
Ho cercato qualcosa su google e ho letto di ODBC, ma questo mi è sconosciuto.. come funziona? devo installare cose aggiuntive sul server per poter funzionare?
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
gio 24 lug 2008 - 23:21
ODBC? Sql server ha un driver nativo che trovi su System.Data.SqlClient
danielmaz
Profilo
| Newbie
21
messaggi | Data Invio:
gio 24 lug 2008 - 23:40
OK perfetto, ma il problema è che devo comunque installare sqlserver per far funzionare l'applicazione, mentre SQLite legge da un file .db senza installare niente. Si può far leggere un file .db anche con sqlclient senza installare sqlserver sul pc dove verrà eseguita l'applicazione?
Boh, scusate per tutta sta confusione ma come dicevo prima è la prima volta che mi cimento in queste cose e vorrei capirci meglio.
gabriel81
Profilo
| Junior Member
194
messaggi | Data Invio:
ven 25 lug 2008 - 09:26
Se ho capito quello che vuoi intendere:
I database relazionali come SQLServer, MySQL, Oracle ecc ecc non solo vanno installati, ma vanno anche mantenuti e gestiti.
Si utilizzano quando, oltre ad avere una mole di dati consistente(discorso performance), sono necessarie delle funzioni particolari come stored procedure(SQL scritto nel db ed eseguito dal db), supporto alle transazioni ecc ecc
E' impossibile avere la portabilità di un file piatto come un .db3 od un .mdb da un Database vero e proprio come quelli citati sopra.
Tuttavia ti danno più prestazioni e funzioni.
Quindi, o scegli un file piatto e ti accontenti delle sue funzionalità sfruttandole al massimo, o scegli un db serio, che ti da tante soddisfazioni ma ovviamente del lavoro in più.
Non ci giurerei, ma forse le ultime versioni di Access dovrebbero avere un qualche minimo supporto alle transazioni; quello di cui sono certo e che con gli mdb puoi getire le relazioni, le integrità referenziali ed avere comunque delle prestazioni più che decorose.
Ultima parentesi: installare un db relazionale come SQL Server o MySQL (lasciamo stare Oracle a quei pochi fortunati che possono lavorarci...) significa poter vendere MOLTA consulenza che diversamente con access non potresti vendere!!! (vallo a spiegare ai clienti...........)
Spero di esserti stato in qualche misura utile
danielmaz
Profilo
| Newbie
21
messaggi | Data Invio:
ven 25 lug 2008 - 15:08
Ciao gabriel, sei stato molto chiaro.
Questa è una applicazione che dovrò dare a degli uffici e sicuramente non potrei andare in ogni ufficio a installare mysqlserver, oracle etc.. uscirei pazzo, quindi la mia applicazione deve poter funzionare client\server con file piatti .db3.
Proprio stanotte ho letto del .NET Remoting che permette di eseguire dal client metodi sul server, ho scaricato un sacco di esempi ma c'ho capito poco di come funziona.. qualcuno sà illuminarmi?
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 25 lug 2008 - 15:16
Sicuramente hai fatto un pò di confusione, tanto da non sapere neanche che cosa consiste client/server (cosa che ripeti in continuazione).
Una revisione al tuo concetto di client server:
http://it.wikipedia.org/wiki/Client-server
.db3 (sqlite) NON va in client server e neanche può essere condiviso come i file di access, rassegnati!
Il server SQL si installa UNA VOLTA SOLA nel server, appunto, i client (la tua applicazione che usa il server) va installata su ogni pc o in una cartella condivisa (sconsigliato comunque fattibile).
danielmaz
Profilo
| Newbie
21
messaggi | Data Invio:
ven 25 lug 2008 - 18:48
Senza commentare la tua arroganza ti rispondo comunque in maniera educata perchè lo sono sempre stato.
Sò benissimo cos'è un'applicazione client\server e secondo me prima di fare queste 'sparate' dovresti informarti tu.
".db3 (sqlite) NON va in client server e neanche può essere condiviso come i file di access, rassegnati!"
NON E' VERO!!! Ho appena fatto una prova con dei client che leggono un .db3 da una cartella condivisa su un'altro pc, e prima di fare degli inserimenti controllano che il file non sia attualmente occupato da qualche altro client... e FUNZIONA!
Ripeto in continuazione client\server perchè è quello che voglio realizzare.. o forse la tua arroganza ti offusca il cervello e non te lo fà capire?
Eppure è semplice come concetto.. un applicazione server che riceve una query dai client e che ritorna il risultato al client giusto che ha fatto la richiesta, senza dover far condividere cartelle e cose del genere.
Sarai anche guru ma non lo dimostri... quindi fammi il piacere di non rispondermi più perchè preferisco parlare con persone più umili e educate oltre che competenti.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 25 lug 2008 - 19:15
OK, arrangiati
Torna su
Stanze Forum
Elenco Threads
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 !