Echo-ORM
I think we've all encountered the fear of open source software amongst some of our clients. I like to call it ossphobia. It basically amounts to a categorical rejection of anything that doesn't arrive in shrink wrap with a shiny holographic label displaying a Microsoft logo. While I am primarily a Microsoft developer, I am by no means a fanatic and often find that the best solution to a problem is exactly the opposite of the solution championed by Microsoft.
- Full Control – One of the things that's great about SubSonic for example is that it just flat works out of the box. You do some simple configuration, generate your objects, and your off and running. Literally, 10 minutes. The problem here is that much of the internals of SubSonic are kind of a black box. The source code, while well written, can still be a pretty deep stack. If I for example wanted to add a feature to SubSonic, I'd find the learning curve pretty high. A custom ORM designed specifically for simplicity offers a much lower barrier to extension.
- The Right Tool for the Job – So in the specific case that prompted me to write my own framework, there were some specific features that we needed. I was able to winnow down my concept to cover just what was needed at the time (the YAGNI principle). This allowed my framework to be really targeted and the API that I exposed to consumers of the framework was extremely simple.
- I Like Learning – I don't often get the chance to work on framework type projects so this gave me the opportunity to really try out some ideas in an environment that wasn't tied immediately to a project deliverable. I think everyone should have a side project that takes them outside the path of their normal daily development…I have several such side endeavors.
So, now that all that's been said. I'm introducing Echo ORM as an open source project on Google Code. It's a very small framework and in a very alpha state, but I'd love some feedback on the approach that I've taken and I welcome comments or contributions.
Category: Uncategorized Comment »