Bob and others....

Trust me, the Entity Framework won't even come close to iBATIS.  Here is
some information I can share (because it's already public):

1) The entity framework is a HUGE abstraction on top of your database.  It's
literally another layer.  Databases have various layers including the
physical layer (files on disk, tablespaces, spans etc.).  The logical layer,
which is your relational table model and the thing you write SQL against.
The next layer is the conceptual layer, which today you'd only know as the
first diagram you draw when thinking about a new database design.  For
example, an ERD without bridge tables might be an example of a conceptual
diagram.  Or, more common, the classes you map to relational databases today
are good examples of conceptual models.  The Entity Framework makes that
conceptual layer real at the database level itself.  It sits between your
classes and tables with its own schema or model if you will.  So you might
have an Employee class, an Employee table and an Employee Entity in
between.  It's a layer of abstraction -- a HUGE layer of abstraction.

2) In implementation, it is in fact closer to NHibernate than it is to
iBATIS and therefore "threatens" hibernate more.  It's an Object Relational
Mapper that exposes more of its guts than most do.  As a result, it suffers
all of the same consequences of any Object Relational Mapper -- all of the
very problems iBATIS seeks to solve.

3) As an ORM, the Entity Framework struck me as EXTREMELY overcomplicated.
In the original implementation it took 4 XML files to map any given class to
any given table.  Microsoft's plan to aleviate this was to offer tools to
generate and maintain the XML files....we all know how that goes.
Furthermore, it's basically impossible to use the Entity Framework with LINQ
without generating code.  LINQ to Entities requires that you generate a LINQ
compatible database abstraction that you can query against.  This is sort of
obvious, as LINQ needs real symbols (class names and field names) to work
against...it doesn't work against strings.

So far you're dealing with the Entity definition XML that is best
generated/created with a tool, mapping files which are best created with a
tool, and generated C# code that can only be generated by a tool unless you
can type as fast as the android Data from STNG fame.   ;-)

Sound familiar?

Anyone who has been a J2EE developer will have nightmarish flashbacks to
EJB2.  The Entity Framework strikes me as the EntityBeans of the .NET
world.  If you go read the EntityBean chapters from Mastering Enterprise
JavaBeans from Ed Roman, then go read the Entity Framework whitepapers from
Microsoft's site, and download the demo pack, you'll understand exactly what
I mean.

In my opinion Microsoft is making a huge mistake with the Entity Framework.
I won't even get into the politics of who maintains the conceptual
model...the developers or the DBA...  ;-)

iBATIS has absolutely nothing to worry about.  DLINQ is more likely to win
over some iBATIS hearts based strictly on the simplicity of DLINQ. But that
simplicity is also a weakness of DLINQ as it too is an ORM, but not as good
as NHibernate and not even in the same class as iBATIS.

Cheers,
Clinton

On 1/31/07, Bob Hanson <[EMAIL PROTECTED]> wrote:

http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx

Will the ADO.NET Entity framework make iBATIS.NET obsolete? It appears
that it will provide the same type of mapping framework as iBATIS
while also providing tools for mapping and code generation. Throw in
LINQ to Entities and it would seem that MS will provide a framework
that would be equivalent to iBATIS plus LINQ to iBATIS (assuming the
latter was eventually written).

Thoughts?

Reply via email to