Home MVC Storefront

SubSonic: What's Happening Now

I've been pretty quiet over the last month or two on SubSonic matters and hopefully that will change over the next few weeks as my workload lightens a bit and Eric and I find more time to devote to the next release.

The big thing for me has been LINQ and LinqToSql. If you read my blog you know that I've been doing a lot with the toolset - mostly trying to see where the "sweet spots" are and where SubSonic can "fill the void".

Above all, I do NOT want to be in a competitive stance with Microsoft or ASP.NET. It may sound limp, but I have my reasons to work with the toolset, and not against it. This has always (in my mind) been one of the strengths of SubSonic: playing nice with .NET and the MS toolset. I don't want to reinvent and I certainly don't want to suggest that I know better (at least out loud :p). Anything that's part of the platform will almost always be easier to use (even if it's a tad crufty) and for my part, I'd rather we all just get along.

Building 42
I was invited to Redmond (for entirely other, unrelated reasons) this week, and when I arrived yesterday I saw ScottGu in the hallway, bouncing between offices and (literally) holding 3 conversations at once with various people. I said hello and he asked me to wait a second, and then to my surprise he said "hey check this out" and pulled me into his office for an impromptu demo of the new MVC bits (which he'll be showing off at the ALT.NET conference).

I'm not permitted to talk about it (I'm under NDA as and MVP) but I can say it's "The Tits", in every sense of that overused phrase. I'm really impressed with the things going on with ASP.NET. I just hope Phil doesn't screw it up... :)

Roadmap
It's pretty cool being here, seeing what's going on in the Borg Mother Ship :), and it's helped me to setup (what I think) is a pretty neat Roadmap for SubSonic's future. This is preliminary, and I'll put together a more complete picture over the next week or so:

  • Rev the Query Engine - I like our query tool and I'm not a huge fan of the LINQ syntax. I think there is definitely a place for the two to co-exist, I have some ideas on how to add in joins, aggregations, logical grouping, and so forth that I think would be a nice complement to LINQ.
  • Migrations - Not much to say here - they're going in
  • More Controls - I have a few in mind, specifically a databound calendar (built on top of the existing one) that displays information bound to it, etc. More on these later.
  • REST/JSON - finish up our REST/JSON Handlers for exposing data remotely
  • Generators - Create page templates for creating "scaffoldy" pages to file
  • Expanded DB Provider Support - we have a pretty impressive arsenal of DB providers currently, but I want to expand on these while at the same time buffing out support for the ones we have. I know that many of them are not up to where the SQL provider is and it's only for lack of time and commiters - hopefully this will change.
  • Integrate JQuery - I love this thing, and I'd love to do some fun UI workings with it (perhaps as controls)

That's about it. If you have some ideas - lemme know!

Garrison avatar
Garrison says:
Wednesday, September 26, 2007
Glad to hear it. I was worried that you had moved on to bigger and better things and had stopped development and support of SubSonic. Looking forward to future releases!

Jon Galloway avatar
Jon Galloway says:
Wednesday, September 26, 2007
Any thoughts on a Linq To SubSonic provider, similar to the Linq To NHibernate provider? I'm thinking that would give the best of both - ability to use Linq or the SubSonic query engine, depending which is most appropriate? I've also meant to look at how much work would be needed to expose the existing SubSonic objects to Linq. I'm guessing it would take popping the Linq attributes in there and / or implementing IQueryable.

josh avatar
josh says:
Wednesday, September 26, 2007
Hey... Migrations? as in db migrations ala Ruby-Rails? ..because I've been thinking that's a tool that's missing from my toolbelt, and I haven't seen any in the .Net world. Actually, I was thinking it would be a way I could contribute to Castle. I'd be plenty happy if you said db:migrations are going into subsonic. -j

Haacked avatar
Haacked says:
Wednesday, September 26, 2007
Migrations! I've thought about tackling this too. In a sense, we have a form of migrations working in Subtext, but they're written in T-SQL and thus only work for SQL Server. And you can only migrate forward, but they're idempotent. I'd love to have a cleaner migrations framework like Rails.

Rob Conery avatar
Rob Conery says:
Wednesday, September 26, 2007
@josh - yep, Migrations as in Rails-y migrations. I've written out the library and the core bits, and have unit tested them nicely. The final step is the "trigger" mechanism which is tricky - but I'm almost there!

kevin avatar
kevin says:
Wednesday, September 26, 2007
well, what can I say? I love it all. I have a few ideas regarding JSON/REST as well as JQuery stuff and the Generators (actually did a lot of work on this already but stopped) migrations will be the "tits"

