Studente di Ingegneria del software di secondo anno qui. Voglio creare un sistema di gestione file per un'applicazione di notetaking C #, ogni nota sarà rappresentata da un file e mostrerà una piccola anteprima di esso, inoltre tutte le note dovrebbero essere interrogabili, riordinabili e modificabili, l'intero sistema dovrebbe essere portabile anche ad altre piattaforme.
Ho dovuto abbandonare un'implementazione semplice basata sul file system anche se potrebbe essere semplice e affidabile, l'esecuzione di query, la modifica e l'anteprima devono essere eseguite tramite il sistema operativo autonomamente e quindi aggiornate nell'interfaccia utente, rendendo l'app più dipendente e radicato alla sua piattaforma, il caricamento dell'intero file non è altrettanto favorevole al ricorso (c'è sempre storage.getfilesAsync ma non fornisce molto più di un elenco di percorsi)
Il prossimo passo logico è stato quello di guardare SQLite, mentre sicuramente ha tutti gli strumenti di gestione che volevo mi sembra un overkill ed è una soluzione di terze parti in modo da non entrare in tutti i fuzz installarlo e sintonizzarlo , Ho pensato che ci dovrebbe essere un'alternativa più semplice ad essa.
Quindi ho cercato di implementare un file di directory su XML, la mia idea era di mettere una piccola anteprima della nota su ciascun elemento, il percorso del file che lo rappresentava e i metadati come data. In questo modo caricherò il mio file di directory che contiene tutte le anteprime e gli indirizzi e aprirà ogni file in modo dinamico in base al percorso salvato quando l'utente lo desidera.
Questa implementazione mi sembra quasi perfetta:
• È leggero in termini di utilizzo delle risorse,
• L'xml può essere trasferito e inviato ad altre piattaforme, fornendo facilmente una spina dorsale del mio file system ad altre piattaforme
• È una soluzione di un file built-in molto semplice rispetto a sqlite.
Per sommare tutto questo, C # ha LinQ, permette all'utente di trattare il file XML come se fosse un database, dà piuttosto la possibilità di scrivere query sql contro di esso, il che per me sembra piuttosto fantastico e incredibile utile per il mio caso.
Ma mi piace mettere in discussione tutto, e la sua parte del motivo per cui sono qui, per favore dimmi cosa pensi di questa implementazione:
- Ci sono delle insidie?
- C'è un modo ancora migliore di questo?
- Le implementazioni di questo tipo sono spesso presenti nell'industria?