McObject has released a C# implementation of a dual-licensed object-oriented embedded database that can be used to develop Window CE and Pocket PC applications. Originally written in Java, Perst boasts ‘tight integration’ with C# and support for the .NET Compact Framework (CF), along with high performance and a modest footprint, the company says.
According to McObject, Perst’s tight integration with C# results in ‘exceptional transparent persistence and ease in working with objects.’ The company adds that the database’s typical 30 to 300 KB run-time code footprint enables it to satisfy the resource constraints of many embedded applications, and also makes it suitable for C# applications requiring high-speed data management.
Typical applications include mobile and embedded devices, industrial systems, Web services, and packaged software, according to the company.
In contrast to object/relational databases, or tools that provide object/relational mapping, Perst stores data directly in C# objects, McObject explains. This eliminates the need for expensive (in performance terms) run-time conversions between the database representation of the data and the C# representation, the company adds.
Additionally, ‘Perst ensures integrity via transactions that adhere to the ACID properties (Atomicity, Consistency, Isolation and Durability) with very fast recovery,’ McObject said.
Other Perst features include garbage collection, detection of hanging references, automatic schema evolution, XML import/export utilities, and master-slave replication support with the option to run read-only queries on slave nodes, according to McObject.
The company is offering Perst under a dual-license model. Users can download and modify the database source code and use it freely in non-commercial applications that are neither sold nor used internally by a business, and for which source code is made available. A commercial license is required when Perst-based software is sold or used for business, or if source code will be withheld, according to McObject.