Well, these two very different animals!
Subsonic 3 is a great tool for simple and easy mapping of a database structure of approximately 1: 1 to object classes, where each class will be an exact representation of a table in a base database (as is the case with Linq-to -SQL).
On the other hand, the Entity Framework aims at more complex scenarios where your domain or object model (your classes) will not necessarily map 1: 1 tables to the database table. That is why EF has a trilogy of XML files, describing the conceptual level (objects of your domain), one storage level (database layout) and the mapping between the two.
IMHO, Subsonic 3, and Linq-to-SQL are ideal for fast, small, and medium sized projects where your database is flexible enough to change if necessary, and where you have a fairly simple mapping of your objects to tables. EF really shines in large-scale enterprise applications, where the database level can be set in stone, and you cannot change it - or your application must survive, even if the database of the undermines is changed.
Completely different animals - completely different audiences, in my opinion.
Mark
PS: I wonder if Tim really used Subsonic 3 in this comparison and what exactly he did. My gut feeling would be that EF would be a “big” overhead and therefore could be a little less productive (but more flexible in Enterprise scenarios that are worth their weight in gold, even if it sacrifices some performance)
marc_s
source share