kevin avatar
kevin says:
Wednesday, September 26, 2007
oh, regarding the ideas.... - generators maybe using nvelocity...or something like it - jquery controls would be easy based on the JSON/REST api (dnk just released a json api and I built a widget for it, you can view it on the right rail of my blog)

Jim Bonnie avatar
Jim Bonnie says:
Wednesday, September 26, 2007
Rob, When I showed SubSonic to one of the alt.net'ers they were surprised that the fields in the collections and classes were not type checked by Visual Studio. Did I screw the demo up, or is that a design issue ? Great to see the road map :)

Rick Arthur avatar
Rick Arthur says:
Wednesday, September 26, 2007
Rob, While we're on the topic of 'playing nice' with Microsoft, I wonder if you could address the issue of how SubSonic will compete/complement the Dynamic Data Controls that are currently part of the ASP.NET futures realm. It seems to me that the Dynamic Data Controls is like the scaffold functionality on steroids. And that any expansion of the generators (mentioned in your post above) would be directly in competition with whatever Microsoft eventually releases in this area. I spoke briefly with Polita Paulus about this at Mix this year, but found that I didn't know enough about the two products to really ask the right questions. Thanks, Rick

IronRuby avatar
IronRuby says:
Thursday, September 27, 2007
Hi Rob, When do you intend to blog about IronRuby and Subsonic plans to support IronRuby. Since IronRuby will float with its own Ruby On Rails framework, as well as from ScottGu's blogging comments, we understand that the new MVC is free from all other tie ups. Its a new database framework suited for all if needed. With all this coming up, you should focus more on DLR and Subsonic for DLR with LINQ advantages. This is perhaps the best way to go. Scott hanselman recently had a blog inviting suggestions, what he should speak at a conference in November. He had 6 suggestions and the most demanded suggestion was DLR with MVC advantage. It would be nice, if you invite maximum suggestions and walk the way that suits the maximum developers community, not just the VB or C# community. ALT.NET, DLR, MVC and much more can be expected from you. BTW, i am just passing my views.

Shawn Oster avatar
Shawn Oster says:
Thursday, September 27, 2007
Playing nicely with the MS toolset is an interesting one because on one hand there are some good bits that make sense to integrate with while others turn into a bit of code communism, "great in theory, horrible in practice". One of the things I've always liked about Rails is that while it's simple it's still programming, a clean framework helping you do something vs. trying to do it for you. A lot of attempts from Microsoft and others try to do everything for you, hiding all the details behind wizards and super magic controls which can work well until you need to do that one extra thing. I always liken it to sushi vs. microwave dinners. Sushi is simple yet it's not trying to hide anything, it's all the bits just arranged in a great way while a microwave dinner is food sure but you have no idea what's really in there, how it's really made and just how processed it all may be. SubSonic has always felt like sushi to me while some of the other offerings feel a lot more like a cheap microwave dinner.

Rob Conery avatar
Rob Conery says:
Thursday, September 27, 2007
@rick - haven't played with the dynamic data controls just yet - but I do know there will be plenty of room for SubSonic and it's controls in the MVC bits. More on that later... @IronRuby - "Since IronRuby will float with its own Ruby On Rails framework" - wha? I don't think that's the case at all and I'm not sure where you heard whatever you're heard (or whatever you're smokin :) In terms of "focusing on the DLR" - why? SubSonic's a dll that can be used by pretty much any project - right? In terms of the community outside the C# and VB.NET crowd - well I ... umm... well who is that anyway? I mean... is there a community? IronPython? Can't they use SubSonic too? I think I understand what you mean - but there isn't really a shift we need to make to add some love to the DLR world - it should "just work" - but in fairness I haven't thrown SubSonic at the DLR just yet so we'll see. @shawn - One SubSonic Roll comin up... my favorite is the UniGrid; I think I'll make something like that just for you :).

Christian avatar
Christian says:
Thursday, September 27, 2007
Really nice work Rob!!!

IronRuby avatar
IronRuby says:
Friday, September 28, 2007
@ Rob, It seems you got me partly right. Let me come out clear again. IronRuby targets the Ruby Crowd, which is under the DLR hood.... right? As per John Lam, IronRuby makes no sense at all, if it does not support Ruby On Rails. Ruby on rails will work with IronRuby easily under the DLR , without any additional framework But... The IronPython developers does not have any advantage like ruby on rails or Python on rails... So..... to support the massive developer community ScottGu will come out soon with a NEW MVC for Asp.Net. This MVC shall also target the C#, Vb.Net, Vbx, IronRuby, IronPython and IronLisp in a different way but under CLR or DLR Since C# and Vb.Net developers always missed the MVC advantage and you have already taken the first Step to satisfy them in the form of Subsonic, which is appreciated by all. NOW.... Your next step should be adding the toppings or the missing things in the MVC framework which will come soon. It would be better, if you understand the limitations of the New MVC structure and then plan or modify your existing Subsonic in your next step. I hope i am clear now. Just sharing my opinion.

kevin avatar
kevin says:
Friday, September 28, 2007
@ironruby, so I guess by "It would be better, if you understand the limitations of the New MVC structure and then plan or modify your existing Subsonic in your next step." You mean... (Rails - asp.net MVC functionality) = what SubSonic should offer. Correct? So, Migrations, Model Validation (validates_presence_of, etc), and then a whole slew of sugary syntax/plugins to increase dev performance, etc.

J. Philip avatar
J. Philip says:
Saturday, September 29, 2007
@Rob, > Maybe this is where IronRuby would come in, no? The existing Migrations for .NET is at: http://code.google.com/p/migratordotnet/ and uses the Boo interpreter and nant, but I suppose IronRuby would work too.

Fahrbot avatar
Fahrbot says:
Sunday, September 30, 2007
Please, please - get the mysql GetCount() fixed :)

