Come salvare dati complessi su file / disco?

1

Sto lavorando a un progetto collaterale per un piccolo imprenditore (mio padre) e parte dei requisiti per l'applicazione includono il salvataggio dei dati relativi a clienti e lavoro in modo che possa essere facilmente sottoposto a backup e / o ripristinato su richiesta .

Ho familiarità con il modo in cui salvare i dati in un file flat e ho familiarità con il modo in cui salvare i dati in un database. Quello che sento mi manca sono le strategie "tipiche" per il salvataggio di dati come quelli descritti sopra in un file?

Ad esempio ho notato che Quickbooks ha il proprio formato di file che incapsula un'intera "attività" in un file che può essere facilmente sottoposto a backup e / o utilizzato per il ripristino. (In breve) Come è stato realizzato?

Mi sono imbattuto in database integrati come sqlExpress e mi chiedo se questo è il modo in cui le applicazioni degli utenti finali gestiscono in genere i dati o se è qualcos'altro.

In breve, come posso incapsulare una grande quantità di dati complessi in un singolo file o di un semplice tipo di dati (ad esempio .DAT / .TXT) o forse un formato di file personalizzato?

EDIT: Come un ulteriore bit di informazione vorrei evitare di dover installare un RDBMS stand-alone per salvare i dati in un database.

    
posta PseudoNym01 12.02.2015 - 21:55
fonte

3 risposte

6

Basandosi sul commento di Franck, puoi utilizzare un DataSet per salvare in XML.

Scrittura del contenuto del DataSet come dati XML

System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");

// This example assumes you have a custom dataset called ds holding customer data
ds.WriteXml(xmlSW, XmlWriteMode.WriteSchema);

xmlSW.Close();

Questo produrrà un file XML chiamato Customers.xml nella tua directory corrente che è una versione serializzata del tuo DataSet .

Dovrai anche sapere come caricare di nuovo quei dati nei tuoi oggetti ... Caricamento di un DataSet da XML

// Load the dataset from a file called input.xml
DataSet ds = new DataSet();
ds.ReadXml("Customers.xml", XmlReadMode.ReadSchema);
    
risposta data 13.02.2015 - 04:31
fonte
5

A seconda del tipo di requisiti che hai per l'applicazione che stai cercando di costruire. (Forse se sei un po 'più specifico posso aiutarti di più, altrimenti è una domanda troppo generica).

Esistono molti modi per salvare dati complessi. Ad esempio, e nominando solo alcuni modi per farlo, puoi usare un piccolo database come SQL Compact o SQLite oppure puoi semplicemente usare un normale file per salvare le informazioni. Un file CSV, un file xml o un file JSON per memorizzare la data. Ci sono molti modi per farlo, tutto dipende da ciò che stai cercando di salvare. La quantità di informazioni è grande? I dati sono in qualche modo confidenziali? In ognuno degli esempi citati puoi scegliere il formato che fa per te.

Per quanto riguarda

    
risposta data 12.02.2015 - 22:11
fonte
1

Sono su cellulare quindi abbi pazienza con me.

Questa è una passeggiata di base per la serializzazione degli oggetti.

Penso che ci siano pro e contro in entrambe le soluzioni. Devi pesarli e decidere quale è giusto per te, ma vorrei andare con un database. Direi che il mio ragionamento è abbastanza arbitrario, ma questo è esattamente lo scopo di un database. Tuttavia ...

Se avessi intenzione di utilizzare la serializzazione degli oggetti e salvare in un file, e volevo l'approccio per singolo file, avrei salvato tutto in un unico singleton. Però non sono un esperto.

    
risposta data 12.02.2015 - 22:02
fonte

Leggi altre domande sui tag