Project Description

Blizzard is a homegrown, lightweight O/R Mapper. Works with POCO objects, does lazy loading and handles one to many (composition) and many to many relationships. It is best suited for a desktop application.

I decided to make an O/R Mapper because I always wanted to make one. Partly because of my interest for Model Driven Design and partly because I thought it would be easy to make one!. So I thought,.. I am going to make a couple of recursive methods and that way I solve hierarchical objects persistence. Then I am going to do the easy part which is finding a way to load those persisted data back. Hmmm... easy part? (I think the fun just began).

Long story short, I ended up using interception techniques (Castle DynamicProxy) and before I know I was involved with complicated program flows. I needed to go through drastic design change. All my initial works regarding persistence was gone!. Those beautiful recursive methods!. I can't imagine I could make this program without using program flow diagrams and also the power of regression test that the unit test frameworks offer. Towards the latest phases of development, I went completely TDD!, just like a good programmer boy I really did the test first and then went for the solution (happy to find out that at some point there was really no respectable alternative to that).

Please visit the Documentation tab for a user guide and also for more in depth explanation see Blizzard Architecture.

Last edited Oct 28, 2011 at 7:14 PM by hrSarmadi, version 29