About Object Data Blocks

Object Data Blocks is an active record object-persistence style ORM (Object Relational Manager), also known as a reverse-mapping ORM.

Classes are defined and decorated with attributes in a .net assembly and combined with a relational database provider (currently Sql Server 2005 or later) to form a data abstraction layer for your application that is strongly typed, fully object-orientated and stays automatically in sync with the underlying database. Unlike other ORMs such as NHibernate or Entity Framework, no mapping files are required. No additional database schema tables are created, and all tables and stored procedures created follow a logical, readable relational design.

Object Data Blocks supports an agile development process, supporting constant refactoring of the data abstration layer. Both table and query objects can be refactored, reused and subclassed to enable higher productivity and a more natural development style when in creating data driven applications. Changes can be deployed to a database via the deployment tool or through .net code - without any data loss. Some knowledge of relational databases is an advantage but not essential.

For corporate environments, comparisons can be run between assemblies and underlying database schemas to provide deployment scripts in SQL to meet any Database Administrator's requirements.

Object Data Blocks 2.0 requires .Net Framework 2.0 or later. Object Data Blocks 2.5 and 3.0 will require .Net Framework 3.5 or later. Object Data Blocks is recommended for new projects, or where a data import process is practical.

Object Data Blocks is distributed under the LGPL licence. Commercial support to be available on release.

Roadmap

Object Data Blocks 2.0 (Release Candidate) (.net 2.0 or later)
  • Full object orientated data persistence for all value types as well as streams - complete
  • Object-orientated query support without use of a query language - complete
  • Sql server relational database provider - complete
  • Support for query joins (inner, outer, cross) - complete
  • Support for query aggregation (group by), or query ordering (order by) , count(*) aggregation - testing
  • Forward only query readers, as well as disconnected querying - complete
  • Customisable deployment engine - complete
  • ASP.Net Membership provider - complete
  • Stand alone deployment tool - testing
  • Release candidate - in progress

Object Data Blocks 2.5 (Prototype) (.net 3.5 or later)
  • Upgrade to .net framework 3.5 - prototype
  • Add LambdaQuery class to use lambda expressions (where, select, group by, having, join, orderby) - prototype
  • Add count as alternative to full execute - prototype

Object Data Blocks 3.0 (Planning) (.net 3.5 or later)
  • Remap internal expression classes to lambda expression types - planned
  • Add declarative validation similar to System.ComponentModel.DataAnnotations - planned
  • Add update and delete queries - planned
  • Cross context joins (database and server) - planned
  • Use lambda expression compilation to improve object formatter performance - planned
  • Support for object persistence without primary keys - planned
  • Custom naming of tables and columns - planned
  • Query map to custom stored procedure - planned

View the project documentation

Last edited May 19, 2010 at 9:04 AM by JamesWestgate, version 35