ADO.NET vNext is not "yet another ORM"

Posted on 10/10/2006 @ 2:07 AM in #Vanilla .NET by | Feedback | 2916 views

So, I'll blog about the crazy fun experiences last night in Sofia, Bulgaria later, but first I must throw in a techie blogpost about a conversation I had with a fellow speaker(s) about ADO.NET vNext.

I get the impression that folks are targeting this as "Yet another ORM, thus a bad idea" - I wish they'd give it a tad bit deeper look though.

Here are two quick points I'd like to make.

a) ADO.NET vNext, is not just yet another ORM. It takes a minimalist approach, and targets only the conceptual schema. It is not everything and the kichen sink, rather than targeting the problem of "object to relational mapping", it targets the "conceptual to logical schema mapping".

b) ADO.NET vNext introduces client views, conceptual schema, and eSQL. In doing so, under the scenes it borrows concepts from RDBMS applied to conceptual schemas. It thus brings set based theory into a higher level language.

.. okay now back to more fun @ Bulgaria (gotta prep for my presentation before I blog about that).

Sound off but keep it civil:

Older comments..

On 10/11/2006 6:56:55 AM Mark Bonafe said ..
Point a seems confusing. "conceptual to logical schema mapping" seems like just another way to say "object to relational mapping." Objects are, after all, a developer's conceptual view of - in this case - a piece of data.

Could you please elaborate on this?

On 10/11/2006 11:58:52 AM Sahil Malik said ..
Mark -

No they are not. Object to Relational mapping is simply a singular instance of conceptual to logical schema mapping. There are many other ways of solving this impedance mismatch, for instance, rather than making relational db more like objects, you could go the other way around where objects can be made more relational. ADO.NET vNext provides the bare minimum facilities to turn logical data into conceptual, with 4 basic principles - entities, relationships, inheritance (only data, not behavioural) and complex types. This is not ORM.


On 10/12/2006 6:59:03 AM Mark Bonafe said ..
Sounds like ORM in reverse. So instead of getting the database to use objects the we need them, we get the objects to act more like a relational database.

The more things change, the more they stay the same...

Sounds like OO is dying because the major players in the database game refuse to put the effort into what is really needed.

On 10/12/2006 2:05:30 PM Sahil Malik said ..
Mark - Maybe.

But I would argue that the oodbms idea was theoretically nice, but never thought through properly. It is simply impossible to persist data reliably in that fashion - unless you put another 40 years of research into it. Data has been choosen to be stored in a relational form, because it just works better that way. Also, the biggest difference between other ORMs and ADO.NET vNext, is the inclusion of set based theory - foxpro like - right in the higher level language.

Frankly, I think of everyone, Microsoft is addressing this problem correctly.


On 10/12/2006 2:17:40 PM Mark Bonafe said ..
I'm a big, BIG, fan of FoxPro. Like I said, the more things change, the more they stay the same. FoxPro could already do the things you mention nearly 15 years ago!

If the concept was so good back then, then why don't we just go back to using FoxPro? It has been OO for 10 years and is very fast.

Unbelievable.... "Hey guys, we had it right the first time. Let's go back and try it again." Only why did we shift from that style of development in the first place. There must've been a good reason. My guess is that reason will rear it's ugly head again and the cycle will continue.

As far as the OO database goes, I think you are very wrong. There are very good OO databases out there and they are successful - and getting better all the time. db40 is an awesome database, . It works very well in a stand-alone or client/server environment, with standard C# code!

On 10/12/2006 9:27:01 PM Sahil Malik said ..
Mark -

The IT Industry seems to keep reinventing the same inventions over and over again :). I guess we won't go back to FoxPro because .. well .. it isn't C#? (I know silly reason - but you know what I mean). I agree FoxPro was simply awesome from a productivity point of view.

Now a good OODBMS is a theoretical impossibility. But that is a topic for a long discussion over a bottle of wine, whenever we meet.


On 10/13/2006 6:08:25 AM Mark Bonafe said ..
We'll meet someday, I'm sure. I don't get out much these days, and you, it seems, get out too much! ;)

C# is a very sweet language. Yes, I know exactly what you mean.

I'd love to hear about the theoretical impossiblility of a "good" OODMBS. I love talking about theories and, you know, I'm not short on opinions; but it works for me.

On 10/14/2006 5:50:39 AM Sahil Malik said ..
Yes, it's true, I get out more than I want to. I think next year, I will slow things down a tad bit.