I’ve been playing with NoSQL databases lately. The DB I’m most impressed with at the moment is MongoDB. I was so impressed with just how easy it is to get data in and out of the database that I ripped ALite apart and reassembled it as a framework for creating objects that persist to MongoDB automatically.
That’s automatically - there’s no CRUD code needed. No longer do you need to fight against the object/relational impedance problem. Never again will you need to suffer bug-infested template generators, that produce bug-infested templates, that contain millions of lines of sub-optimal code to perform a single “SELECT * FROM table WHERE ObjectID = 3” query. Just inherit from a single class and let the database and the framework take care of persistence.
Igmongonious (the name is a corruption of “ignominious”, but rather harder to pronounce) also includes the rules system from ALite, and a very similar undo system.
The code is available on BitBucket:
The code is in the form of a Visual Studio 2010 project, but I don’t think it uses anything that isn’t compatible with .NET2.0.
The BitBucket wiki has more information about what the framework can do and some simple examples.
Hmm. I’ve jumped to VS2010, C#, Mercurial, MongoDB and BitBucket from VS2008, C++, SVN, embedded development and SourceForge in the space of one blog post. Blimey, I’ve become cutting-edge again.