Quali sono le opzioni più comuni per l'archiviazione dei dati nelle applicazioni desktop?

4

Quando lavoravo come progettista / ingegnere di siti web, utilizzavo principalmente database per l'archiviazione di gran parte dei miei dati dinamici. È stato molto facile e comodo usare questo metodo e mi è sembrata una pratica standard dalla mia ricerca sull'argomento. Ora sto lavorando per spostarmi dai siti web alle applicazioni desktop. Quali sono le migliori pratiche per l'archiviazione dei dati per le applicazioni desktop? Chiedo perché ho notato che la maggior parte dei programmi che uso a livello personale non sembrano utilizzare un database per l'archiviazione dei dati a meno che non sia incorporato nel programma.

Non sto pensando ad un'applicazione come un word processor dove ha senso avere i dati memorizzati in singoli file come definito dall'utente. Piuttosto sto pensando a qualcosa di più sulla falsariga di un'applicazione di calendario che avrebbe bisogno di memorizzare le date e le informazioni sugli eventi e simili in cui l'accesso a tali informazioni sarebbe molto più facile se memorizzato in un database ... almeno per quanto riguarda la mia esperienza indicare.

    
posta Kenneth 06.03.2011 - 02:28
fonte

2 risposte

9

SQLite o altri database incorporati sono comuni per le applicazioni client. XML / Registro di sistema per le impostazioni (in Windows). Le applicazioni server utilizzano motori di database completi proprio come le applicazioni web, ma MySQL è meno comune.

Questa è una generalizzazione: ci sono molte possibilità di archiviazione.

    
risposta data 06.03.2011 - 02:48
fonte
1

I dati possono essere archiviati in molti formati. L'approccio al database relazionale è ovviamente uno di questi. Tuttavia, alcuni fornitori potrebbero voler evitare le impostazioni ODBC e i problemi OLEDB, nonché i problemi di connettività con i database relazionali regolari. Alcuni fornitori scelgono di utilizzare i propri sistemi di "database" (alcuni di questi sono basati sul metodo di accesso sequenziale indicizzato ISAM Wiki-ISAM ).

Alcune applicazioni usano i file diretti e alcuni possono scegliere di usare file sequenziali (CSV o altro) / binari. Poiché la maggior parte delle applicazioni personali ha un numero ridotto di righe di dati, è facile leggere l'intero dato in memoria e utilizzare matrici, LINQ, DotNet ADO e molti altri metodi simili per accedere ai dati in memoria.

La best practice dipende da molti fattori come il linguaggio di programmazione, la necessità di proteggere lo schema, la necessità di proteggere i dati, la registrazione, il rollback della transazione, ecc. Ad esempio, l'uso di un database relazionale sul client potrebbe esporre lo schema che è qualcosa che potresti non voler fare. D'altra parte, se si utilizza un file sequenziale, potrebbe non essere possibile utilizzare direttamente uno strumento di reporting.

Preferirei un database relazionale se potessi convivere con gli svantaggi come esporre i dati ed esporre lo schema all'utente finale.

    
risposta data 25.01.2012 - 22:13
fonte

Leggi altre domande sui tag