2012-07-14 5 views
9

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.Devo installare SQL Server su ciascun client se il mio software lo usa?

Allo stesso modo, se stiamo realizzando un'app in VC2008, è sufficiente disporre del runtime di Visual C++ 2008 (disponibile gratuitamente da MS Site, circa 4-5 Mb). Quindi, in pratica, abbiamo solo bisogno dell'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 perché funzioni?

Inoltre, una cosa in più, vedo che c'è un'edizione Express di SQL Server, che posso presumibilmente utilizzare 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 sono non supportato in Express Edition? (diciamo numero di database, o connessione simultanea o altro).

Quindi? 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: In caso questo è di alcun aiuto, il mio progetto attuale è un sistema di gestione della biblioteca e sarà installato il client (il computer del bibliotecario per il quale sto facendo questo), quindi non c'è caso di server-client qui. Quindi dovrei installare sql express sul suo computer? Inoltre, come indicato nella sua risposta come YvesR, tale collegamento mostra solo tre edizioni (principali), ma http://msdn.microsoft.com/en-us/library/cc645993%28v=SQL.110%29.aspx mostra un confronto più dettagliato. Quindi, in questo particolare scenario che ho appena descritto, sarebbe sufficiente se ho appena distribuito ed espresso l'edizione sulla macchina del cliente?

Ora, per quello che ho detto a proposito di alcune funzioni non sono disponibili in edizione espressa, http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx#CrossBoxScale spettacoli che Express Edition è limitato a un database di dimensioni 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 edizioni, Compatto e Sviluppatore, so di sviluppatore ma che cos'è questa edizione compatta? E, ancora più importante, perché questi non sono in arrivo o elencati here?

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!

+0

L'edizione * Developer * - come suggerisce il nome - è consentita solo legalmente ** in fase di sviluppo ** - non è consentito utilizzarla in produzione. –

+0

Se si tratta di un sistema per una sola persona, sono abbastanza sicuro che sarà difficile superare la dimensione del database da 4 GB per SQL Server Express fino alla versione 2008 e con SQL Server 2008 ** R2 ** (e 2012), quella dimensione è stata aggiornata a ** 10 GB ** - che dovrebbe essere abbastanza! –

+0

@marc_s Merda! È 4 GB in SQL 2008? WTF? Ad ogni modo, non lo supererò in uno scenario per singolo utente, ma nel caso avessi bisogno di grandi dimensioni e non potessi avere una configurazione client-server, allora cosa? E qual è questa edizione compatta menzionata nel link che ho dato? È solo per il 2012, o anche disponibile per il 2008? – Razort4x

risposta

6

Se si utilizza un database di SQL Server a persistere i dati nell'applicazione è necessario

a. 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 è possibile utilizzare l'edizione di SQL Server Express o solo un MSDE (Desktop Edition).

Vedere per ulteriori dettagli, ad es. questo post sul blog http://searchsqlserver.techtarget.com/tip/SQL-Server-2005-Express-vs-Desktop-Engine-MSDE o google per esso, un sacco di 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 potete vedere qui: http://www.microsoft.com/sqlserver/en/us/editions.aspx, non ci dovrebbe essere una funzione che si utilizza che non è disponibile per un'applicazione desktop imho.

+4

MSDE era la versione di SQL Server ** 2000 ** di "Express", davvero. Dal 2005 in poi, si chiamava * SQL Server xxx Express * –

+0

@marc_s Ci sono più versioni di "YvesR" descritte. Ho aggiornato la mia domanda, inclusa quella, e ho aggiunto ulteriori dettagli sul mio lavoro attuale, vediamo se puoi dare di nuovo un'occhiata! – Razort4x

+1

@ Razort4x 10 GB di dati sono molti. Ho database in esecuzione con 4500 utenti per un sistema di gestione della qualità e dopo 4 anni di utilizzo è ancora circa 1 GB. Dipende dalla tua applicazione di c, ma se non ti muovi in ​​binario, la tua applicazione dovrebbe andare bene. E sì, ti suggerisco di usare una versione di SQL Express senza configurazione GUI per il tuo progetto. – YvesR

2

Non è necessario alcun tempo di esecuzione del 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 delle opzioni libere client, ad es. SQL Server Express o SQLite.

+0

@Okay, ma che cos'è questa versione compatta e perché non è elencata http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx, ma è elencata http: // www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx. ps: ho aggiornato la domanda per riflettere il mio attuale requisito! – Razort4x

3

OK, facciamo un po 'di backup.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 collegare ciascun client a un database centrale, non è necessario alcun componente di runtime diverso dalle librerie core .net.

+0

Controlla la domanda, ho aggiunto i miei requisiti attuali e altri dettagli. – Razort4x

1

Qui ci sono due modi per le applicazioni Windows:

  1. applicazione desktop che verrà utilizzato da ogni cliente separatamente, senza l'assegnazione di 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, installare SSMS e collegare il 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.

Problemi correlati