Interfaces
IChangeable
Interface for data objects that contain their latest change time.
IIdentifiable
Generic interface for data objects that can be uniquely identified by an id. The type specified in the interface defines the type of id field.
INamed
Interface for data objects that have human-readable names.
IStringIdentifiable
Interface for data objects that can be uniquely identifed by a string id. The interface extends IIdentifiable’s hardcode id type to string. It is a common pattern to use a string GUID as the id, generated by IdGenerator.
ITrackable
Interface for data objects that can track their changes, including logical deletion.
IVersioned
Interface for data objects that can be versioned. Versioning is often used as an optimistic concurrency mechanism. The version doesn’t have to be a number, but it is recommended to use sequential values to determine if one object has newer or older version than another one. It is a common pattern to use the time of change as the object version.
Classes
MultiString
An object that contains string translations for multiple languages. Language keys use two-letter codes like: ‘en’, ‘sp’, ‘de’, ‘ru’, ‘fr’, ‘pr’. When a translation for specified language does not exist it defaults to English (‘en’). When an English translation does not exist it falls back to the first defined language.