I frequently write my objects to a database in xml form.
However, basically change the type of my objects, say by altering the title or by altering the fields, I'm able to no more read them in the database, making somewhat difficult the job of reading through them, transforming these to their new form, and writing it well to the database.
I'd rather not need to relabel my classes each time I change something about the subject.
*Note: I'm depending on C#'s XmlSerialization/Deserialization of objects for producing the Xml. Possibly this isn't desirable basically alter the format from the objects.
Sooner or later it is dependent how you serialize your objects.
One convenient choice is to keep them as hash (key-value pairs). By doing this, if to class
Dog getting property
name I add another property
breed, existing objects will not be invalidated. They'll simply have have
breed = nil.
Exact storage format (xml, json or separate 'properties' table) matters not within this situation, the key factor is when you are converting objects into it and back.
However I don't believe anybody could give specific suggestions not understanding specific platform.
Should you implement the ISerializable interface in your objects, you'll be able to implement custom serialization/deserialization programs that offer backwards compatibility with older versions from the objects.
See for a good example of how it is possible: ISerializable and backward compatibility