Consiglio su un'applicazione client server con database

giovedì 24 luglio 2008 - 19.55

danielmaz Profilo | Newbie

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

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

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

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

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

ODBC? Sql server ha un driver nativo che trovi su System.Data.SqlClient

danielmaz Profilo | Newbie

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

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

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

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

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

OK, arrangiati
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