VB.NET + XML = Object DB
What Are Object Databases?
Different kinds of databases are useful for different purposes. A relational database such as Oracle or SQL Server is convenient when you want to join records from multiple tables, and tabulate or summarize data. A hierarchical database is handy when the data you are modeling is naturally hierarchical, as it is in a directory file system or company organizational chart.
An object database is useful when your program needs to store and manipulate objects. It provides features you can use to load, examine, transform, and save those objects.
Typically, an object database lets you locate objects using some sort of key. For example, the following statement might fetch a Pupil object that has the key value "Rod Stephens".
pupil = ObjectDatabase.LoadPupil("Rod Stephens")
The program could manipulate the Pupil object, possibly associating test scores with the object. The program could then explicitly update the database's representation of this object. Alternatively, the database might automatically update the object when it was destroyed.
The database would also provide other simple features to perform such operations as creating a new object, making copies of an object, and deleting an object.