I have a project I call Safari Cell, for now, that takes a relational SQL database and turns it into a DataSet with DataTables for every table, complete with DataRelations, UniqueConstraints, ForeignKeyConstraints and a few other handy things.  All the Data… objects are hidden, however, behind classes that manage filling those entities with data from the database on an as-called-for basis.  Modified data is cached and written later by a lazy-writer thread.  Unused data is eventually removed from the cache.  Any modified column is validated against any extra schema available from the DB server. 

 

The goal is to make it really easy to write business objects that operate on relational databases, to take advantage of fast caching, transactions, and all without writing any plumbing code in the business object itself.  Safari Cell scans the database schema at startup and exposes everything through typed classes. 

 

I have done a great deal of work on this project, all in Visual Studio .NET in C#.  I want to make it open source so that others can help add code to support other DB servers besides just MS SQL Server.  I started the project with extensibility and multiple database server backends in mind. 

 

Is there a great deal of interest in helping these classes grow and mature?  I am planning on putting the source up on Novell’s sourceforge if people are willing to use/contribute.

 

- Andrew Arnott

Reply via email to