Stores transfer diagramming objects between the data source and the IStoreCache. The XML store creates an hierarchical XML document, where the tags correspond to the entity type names and attributes to the entity field names. When an XML store is opened it reads the whole XML document and puts all objects into the cache. Once the store is open, no further file reading is required. When the XML store is updated, i.e. its SaveChanges method is called, it simply recreates the whole XML document.
The ADO.NET store expects an appropriate database schema at the location of the given connection string. It then uses precreated command objects with parameters to insert, updated, delete and select diagramming objects. The command texts depend on the concrete database used and are therefore prepared in the derived classes. Currently, NShape comes with an ADO.NET implementation for SQL Server. Other stores might be added in the future or can be provided by the application. The specialized ADO.NET stores may also provide a facility to create the database schema required.
The ADO.NET store is bound to a specific database schema. Derivations can modify it a little bit, but some basic assumptions are coded into the ADO.NET store. If an application requires a database schema that is not compatible with the AdoNetStore class, it must either implement its own store class from scratch or a whole repository class.