.NET project: unified wrapper for object databases
I am considering doing a project which would provide unified API and tools (import/export, etc.) for object databases (e.g. Caché, Objectivity) for .NET.
It would provide:
- schema generation from CLR classes,
- generation of C# classes from given OODBMs schema,
- API for deleting, creating and updating objects,
- Linq provider,
- API for calling database object's methods from .NET using .NET objects (*),
- some of OODBMs provide some kind of SQL support, so API for this,
- providers for Caché and Objectivity in first phase.
Does any project which implements any of above exist? Can this be achieved with NHibernate dialects? or are OODBMs so different than RDBMs that it worth doing separate framework for them?
EDIT: (*) I mean invoking DB method (stored procedure in RDBMs world) from application. In OODBMs world, at least as I understood, objects may have methods as for example C# objects do. My idea is that you would mark a method with an attribute [DbCall] or so and leave body empty and when you invoke it from .NET, the framework would actually call the database method on given object.
NHibernate was designed for RDBMs so I am wondering whether there are any differences(features) in OODBMs usage that one might not take advantage of while using NHibernate.
NHibernate does all of this except:
API for calling object's methods on DB server
Which I don't quite understand. If you mean the database being able to invoke application functionality from within stored procedures then that is a database level thing, not really an DAL/ORM thing.
Еxcuse my initial misunderstanding! The world of data management is changing. The linkage to service platforms, operation within scalable (cloud) platforms, object databases, object-relational bindings, NoSQL databases and new approaches to concurrency control are all becoming hot topics both in academia and industry. So to create common API-layer is will be very useful, but definitely isn't easily to create APIs(compound) which can work with OODBMS(STSdb, [DB4O], [Perst] ...) with have different features...