SubSonic 3.0.0.3 Is Released
Look at it this way – it’s been almost a week since my last one
. Nailed more bugs and I’m hoping that the reports will slow down as we stabalize. My plan is to issue 3.0.1 as the stable version, and then get on a 4-6 week release cycle… something regular like that.
Anyway – here’s what’s fixed today…
SubSonic 3.0 Core
- FIXED: Major lame dumb bug where PagedList threw when executing COUNT (for the total records). PagedList now works as expected for ActiveRecord and other implementations.
- FIXED: Regression with static Delete(Expression) – only added one constraint when it should have added all found.
- FIXED: Sample site for SimpleRepo failed when turning on Migrations.
- FIXED: IsNew/IsLoaded improperly set for IActiveRecord objects when not using ActiveRecord.
- FIXED: PK setter for SubSonicRepository incorrecly used ExecuteScalar to check for return value. This resulted in Guid PKs getting overrwritten or DBNull values to be passed to the converter.
- FIXED: Updates and other query types would bypass the parameter DbType “sniffer”, causing incorrect coercion to sql_variant.
T4 Templates
- FIXED: VB Templates have been updated to conform to latest drops
- FIXED: Stored Procedure parameters were not being ordered in ordinal position
- FIXED: Dates and Timestamp settings for MySQL
- FIXED: MySQL now sets tinyint to byte, not bool (let the arguments commence…)
- FIXED: SQLite now sets integer to Int64. I know too much about SQLite.
- ADDED: Structs.tt now sets MaxLength for columns
- FIXED: IsNew now returns false when using SingleOrDefault
- CLEANUP: Compiler warning removed from ActiveRecord classes (TestItems list wasn’t being used)
Things Left To Do
We have an outstanding issue for unsigned columns in MySQL – currently there is no way to know (using our lookups) if a column is unsigned. I hope to fix this in the coming weeks but if you want to have a go – please do.
Subqueries are not “behaving well”. We have an issue outstanding where a nested subquery isn’t working as expected, and it rubbing right up against an issue I have with Linq in general – interpretation. More on that later.
The download is here.
The docs site is here.
If you want to talk to use, send an email to subsonicproject at googlegroups.
If you have a question, go here and tag it “subsonic”.
If you have an issue, go here. Please note this is not the place for questions – these are bug reports. Also, the more you can tell us, the better. I need to repro/test every report and if it takes me 4 times to ask you for details it’s likely I’ll just close it.
If you’d like to help but don’t know WTF Git is or how it works, go here.


