Persistenza del client rich senza un database

4

Abbiamo un'applicazione per rich client .NET abbastanza grande che attualmente usa nHibernate e Firebird embedded per la persistenza. A causa della natura dell'app, abbiamo bisogno di caricare l'intero database in memoria quando il file viene caricato, così otteniamo tutti i costi di un ORM senza molti dei benefici. Il vantaggio principale che otteniamo è la possibilità di scrivere codice di aggiornamento per la transizione della struttura dei dati tra le versioni.

Stiamo scoprendo che questa configurazione è sia lenta che intensiva in termini di memoria (non sorprendentemente, dato che non lo stiamo usando come previsto). Potremmo passare a un documento / KVP DB, ma ancora una volta, dato che non stiamo effettuando alcun caricamento o ricerca su richiesta, non sembra la soluzione giusta.

Mi sono divertito con l'idea della serializzazione binaria e archiviando in qualche modo lo spazio dei nomi di "persistenza" in modo che potessimo caricare un vecchio formato, ma sembra un approccio un po 'contorto a quello che penserei sarebbe un problema comune .

Quali sono le nostre opzioni?

    
posta Ben Hughes 29.05.2015 - 01:09
fonte

1 risposta

2

Per informazioni, sono andato giù per il percorso di serializzazione binaria, con una struttura di mappatura leggera tra il dominio e il serializzatore. I test iniziali, non ottimizzati, hanno circa il 40% più velocemente di nibernate.

Spero di ottenere l'approvazione per l'open source - se lo faccio modifico questa risposta con i dettagli.

    
risposta data 01.07.2015 - 01:40
fonte

Leggi altre domande sui tag