SubSonic: .NET-based Database Access Layer akin to Ruby's ActiveRecord
Via Rob Connery Interviewed by Miguel de Icaza, I took a quick look at SubSonic, which appears to be a good solution in the ASP.NET world for very rapidly generating Create-Retrieve-Update-Delete functionality pages that honor database foreign keys.
One of the dazzlers in the Ruby world is a library called ActiveRecord, which powers similar functionality within Ruby on Rails. If you're lucky enough to be starting with a new database, you can generate "scaffolding" to edit your tables in a matter of quarter-hours. (As Steve Jones says in CRUD is Crap, that such functionality is considered dazzling in the year 2007 is an indictment of our toolsets, but nonetheless.)
Any client-facing application almost instantly moves beyond scaffolding, but I've been reminded recently of the need for rapid data-editing / cleaning in any large application but especially in SOAs, with data continuously flowing into the system boundaries. Garbage-in, garbage-out is a big problem in SOAs.
Two downsides of ActiveRecord are that:
- Foreign key relationships must be manually inserted, and
- It's naming conventions can be tough to overcome when using a legacy DB
These seemingly minor issues can be significant when you're dealing with an enterprise-sized database with several hundred tables. Whether SubSonice addresses these issues, I don't know, but I look forward to adding it to my arsenal.