Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News QnA on SubSonic

QnA on SubSonic

SubSonic is a .NET Open Source project modeled after Rails.  Think of it as a Swiss Army knife for building websites and working with data in Object-Relational fashion.  In the latest release, version 2.0.3, a lot of work was done on the execution engine as well as a significant number of bug fixes. 

Rob Conery and Eric Kemp are the main developer force behind SubSonic and interest in the project is gaining momentum. 

InfoQ editors sent a few questions about the project over and both Eric and Rob responded:

InfoQ: What prompted you to create SubSonic?

Rob: About 95% of all applications built talk to a database in some way. For some reason 95% of all utilities built for Visual Studio and .NET deal with pulling the data from the DB and putting it in the UI. When I first saw the SqlDataSource and GridView in action I thought it was super neat, but broke every DAL convention I'd ever heard of. The ObjectDataSource is a great answer to this, but really why do I want to stick another tool in between my app and it's data? I just didn't get it from an architect's perspective.

I remember reading a blog entry on Fritz Onion's site where he used BuildProviders to work up an object model and I thought to myself "someday I'm gonna work that thing!".  That someday came when I was refactoring the Commerce Starter Kit, trying to leverage as much Data access code into the base classes as I could. I was using generics in a way that they probably weren't designed to be used, but in the process I stumbled on a really cool pattern for generating very little code for a full data access layer. When I first got it to work I literally jumped out of my chair, swearing to myself.

I gave it about 2 weeks and tested and tested and when it didn't break or slow down, I remember thinking "I've got something here!". I had been doing some Ruby/Rails stuff at the time, and I had the idea that much of that "love" could be brought over to the ASP world. Although the real joy of Rails is the language Ruby - but maybe someday RubyCLR will be finished (or some other dynamic language package for .NET) and that's when I think SubSonic will come into it's own.

InfoQ: What is the current status of SubSonic?

Eric: While SubSonic has yet to reach its first birthday, it achieved the 2.0 milestone and the end of April, with a rich set of new features that greatly expanded on those delivered in version 1.0.6 in December 2006. Since that time we have delivered three maintenance releases, with 2.0.3 being rolled out just yesterday.

SubSonic is an extremely active project, and is consistently in the top 10 projects on CodePlex, alongside several Microsoft supported projects including the AJAX Control Toolkit, Enterprise Library, and IronPython.  While it is difficult to judge true popularity, the anecdotal measures are extremely positive - SubSonic 2.0.2 achieved nearly 2500 downloads in less than three weeks, and 2.0.3 is about hit 400 downloads in its first 24 hours.

InfoQ: What are the sweetspots for SubSonic?

Eric: As a data access platform, SubSonic manages balance the power and speed of datasets with many of the advanced capabilities of ORM platforms without
forcing SQL back on to developers or requiring extensive object mapping exercises.

As a developer productivity tool, SubSonic automates the repeated, mundane processes common to data driven applications, by providing a base that supports the iterative nature software development. Through the automated generation of web-based data manipulation "scaffolds", lightweight and flexible query tools, and a growing library of functions designed to support common business data validation and transformation scenarios, SubSonic lets developers spend focus their time on building their applications, not support subsystems.

InfoQ: Who is using SubSonic?

Eric: Assessing the use of SubSonic is difficult, as we only can only judge from what people share in forums, or post on blogs. However, we do know that the
range of implementations is very broad. SubSonic powers several open source projects like, and is currently, being integrated into one of the top ASP.NET based blogging platforms. It is being used by hobbyists on personal applications as well as in at least a few known Fortune 500

InfoQ: What are the futures for SubSonic?

Eric: In addition to some planned enhancements to our query engine and the delivery of a new REST based set of functionality slated for our 2.1 release, we are following a general guiding principle of "moving up the stack." Specifically, this means capitalizing on our mantra of "Convention over Configuration" to deliver functionality that represent more complete and extensible "out-of-the-box applications" based on common patterns that facilitate the next level of developer productivity.

Thanks Rob and Eric!

Rate this Article