I am liking a lot of this, but to get it to work side-by-side with an existing set of 30+ applications running 2.x, I had to pull down the repo from GitHub and rename the namespace to "SubSonic3". How would I handle that better?
Rob, first at all, SubSonic rock man, congrats! I'm really insterested in the repository stuff, SimpleRepository is great. I did clone the project from GitHub and took a look in the code, but I must say I'm afraid to start coding something because I don't know what do you think of how the project should go on, this guidelines. I'm not a expert programmer, but I do work with C# and I do have a lot of force of will. So, it would be nice if in some posts you could talk about what you think of what direction SubSonic should take, what features people would help you with. Sorry my bad english, I'm from Brazil. Hugs.
I also did a fork and couldn't do anything. I have extensive programming experience(8+ yrs) but just started C# 5 months ago. Using SubSonic is not hard for me, however, since I'd like to contribute back to the community, It's critical to hack into the code do as much damage as I can while Rob is away. So, is there any intro material like the ones for MVC front to help us understand the source quickly?
I'd love for your help but I don't have the bandwidth to walk you through the source I'm sorry to say…
That's OK, actually I am getting a hang of some source now. Is it OK to submit my changes? It's only some simple refactoring thing.
You can use Git for this – check it out:
http://blog.wekeroad.com/subsonic/subsonic-workin...
Just posted a question at stackoverflow
http://stackoverflow.com/questions/1135773/the-ir...
Can you gurus give me a hint?
I commited a fix for the MySQL's unsigned data types in my Templates fork
=) You presentations is amazing! I've never seen such presentation before! Nice work!
=) You presentations is amazing! I've never seen such presentation before! Nice work!
Rob,
I want to thank you for creating SubSonic and continuing to pour your heart and soul into this. Your decision to release 3.0 even though it wasn't "perfect" was spot on. I'm amazed at how fast you are responding to issues and creating fixes. People have been clamoring for SubSonic 3.0 for a while; I know you have a full-time job and yet you are continuing to work on this.
I sense that you are getting frustrated with certain people demanding this or that, or saying "it's not working", or are simply not willing to put in the time with GIT or SS3 and learn by doing. What I think everyone needs to remember is that this is a COMPLETELY FREE TOOL. If it doesn't work "perfectly" (and what does, from any commercial vendor?), people need to be patient and realize this is a major new release that is a complete rewrite and incorporates the complex features of LINQ (based on my understandng). No one can please everybody.
Right now I don't have the luxury of using tools like SubSonic at work due to DBA restrictions. But I can still use the SimpleRepository to prototype stuff, or use the stored procedure wrappers, if I choose. In the end, I think you are pushing the envelope and hopefully influencing the commercial vendors to make better tools (I really hope EF 2.0 is usable, e.g.).
I don't know if this post will upset other people, and that's not my intention. I just wanted to let you know I appreciate your work and your blog.
Cheers
I don't know if this post is directed to me or not. But just want to clarify one thing. All I wanted to do is to HElP. I did watch the git tutorial before asking question,and I KNEW how to use git to submit changes. My question was "Is it OK to commit my change?" because I was a little timid of messing up the code base.
Also, I find that there are many more "users" of SubSonic than "developers" for SubSonic. I'd like to know if there is a better place for discussing development issues. I have posted questions on stackoverflow, while there are certernly C sharp experts there answering question, Rob seems to be the only person familiar with the source.
Can't wait to use this on my next project. I've been using since the first version and it has saved me countless hours. Thank you.
Also love your simplistic approach on the MVC stuff. Hope they don't brain wash you at MS to start 'over engineering' stuff
Cheers,
Shaun.
Hey Rob I was just looking over the new NHibernate release and I remembered something that Jeremy Miller talked about in his talk to the NDC. He talked about convention based validation, where your database, business layer, and client side all used one set of validation.
It would probably be a nice feature for SubSonic if you could generate business layer validation right off of the DB (obviously not all business validation). The only issue I see is you either have to support a wide variety of validation libraries, or have your own. Other than that, it would probably just be a change to the T4 templates.
Great work by the way.
is the Subsonic.Sugar namespace going to be added back in?
It's now SubSonic.Extensions
does this seam too trivial but when we go to object.save(). Why do we have to add a provider. I think I'm missing something year. Wasn't it in 2.0 that we could just put in the "username" field and that was good. But in 3.0 we need to manually add a provider?
Not a huge deal, but i was scratching my head for a second thinking…
does this seam too trivial but when we go to object.save(). Why do we have to add a provider. I think I'm missing something hear. Wasn't it in 2.0 that we could just put in the "username" field and that was good. But in 3.0 we need to manually add a provider?
Not a huge deal, but i was scratching my head for a second thinking…
does this seam too trivial but when we go to object.save(). Why do we have to add a provider. I think I'm missing something here. Wasn't it in 2.0 that we could just put in the "username" field and that was good. But in 3.0 we need to manually add a provider?
Not a huge deal, but i was scratching my head for a second thinking…
You don't have to add a provider – just leave it empty. The provider is there if you want to save it to another db
I wanted to add a username to save. There is no overload now to support only a username as a parameter. I guess I could manually add it in myself. Might force me to learn t4 templates.
I wanted to thank, Rob for all the great work he has done. I wish I could find more time to dive into the source code. I keep finding little bugs in 3.0. It has reached the point to where I decided to stick with 2.0 for now. I think I just want to wait for 3.0 to get a little more mature.
I think we all know what it's like to dev so I'm not trying to complain. I think its good stuff and I'll continue to play with it, but I've just ran into a few too many problems for now.
Thanks for all the great work and look forward to more goodness coming.
I can appreciate that
– all the same if you could do me a favor and share your bugs on our issue list that's help enough. I'd very much appreciate it.
Hi Rob,
I have a suggestion for Subsonic, not sure if the proper place would be the issues or here so I'm just going to put this here.
It's about expanding stored procedure support:
http://bloggingabout.net/blogs/mischa/archive/200...
Rob,
I have downloaded the latest subsonic but there is no simple CMS stuff that you used to distribute with every download, is missing? Where can I find that CMS stuff. Is that CMS is still using your latest subsonic or you left that behind. Please let us know. If we can utilise subsonic new version with that CMS and with ASP.NET MVC, it will rock Rob!
Narendra
hey their’s some problem when i use database type real in sql2005 ,subsonic mapped it into decimal other than Single in CLR Types.
man i am blown away by this now, i remember when this first started, it was a nightmare to work with on mysql
but now it is so simple, i use this all the time now.
i would recommend though that you or someone does more tutorials cover more subjects and scenarios
especially supporting newer upgrades of MVC, as i find that everything is changing so fast that is is hard for someone to pick up today as the only guide you really get is a few lines on how to pull out paged or a single result, but what about a new user??? new to mvc, new to subsonic it would make these tools allot more accessible.
Keep up the good work Rob
Am new to SubSonic so I may be asking a really dumb question, does it provide support for Sql Server 2008 types like Geography and Geometry?
I was wondering if any progress was made on the Linq subquery issue? I’ve been really enjoying SubSonic up until this point, but unfortunately this is a pretty restricting issue for me. Any suggestions?
Thanks!