The BizBlox OR/M API has been in development for 5 years and is actively used in many commercial enterprise and light weight applications around the globe. The key premise of BizBlox has always been to keep databases simple. NO MAPPING, no complexity, no scripts. Its funny that layers on top of nHibernate like Fluent and even the Microsoft Linq for SQL have been trying to get this right over the last year or so – but BizBlox did it this way from the beginning. Naming parity; where classes names should match table names; property names should match column names makes perfect sense for a lot of applications and the complexities which a lot of object relational mappers introduce makes life hard for developers; both initially and especially further down the track in maintenance. Also, removing the need for special mapping scripts or weird GUI mapping tools. Just export your SQL from the enterprise manager/management studio and you’re done. Developers can just concentrate on developing business logic.
Pixoüt have just released BizBlox 1.7 on Google Code. The new version delivers greatly increased performance and flexibility, with major improvements to the DataObject caching algorithm, the addition of column attributes to the DataObject class, and the ability to handle a greater range of data types.
BizBlox 1.7 now caches information about the structure of a DataObject, including properties and column information. This information was previously loaded using reflection on every Load() and Save() of a DataObject, but it is now cached in a DOInfo object the first time an instance of that DataObject is created. While there is a minor performance penalty on the very first load of an instance of the type in the App Domain, subsequent performance will be improved as there is no locking or reflection on any object.
BizBlox 1.7 also introduces column attributes in DataObjects, including PrimaryKey(), Persists() and Identity() attributes. The PrimaryKey() attribute provides flexibility in selecting the UID column for the DataObject. The Persists() attribute allows the addition of custom properties to a class that are not saved to the database. The Identity() attribute allows the use of a SQL Server Identity (auto-incrementing) column, by excluding that column from an insert/update.
You can find out more about BizBlox by going to the BizBlox home page. BizBlox is an open source database mapping framework developed by Pixolüt Industries.
Filed under: BizBlox, Open Source, pixolut