Object Centric

An Object Data Store

Our product is called ODS (Object Data Store) because it perfectly illustrates what we are trying to achieve. In recent years there's been a huge increase in the popularity of free databases such as MySQL and "Express" database versions of SQL Server and Oracle to name but a few. The cost of enterprise database systems have also fallen. More and more server, desktop and website applications are using database back ends. And, at the same time, Object Oriented programming languages are becoming the norm. Developers are used to working in a world of objects only to have to shift back to the very different world of relational databases. Wouldn't it be easier if we could just stick our objects directly into the database?

Building a bridge

However, even now, popular databases such as SQL Server cannot store objects natively. A layer of code, a Data Access Layer or DAL, is required to translate objects to and from data that can be stored in a relational database. Ordinarily, developers would have to manually create both the DAL and the database. But creating a DAL and having to constantly switch back and forward between thinking about relational databases and objects becomes slow and painful.

Our goal was to create an application that would allow the developer to stay in the world of objects. Where the programmer would not have to worry about relational databases. ODS generates the DAL and the database automatically. The developer can treat the ODS generated DAL as a black box and get on with writing the rest of the application.

Objects first

ODS models objects in a database agnostic and to a large extent programming language agnostic way. The starting point for ODS is modelling the basic class elements of objects such as properties and methods. These are then automatically translated into C# classes and database schema.

Ease of use

Because ODS focuses on objects, in many scenarios little or no database expertise is needed. If you want to do something a bit more complex, ODS is extensible. ODS provides a mechanism to modify the source code manually to provide your own DAL functionality and database customisations. ODS Design Studio does not require or connect to a database. It simply allows you to design ODS objects and generate source code. It is the source code that creates, upgrades and accesses a database to store object data.

Complete solution

ODS is designed as much as possible to be a complete solution. ODS is not a "database mapper" that generates a DAL from an existing database. ODS works the other way around. Design your objects in ODS Design Studio and it will generate source code that can create the database back end from scratch.