I'd like to ask: where and how linq is faster than Subsonic?
My opinion is that Subsonic is an excellent architectural choice for many reasons that extend beyond how fast the code executes.
I recently needed some simple data from an existing table in a foreign database. While we use Subsonic, and this table happened to be a subsonic cms table, I didn't want to gen the whole DAL just for one table. Using LINQ for sql (for the first time, mind you), I was able to quickly map my tables to a class and get the data I needed. However, when I have a database with many, many tables and I want full, programatic, object based crud capability on everything, nothing is faster than my Visual Studio "Subsonic" command. I can add an entire database to my project and with nothing more than two lines in config, have a DAL for that in seconds. Then, I can work to extend those objects in any way I see fit and use them in my app. There are more things to consider than just "how fast a query runs". If you are using good design patterns, caching should be simple and transparent. I can attest that Subsonic is very fast and pretty much stays out of the way. I've also used nHibernate extensively and will report that nHibernate provided much more capability but caused alot more problems that required coding solutions. Additional code is bad, I have a young boy growing up too fast to waste time writing data access code.
The father of Subsonic is now a Microsoft employee as a result of his excellent work on Subsonic. That says quite a bit. Microsoft recognized the value of his work, and how it compliments the tools and languages we use, so much they hired hizzazz.
What exactly would be a good catalyst for a switch from Subsonic to Linq?
Thanks for hearing my opinion...