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
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.
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.
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.
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 :)
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.
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.