Ho un'applicazione web ASP.NET che consente all'utente finale di esportare i dati in un formato di file flat. (essenzialmente prendendo un backup point-in-time del proprio lavoro)
In un secondo momento possono ricaricare (importare) quei dati nuovamente nell'applicazione web.
Il formato effettivo del backup è piuttosto banale. Un oggetto grafico viene serializzato usando WCF DataContractSerializer su xml, e quindi il documento xml risultante viene compresso. L'importazione, decomprimila e deserializza i dati.
C'è un piccolo problema che vedo con questo approccio. versioning ... man mano che il tempo passa e le strutture dei dati cambiano (le proprietà / i child-collections vengono aggiunti / rimossi o rinominati) le versioni precedentemente esportate dei dati di un utente non verranno più mappate al grafo degli oggetti nell'applicazione.
Esistono modelli specifici o pratiche che risolvono questo problema? o qualsiasi altro materiale di lettura che potresti raccomandare.