Zack Owens avatar
Zack Owens says:
Monday, October 01, 2007
@Fahrbot Can you use GetRecordCount()? It's easier :)

Dietrich avatar
Dietrich says:
Tuesday, October 02, 2007
Learning ruby/rails. Thing I like best so far is validation in the model. Would that be possible in subsonic/asp.net? And so far I would have to say I like subsonic over rails. I think subsonic and asp.net is a strong combination.

Fahrbot avatar
Fahrbot says:
Wednesday, October 03, 2007
GetRecordCount() doesn`t work either.

Elmar avatar
Elmar says:
Wednesday, October 03, 2007
Hi Rob. Exiting news. As mentioned in the forum a while back (http://www.subsonicproject.com/forums/thread/support/1716.aspx) I´d love to have more query power... especially if it´s SubSonic-Style ;). Migrations would be fantastic as well. I think it is an everyday issue that currently often grows into a lot of unneeded complexity. I would be lost without RedGate. Regarding the REST handler. Are we also talking about inbound data or just refining exposing of data? All the best, Elmar

Dundar avatar
Dundar says:
Wednesday, October 03, 2007
linq provider for mysql is a “sweet spot”.

Brad avatar
Brad says:
Friday, October 19, 2007
Rob - Next really neat feature for Subsonic.....Documentation. Oh if that isn't a potty mouth word to a coder I don't know what is ;-) I know, mention documentation and most coders are like cockroaches when the lights gone on to the kitchen....we scurry to the safety of the dark recesses of our cubicles. But seriously, Subsonic is a really cool DAL generator...I mean REALLY COOL!!!! I've been searching for what I'd call the grail of making strong typed DAL easier...from nhibernate (to much memorizing xml) to LINQ (not sure yet)....So far Subsonic is what I've been looking for...and I bow before those who cooked up this wonder. From something I stumbled accross surfing at home...I'm now proving my case for using it for our whole development staff at work (20 coders). But the one thing really lacking, that I'll get beat up on, is good documentation on the object model, use and syntax. Admittedly most of it's pretty intuitive...but it does take some hacking and a bit of looking at the source to figure some of it out, which can be intemmidating to many a programmer. So if you or someone else is would be so inclined perhaps one could tuck away VS and the feature builds for a few hours and crank on some documentation on the ole word processor......please.

Andrew Peters avatar
Andrew Peters says:
Wednesday, November 14, 2007
Marc-André Cournoyer did migrations for .NET last year. http://macournoyer.wordpress.com/2006/09/20/database-migration-for-net/


Search Me
Index Of MVC Screencasts

You can watch all of the MVC Screencasts up at ASP.NET, and even leave comments if you like.

Subscribe

Popular Posts
 
My Tweets
  • @mattberther do you really want to use the words "fair", "balanced" and "Hannity" in the same sentence? :):)
  • @ryanlanciaux McCain is becoming a national embarrasment like Bush before him. Cheapens our political process and makes us look like idiots
  • @ryanlanciaux The basics I spose - the ability to speak in full sentences, details about their plans, no overt smears and lies... like that
  • Time Magazine: "what a desperate empty embarrassment the McCain campaign has become". Have to agree. http://tinyurl.com/3kygnq
  • How does O'Reilly keep his job? http://tinyurl.com/3zw5r4
  About Me



Hi! My name is Rob Conery and I work at Microsoft. I am the Creator of SubSonic and was the Chief Architect of the Commerce Starter Kit (a free, Open Source eCommerce platform for .NET)

I live in Kauai, HI with my family, and when my clients aren't looking, I sometimes write things on my blog (giving away secrets of incalculable value).