views:

1084

answers:

9

I am about to start a project for a potentially heavily accessed ASPNET MVC application and I was thinking to use Subsonic for my DAL. I have some concern about the ability of Subsonic to handle thousands of concurrent requests. Can anyone give me some examples of popular web sites using Subsonic? Also if you have any suggestion regarding a possible substitute to Subsonic, besides NHibernate, that would be great as well. Thanks

+7  A: 

Thousands of concurrent requests? Are you sure that's likely?

For what it's worth, DotNetKicks uses SubSonic, and never seems to have performance issues.

Dave Ward
A: 

Well, the project has a base of several thousands users. Are there going to be thosands of concurrent requests? This I don't know for sure, but I want to be prepared.

Thank you for the DotNetKicks example, this helps a lot.

A: 

As a guideline, if you have 1000 users, you won't have more than 1 or 2 concurrent users. At least in my experience. To have 1K concurrent users you should have at least 500K-1M users.

Sklivvz
A: 

That is aproximately the number of users we expect.

+2  A: 

SubSonic is a tool and you have to use it wisely like adding Caching to your site and closing the IDataReader if you use them sometimes.

Yitzchok
A: 

Absolutely. That's why I want to make sure that I am doing the right choice choosing it.

+6  A: 

I wrote a post on SubSonic's scaling here: http://blog.wekeroad.com/blog/subsonic-scaling/

The thing about it is that we allow you to do what you need to do - you don't need to do to achieve application happiness. You can use Inline SQL if you like, or 1 of 10 different ways to query your data. We try not to stand in your way :)

Rob Conery
+4  A: 

I do about 4-5M requests a month through SubSonic without an issue, in fact it is super-quick and my server is hardly taxed. Those requests peak during the day so while we don't get up to 1000 concurrent requests I have been very impressed with SubSonic under load. Because it uses generated code it is actually going to be faster than most of the ORM you find out there.

James Avery
You have a good point - generated code is a key factor for performance.
David Robbins
+1  A: 

The performance of Subsonic is adequate for enterprise applications.

However, if performance is a major consideration, be aware that Entity Framework is faster, typically about twice as fast:-

http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic

EF is also fully integrated with Visual Studio and offers a more complete, more advanced set of features if needed.

Tim