I’ve started on the Paleo Diet, which, of course, means I have to create a software application to go along with it.
I decided this was a good time to give MVC3 and MongoDB a test drive. After diving in, I realized that I could benefit from some dependency injection via MVC3’s DependencyResolver. I’ve been wanting to learn Autofac, so I threw that in as the container. This was sweet, as it injected my repository implementations into my controllers with very little setup.
At this point, I’ve learned all about the Razor view engine, DI with Autofac and DependencyResolver, MongoDB with the NoRM driver, jQuery, jQuery-ui, and some other MVC3 goodness.
For various reasons, including the fact that my web hosting provider is a Linux/non-ASP.NET provider, I ported the whole thing to Rails/MySql. I’m glad I went through the MVC3 process, because I learned a lot, but in the end, Rails is just simpler. As for MongoDB, and NoSQL in general, I think it’s best served as an edge case storage medium for fast read operations. Data is relational.
Alas, here is a screenshot of the recipe database. I’ll be adding lots of features, including menus and weight management. You can’t see it here, but it has a cool tag cloud feature and theme switching.