Hanalei, Hawaii 9/2/2010
438 Posts and Counting

SubSonic: What's Happening Now

Wednesday, September 26, 2007 -

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!

Related


Gravatar
Garrison - 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!
Gravatar
Jon Galloway - 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.
Gravatar
josh - 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
Gravatar
Haacked - 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.
Gravatar
Rob Conery - 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!
Gravatar
kevin - 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"
Gravatar
kevin - 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)
Gravatar
Jim Bonnie - 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 :)
Gravatar
Rick Arthur - 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
Gravatar
IronRuby - 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.
Gravatar
Rob Conery - 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 :).
Gravatar
Christian - Thursday, September 27, 2007 - Really nice work Rob!!!
Gravatar
IronRuby - 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.
Gravatar
kevin - 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.
Gravatar
J. Philip - 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.
Gravatar
Fahrbot - Sunday, September 30, 2007 - Please, please - get the mysql GetCount() fixed :)
Gravatar
Zack Owens - Monday, October 01, 2007 - @Fahrbot

Can you use GetRecordCount()? It's easier :)
Gravatar
Dietrich - 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.
Gravatar
Fahrbot - Wednesday, October 03, 2007 - GetRecordCount() doesn`t work either.
Gravatar
Elmar - 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
Gravatar
Dundar - Wednesday, October 03, 2007 - linq provider for mysql is a "sweet spot".
Gravatar
Brad - 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.
Gravatar
Andrew Peters - Wednesday, November 14, 2007 - Marc-André Cournoyer did migrations for .NET last year. http://macournoyer.wordpress.com/2006/09/20/database-migration-for-net/
Gravatar
Rob Conery » State Of SubSonic, November 2007 - Wednesday, November 28, 2007 - [...] that end, I’ve expanded a bit on my previous post and want to share with you what’s [...]