Dolstagis: my pet project
Posted at 07:00 on 30 May 2013
I thought it would be a good idea to say a bit about my pet project that I've been working on over the past few months on my daily commute.
Round about September or October, I ended up reading Patrick McKenzie's blog, kalzumeus.com, where he was talking about how he managed to start up a business from his hobby programming project, Bingo Card Creator, on no more than five hours a week. Seeing as I spend twice that sitting in trains, otherwise doing nothing other than playing Angry Birds, staring out of the window, reading xkcd, or sleeping, I thought that something like that would be a much more profitable use of my time.
Only one problem: I didn't have any ideas. Or rather, I had too many of them. At any one time I will have half a dozen ideas for a web application floating around in my head, but none of them have yet risen above the others. Nevertheless, I figured that there's a lot of ground work to be getting on with before you get your big idea, so I typed hg init, cranked up Visual Studio, and got going. I'd also heard the story of how Flickr got started: how it was originally intended to be an online game but ended up as a photo sharing service almost by accident, and I figured that perhaps one particular idea would emerge out of the melting pot as I get working on it.
So far I still haven't had my big idea, but I have ended up with the makings of a web application framework for ASP.NET MVC. Its intentions are similar to those of Django, the Python web application framework, in that it's a "batteries included" framework which will eventually offer all sorts of building blocks for your own ASP.NET applications: dependency injection, unit and integration testing, NHibernate session management, asset bundling and minification, user authentication and authorisation, an admin section, comments, and eventually even integrating unit testing for JavaScript into your build process.
It's also turned out to be a bit of a playground for me to experiment with new things, and to try out some of my ideas and hypotheses about patterns and practices to see if they're any good. So far, I've tried (and rejected, for now at least) CoffeeScript, the Web API, and not using the Repository pattern.
Since I suck at coming up with cool names for things, I've called it "Dolstagis" for now, after an in-joke that was current among some of my colleagues and myself at work a few years back. I'll no doubt write a bit more about it over the coming weeks and months, and the lessons that I've learned along the way, but in the meantime, if you want to see what it looks like, I've posted the code on GitHub.