Devo installare SQL Server su ciascun client se il mio software lo usa?

Se sviluppiamo software in C # (o in pratica .Net), non installiamo Visual Studio su nessun client. Il cliente deve solo aver richiesto .Net framework (1.0, 1.1, 2.0, 3.0 ecc.) Installato e siamo a posto.

Allo stesso modo, se stiamo realizzando un’app in VC2008, ha solo bisogno del runtime di Visual C ++ 2008 (disponibile gratuitamente da MS, circa 4-5 Mb). Quindi, fondamentalmente, abbiamo solo bisogno di un ambiente di runtime . ma non esiste alcun runtime di SQL Server 2008 (o non ne sono a conoscenza?).

Quindi, la mia domanda è se il mio software utilizza SQL Server 2008, quale runtime (o qualsiasi altra cosa) sarà richiesto sul lato client affinché funzioni?

Inoltre, un’altra cosa, vedo che c’è una Express Edition di SQL Server, che posso presumibilmente usare nella distribuzione, ma sembra un po ‘pesante sapere che se il mio software se solo 5, 10 o 20 Mb ho bisogno di installare su un concerto solo così l’utente può eseguirlo

Infine, se sto utilizzando SQL Server 2008 Developer Edition (quale sono, o un’azienda non ne sono sicuro) e ho installato SQL Server Express sul client, non causerebbe alcun problema se il mio software utilizza alcune funzionalità che non sono supportate in Express edizione? (diciamo numero di database, o connessione simultanea o altro).

Così? Quale runtime è necessario per questo? E se l’installazione di SQL Server Express è l’unica opzione, cosa succede se sto usando alcune funzionalità che non sono supportate in Express Edition? Sicuramente, non posso continuare a fare un’installazione completa di edizione per sviluppatori su ciascun client!

EDIT: nel caso questo sia di qualche aiuto, il mio attuale progetto è un sistema di gestione della libreria, e verrà installato il client (il computer del bibliotecario per il quale sto facendo questo), quindi non c’è alcun caso di client-server qui . Quindi dovrei installare sql express sul suo computer? Inoltre, come sottolineato da YvesR nella sua risposta, quel link mostra solo tre edizioni (principali), ma http://msdn.microsoft.com/en-us/library/cc645993%28v=SQL.110%29.aspx mostra confronto più dettagliato. Quindi, in questo particolare scenario che ho appena descritto, sarebbe sufficiente se ho appena distribuito ed express l’edizione sulla macchina del cliente?

Ora, su ciò che ho detto su alcune funzioni che non sono disponibili in Express Edition, http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx#CrossBoxScale mostra che l’edizione Express è limitata ad un database di dimensione 10Gb, ora so che è più che sufficiente nello scenario che ho descritto sopra, ma cosa succede se in qualche altro caso ho bisogno di più? Che Express Edition non lo farà, di come dovrei distribuire?

Infine, http://www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx mostra altre due versioni, Compact e Developer, conosco gli sviluppatori ma cos’è questa edizione compatta ? E, cosa ancora più importante, perché questi non sono messi in rilievo o elencati qui ?

Modifica 2: Il suo 4Gb, il limite, non 10Gb. 10 GB è in SQL Server 2008 R2 Express e versioni successive, 4 GB in SQL Server 2008 Express.
marc_s: Grazie per quello!

Se si utilizza un database SQL Server per mantenere i dati nell’applicazione necessari

un. infrastruttura client-server in cui il client si connette a un server SQL centrale tramite LAN

b. o utilizzare una versione del server sql installata dal client (che è ciò che si vuole supporre). Per questo è ansible utilizzare l’edizione di SQL Server Express o solo un MSDE (Desktop Edition).

Vedi per maggiori dettagli, per esempio questo post del blog http://searchsqlserver.techtarget.com/tip/SQL-Server-2005-Express-vs-Desktop-Engine-MSDE o google per esso, molte informazioni dalla MS stessa su MSDE.

EDIT: Dal 2012 non c’è più MSDE, ma SQL Server 2012 Express offre una modalità come MSDE. Vedi qui: http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

E come puoi vedere qui: http://www.microsoft.com/sqlserver/en/us/editions.aspx , non dovrebbe esserci una funzione che usi che non è disponibile per un’applicazione desktop imho.

OK, facciamo un passo indietro. Avete un requisito per ciascuno dei vostri client software per avere il proprio database locale? Se questo è il caso ci sono modi molto più semplici di memorizzare i dati sul client (suggerirei la serializzazione per archiviare come un unico approccio).

Se il tuo requisito è quello di avere ogni client connesso a un database centrale, allora non hai bisogno di componenti di runtime diversi dalle librerie core .net.

Non è richiesto alcun runtime client per l’accesso al database oltre al framework .NET installato (che è comunque necessario per tutti gli eseguibili .NET).

Se si desidera che il database risieda sullo stesso computer in cui le opzioni libere del client sarebbero ad esempio SQL Server Express o SQLite.

Ecco due modi per le applicazioni Windows:

  1. Applicazione desktop che verrà utilizzata separatamente da ciascun client senza assegnare un computer come server. Devi solo installare SSMS e l’applicazione per i tuoi clienti. Le operazioni di aggiornamento / cancellazione / inserimento verranno eseguite separatamente.

  2. Approccio Client-Server, installazione di SSMS e collegamento del DB su un computer. Questo computer servirà i tuoi clienti come server. Quindi installare il file exe su qualsiasi computer client, assicurarsi che i client siano connessi al server utilizzando l’IP.