Domanda

Sto sviluppando un piccolo piano di progetto e sono arrivato al punto in cui ho bisogno di decidere quale sistema di banca dati locale utilizzare.

I dati di input verranno archiviati sul server web (hosting - MySQL DB). L'idea è quella di creare un processo per scaricare tutti i dati necessari (ad esempio a mezzanotte) ed elaborarli. Tuttavia, ci saranno molti input e fasi di elaborazione, quindi ho bisogno di utilizzare un qualche tipo di database locale per archiviare il semi-prodotto dell'applicazione

Quale sistema di database locale consiglieresti di lavorare con l'applicazione C # (.NET)?

modifica: il prodotto finale (informazioni) dovrebbe essere facilmente esportato nuovamente su Hosting MySQL DB.

Come accennato da Will nella sua risposta, sì, sono per prestazioni e comfort d'uso.

È stato utile?

Soluzione

Voglio dire Microsoft Sql 2005 Express, poiché (quasi) arriva come la scelta ovvia quando si sviluppa in .NET.

Ma tutto dipende dalle tue precedenti abilità di db. Se conosci già MySql e, come hai già detto, i dati dovrebbero essere esportati nuovamente su MySql. Perché non usare MySql fino in fondo?

Altri suggerimenti

Veloce e sporco andrei con Sql Server Compact Edition. È un'implementazione in-process di Sql Server, quindi non richiede l'installazione di altre applicazioni.

In passato, per questo tipo di cose avresti usato un database di Access. Ma accedere ai database in qualche modo.

Non ci vorrebbe molto per caricare nuovamente i dati finiti sul server di produzione. Se stai cercando una soluzione che automatizzi tale processo, probabilmente dovrai guardare l'hosting di un'istanza di MySql localmente e utilizzare qualunque servizio di replica fornisca.

Dico di andare con SQL Server Compact Edition. È molto simile alla versione completa di SQL Server e VS2008 ha un supporto integrato per la progettazione di tabelle, query ecc. (Management Studio 2008 ha anche il supporto). Il più grande svantaggio è che si perdono le procedure memorizzate, ma il lato positivo è eccezionale in quanto non è necessario installare nulla sul computer degli utenti locali e funziona molto velocemente per la selezione dei dati. Ancora più interessante, è che con SQL Metal è possibile creare un file DBML e utilizzare LINQ come si farebbe con Sql Server.

Che ne dici di usare db4o? È un OODB che puoi incorporare nella tua applicazione. Supporta inoltre la replica . Modifica: come nota a margine - Nel mio attuale progetto per animali domestici con db4o ho una linea (C # 3.5):

IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin");

Uso dell'espressione lambda tipizzata in modo forte per ottenere un (pigro) elenco di oggetti dal database. Utilizza anche gli indici per recuperare rapidamente l'elenco.

Il supporto di MS SQL Server è pronto all'uso senza che siano necessari altri driver o impostazioni. Inoltre, MS SQL Server Express è gratuito.

Puoi generare script che esporteranno i dati da / verso MySQL.

Il "ovvio" la scelta sarebbe MS SQL Server Express. VS e .net lo supportano entrambi in modo nativo e se ne hai già esperienza (per il DB principale), sarei certamente tentato di restare con esso (o la sua versione express).

Ma non è certo la fine delle tue opzioni. Uso molto SQLite per applicazioni multipiattaforma e web-app. È incredibilmente veloce e si integra abbastanza bene attraverso System.Data.SQLite - anche se non come strettamente come MS SQL Server.

Esiste anche un'edizione compatta di SQL Server che si confronta abbastanza bene con SQLite.

Scegli tutto ciò che è disponibile, ma codifica solo sulle interfacce, in questo modo puoi passare facilmente da una all'altra.

Per la produzione, direi MS SQL per progetti di grandi dimensioni (o express per livello medio) semplicemente per via della stretta integrazione con VS e Sqlite per progetti più piccoli.

Data la descrizione, penso che Sqlite sarebbe una buona scelta, poiché è il sovraccarico più semplice / più basso.

Non conosco un buon database in-process completamente sintattico e compatibile con MySQL. Con questo in mente, hai tre opzioni:

  1. Scegli qualcosa come SQLlite, Access o SQL Server Compact. Il problema è che finirai per scrivere una complessa logica di conversione con una di queste e dovrai scrivere tutte le tue domande due volte.
  2. Installa MySQL localmente. Quindi devi tollerare di avere un server di database completo in esecuzione sul tuo sistema locale. Sicuramente vuoi evitare questo per qualsiasi cosa spedirai a un cliente, ma per il tuo uso personale potrebbe essere ok. Fortunatamente, MySQL non utilizza tante risorse come altri server di database moderni, ma questo è ancora meno che ideale.
  3. Passa all'edizione SQL Server Express sul server e utilizza SQL Server Compact sul client. È economico quanto MySQL (forse anche più economico, dal momento che dovresti acquistare MySQL per qualsiasi uso commerciale). Considerando che stai usando C # sul lato client, potresti volerlo usare anche con ASP.Net sul lato server. E se si utilizza il lato server ASP.Net, non è difficile trovare un host che offra SQL Server Express. Ora i tuoi database sono compatibili con i tipi e qualsiasi query che scrivi per il tuo client è garantita anche per il tuo server.

IMO, uno dei maggiori punti di forza dello stack del database MS (escluso l'accesso) è che hanno una soluzione compatibile per tutto ciò che si sta facendo dal desktop fino ai cluster multi-datacenter. Se la scala della tua app cambia o devi spedire i dati tra due diverse classi di app, il tuo livello di database viene curato.

Ho fatto alcuni test negli ultimi tempi e anche se consiglierei anche SQL Server 2005 (Express se necessario) perché funziona immediatamente anche se SQL Server 2008 è nuovo e RTM ora.

SQL Server, come molti hanno già detto ... La mia ragione sarebbe perché puoi usare il controllo del codice sorgente per integrare i casi di test da C # al database ....

Team Foundation (TFS) è uno di questi di Microsoft con GUI ...

Dal momento che questa è già una risposta. Devo menzionare quando si lavora con i linguaggi CLR, l'integrazione CLR / .NET Framework distingue MS SQL Server 2005/2008 dal resto. Segue estratto da qui .

  

Usando lingue come Visual   Basic .NET e C #, puoi capitalizzare   sull'integrazione CLR per scrivere quel codice   ha una logica più complessa ed è di più   adatto per compiti di calcolo.   Inoltre, Visual Basic .NET e C #   offrire funzionalità orientate agli oggetti   come incapsulamento, eredità,   e polimorfismo. Puoi facilmente   organizzare il codice correlato in classi e   spazi dei nomi, il che significa che puoi   organizzare e mantenere più facilmente il tuo   investimenti di codice quando stai lavorando   con grandi quantità di codice. Il   capacità di logicamente e fisicamente   organizzare il codice in assiemi e   gli spazi dei nomi sono un enorme vantaggio   ti consente di trovare e relazionarti meglio   diversi pezzi di codice in un grande   implementazione del database.

Per quello che hai descritto, sicuramente MS SQL Server. Buone prestazioni, buoni strumenti. Libero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top