I'm creating an MVC project but reluctant to use ADO.NET Entity Framework for the reason that it does not provide me a layered approach for my application (DAL, BLL). Is this correct? If so, are there alternatives?
+5
A:
Not really correct on the BLL/DAL issue (I've done it), although they don't make it easy on you. Next version in .Net 4.0 solves this for the most part.
This space is exploding, tons of choices out there.
Here is what I would consider the cream of the crop
- Entity Framework (MS choice du jeur)
- NHibernate (Huge following, but a bit of ramp up)
- Subsonic (compact and simple yet powerful)
- Linq2Sql (hey stack overflow uses it)
In general, going with MSFT is never a bad choice as the support for the product is always there, and if they stick with EF it will eventually be the best choice (they usually get it right at version 3). Nhibernate has been around for a while and there is a lot of fanatical support for them as well. Take a look at each community, easy to do by keywords here on SO.
Please don't pay for one, too many good free/open solutions out there
Interesting performance comparison here
Greg Roberts
2009-11-12 06:26:55
ormbattle.net is a very controversial comparison site, so keep that in mind too
mgroves
2009-11-12 16:10:15
also, I'd recommend Fluent-NHibernate over plain old NHibernate
mgroves
2009-11-12 16:10:55
I agree, ormbattle was just an interesting thing I found, I wouldn't put any weight into it. Any of these ORM's will perform within reason and you can always go straight to stored procs or regular ADO.NET when it makes sense.
Greg Roberts
2009-11-12 18:53:49