Persient features

Article recovered from my ancient blog.

Here's an interactive mind map highlighting the current and future features for Persient (an object persistence abstraction layer for the .NET Framework) and its query language, OQuery.

You can view it with an XML/XSLT-capable browser such as the newest Firefox or Internet Explorer.

(The feature map was created using FreeMind.)

One thing that's missing from the feature matrix is "multiple type/table mapping strategies" (only applies to RDBMS stores such as JetStore or SqlStore), this is a non-feature for the first release. There is only one type/table mapping strategy (one table per single type, including abstract types).

One of the guiding design principles was to accurately reflect your transient OO "landscape" in permanent storage. Using the aforementioned, fixed Persient type-table mapping strategy is the only way to guarantee that this actually takes place.

Type-to-schema mapping

You will also notice a "type->schema mapping" section. Since Persient generates the data schema for you, and there is apparently no need to manually "map" to an existing, custom-designed data schema, what exactly does this mean?

In Persient, Type-Schema mapping is the ability of customizing some details of the generated data schema. For example, you do get the choice whether to store enum values as strings or numbers, to specify the maximum length for strings, to even represent reference type instances in serialized, or string, form, and you need to define parent-child relationships somewhere, or whether a property should be unique / indexed / not null, and so much more...