I have a couple of projects coming up and I am trying to decide on
a persistence framework to use. I pretty much narrowed the scope down
to NHibernate and Fluent NHibernate, Linq2Sql, or Entity Framework
4.0 (there really on 4.0? really?). So far here is my 'superficial'
thoughts, feelings about each (note that until I actually commit to
one I won't truly understand it's benefits and/or limitations):

NHibernate/Fluent Nhibernate

Yeas

Cleanly separates persistence
layer from domain layer - you can pretty much ignore the database

Lack of centralized ownership
(IMO) - no single contributer/owner, lots of work outside the main
trunk

Documentation is all over the
place; some of it does not seem to be written clearly or lacks
steps that require some amount of presupposed knowledge of
NHibernate or one of it's dependencies

No support from any of the
larger software dev companies

From the main
source forge site I don't see much activity; i see more spam
that has _not_ been removed than new members.

First implementor syndrome?

Linq2Sql

Yeas

Super simple, limited
functionality ORM

Used it, know it, no surprises

Tons of documentation, blog
entries, SEO fodder content...everyone has had a turn

Write code while others
configure...

Nays

Obsolete - MS is moving to
Entity Framework

Minimalist ORM - you end up
adding additional features (such as caching) - this could be a
strong point as well

Poor performance with many
concurrent users until you optimize (which is relatively easy:
compiled queries, etc)

Entity Framework 4.0

Yeas

Strong MS commitment (or so it
seems, unless they have another MS Research project that
cannibalizes on this one)

Lots of current documentation

Centralized community (well
MS...)

Seems like the have addressed
the shortcomings of Entity Framework 3.0 - I won't really know
until I commit to using it, the truth always comes out in the
implementation

Nays

Previous versions of Entity
Framework were horrible

YAMSOSFAS - Yet another
Microsoft one size fits all solution

Trust - MS seems to jump from
one thing to the next - outside the grokking of us mere mortals;
what they support monday might be obsolete on tuesday.

Personal - I always either build
it myself or fall back to MS; I need some new experiances ;)

I have worries about the how easy it is to break away from
the MS model of horrible code generation experiences. I have seen
enough MS brochureware to make me sick for life. I need real world
flexibility with MY model, domain, etc. not what MS marketing
deems significant.

So that is my initial, superficial perception of each persistence
framework. Next up is looking into more specific and less subjective
reasons for liking or disliking each ORM solution.