Hanalei, Hawaii 2010-03-18

SubSonic: 2.1 Beta Is Up

Eric and I have been going full-speed to get this next rev of SubSonic up, and with a LOT of your help we've got a beta ready for you. You can download it here.

Eric and I have been going full-speed to get this next rev of SubSonic up, and with a LOT of your help we've got a beta ready for you. You can download it here.

SubSonicSMall

Breaking Changes There are none, w00t! Or, well, there shouldn't be. If you find some do let me know :).

A New Query Tool We have a new Query tool that lives happily alongside our existing one. Our goal with it was to make it as "Fluent" and "SQL-y" as possible. I wrote a post on how it works here, and updated that post here. Please refer to that until can crack out the docs which, yes now that this is my job, I will be spending a good amount of time on.

    Northwind.CustomerCollection customersByCategory = new Select()
        .From<Northwind.Customer>()
        .InnerJoin<Northwind.Order>()
        .InnerJoin(Northwind.OrderDetail.OrderIDColumn, Northwind.Order.OrderIDColumn)
        .InnerJoin(Northwind.Product.ProductIDColumn, Northwind.OrderDetail.ProductIDColumn)
        .Where("CategoryID").IsEqualTo(5)
        .ExecuteAsCollection<Northwind.CustomerCollection>();

Hello, SubStage

Eric and his secret little project are ready to see the light of day. I'm not sure how to categorize this thing, other than to say it's a SubSonic Geek's Best Friend. It's part IDE, part Help Resource, Part Config tool, part Validator. Eric's working up a screencast on it now (link to follow) and here are the highlights:

  • Load your Web(or App).config and it will load your Database up, with settings
  • Work with a GUI when setting your provider bits. Not sure what to use with that naming problem? SubStage will help.
  • Validate your DB according our conventions, and see when you have problems right up front. Eric's built in a complete validation system so if you don't have a Primary Key on a table, you know it up front.
  • View your object's by Table or Class view. All of your naming and provider settings will be viewable when using our Class View - this way you'll know your API before it's generated.
  • Generate your DAL using SubStage. Once you have everything set just so, generate the files then drag them from the SubStage Explorer window right into your project
  • Work with your data. Eric build a frickin web server into SubStage, and wraps an AutoScaffold around your database so you can, literally, work with your data using our scaffold right there.
  • Help... lots of Help. Access our API reference and Forums online, right through SubStage - we're trying to make this easy for you... can you tell?

Here's what it looks like: substage

Tons of Bug Fixes We fixed so many issues that have been reported that it's going to take me 2 days at least to document them all. Of major import are:

  • We now support partial object loading - you don't need to load the entire object if you don't want to.
  • We've changed Update() so it only updates the changed columns - no more wholesale updates.
  • Implemented the RepositoryPattern, and with it, the ability to declare your own base class. This is a biggie as many people don't like ActiveRecord. See my posts above about the RepositoryPattern and how to access it.

Your Feedback Is Critical

I wanted to get this beta out the door so we can crank the next version out as soon as possible. This will be the last point release for .NET 2.0 (we're moving to 3.0 with the next rev) and I'd like to get it as stable as possible. If you find any bugs, or have any questions, please post them here. Your Support Is Always Welcome Many people don't know this but every donation I receive I push back down to our contributors - most notably Eric Kemp. I am getting paid for this stuff so if you want to show some love to the contributors (beer money, whatever), your donations are very welcome. Larry Beal, Gavin Joyce, Damien Guard, Phil, Jon - all of the forum's moderators - these guys work hard on their own time. Please don't take this as solicitation - not at all. Some folks have asked what they could do, and honestly the simple things, like some extra beer money, go a long way :). Shwag With Jon Galloway's and Eric's help, I loaded up some SubSonic artwork to CafePress today and we now have shirts and mugs. If you want some shirts or a mug (all of this goes to contributor's as well) it's here for you! I am going to bring some shirts to MIX 08 as well - I hope you're going!