These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: ADO.Net 3.0 Entity Framework, the end of NHibernate?
PostPosted: Wed Jul 12, 2006 1:26 am 
Newbie

Joined: Thu Nov 17, 2005 6:37 pm
Posts: 13
Hi,
I've been evangelical about using NH over the last 18 months, but now believe the ADO.Net 3.0 Entity Framework (combined with LINQ) will make NH redundant for .net developers. Am i wrong?

If you read the documentation http://weblogs.asp.net/fmarguerie/archi ... ments.aspx

it's pretty clear MS are taking this seriously.

VS.Net Orca looks like it will contain built in support for modelling the mapping layer, generating object models etc. etc. tools which are sorely lacking for NH communitey (yes, i know there are codesmith templates etc. but on fully integrated support).

From the doco :http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/nxtgenda.asp

"Automatically Generated Classes
Having the conceptual level is indeed sufficient for many applications as it provides a domain model that is live within the context of a comfortable pattern (ADO.NET commands, connections and data readers) and allows for great late bound scenarios since return values are self describing. Many applications, however, prefer an object programming layer. This can be facilitated through code generation driven from the EDM description. Within Visual Studio, one can leverage an ADO.NET aware build task to generate the corresponding code. For increased flexibility and data independence between the object and conceptual level, there may be another level of mapping between classes and the conceptual model. This would enable applications built against these classes to be reused against versions of the conceptual model provided a legal map can be defined. For the mapping between classes and the conceptual model the constraints are minimal and are along the lines of preserving identity and fidelity of round trips. The following diagram illustrates the classes from same solution."

This is potentially even more powerful than NH. We have a conceptual model that maps to various physical and logical views of an entity. The domain model is not therefore restricted by such modelling, so we can creatre rich object models using the mapping approach.

We also get built in visual mapping and code generation tools etc. etc.

What do others thing, is this really the end of NH??


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 12, 2006 4:13 pm 
Newbie

Joined: Mon Jun 26, 2006 12:27 pm
Posts: 16
At first glance it looks like they are trying to produce something an easy to use as Ruby on Rails' ActiveRecord and yet accomodate the fact that you cannot always control the underlying data source, something that Rails depends on. At this point I think it's pretty early to wonder about NHibernate being dead. This thing is probably a long way off and don't forget ObjectSpaces and WinFS. Even if it gets to production (I'm assuming it will in some form because it involves language changes), it doesn't mean it will be the best solution. Microsoft has it's logging component in it's Enterprise Library, but a lot of us still prefer log4net which I believe is still lighter and faster.


Top
 Profile  
 
 Post subject: vs.net integration
PostPosted: Wed Jul 12, 2006 4:43 pm 
Newbie

Joined: Thu Nov 17, 2005 6:37 pm
Posts: 13
Hi,
From the video on channel 9, it looks pretty advanced to me. Also, if they get the vs.net integration right, and there looks to plenty of mapping tools and generation (Screen shots available from the msdn link), this could be the biggest thing.

http://channel9.msdn.com/ShowPost.aspx?PostID=202138

Making it easy for developers to get to grips with a new technology like orm will be what ms can do with their budget. Even if it's not the best ORM solution, MS developers will use it because it offers integration.

However, from what i can see the LINQ efforts expose an IQueryable<T> interface that can be implmented by an ORM mapping layer, not just LINQ for Entities, and they do say they are working on a provider model.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 12, 2006 6:16 pm 
Newbie

Joined: Thu Feb 03, 2005 9:25 am
Posts: 4
I really don't think LINQ will 'kill' NHibernate. Just as AJAX.NET has flourished (and has received kudos from Microsoft) despite the evolution of ATLAS in the AJAX programming space, there will (and should) always be demand for non-proprietary open source multi-platform ORM layers to mitigate IT vendor risks, maximize infrastructure flexibility and keep object purists happy.

BTW...I'm currently working on integration tools like the ones described in this post and should have more to say about them at the end of the summer.

Brad Gronek

Alipod


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jul 13, 2006 8:11 am 
Newbie

Joined: Mon Jun 26, 2006 12:27 pm
Posts: 16
There's not doubt if they make it part of the VS environment and push it, that a lot of developers will use it just because it's there and because there are a lot of VS developers who just use whatever Microsoft has and don't think outside the box to open source tools like developers in other environments that are a bigger part of the open source ecosystem tend to do.

The fact is that there are two different paradigms. One is OO development and the other is relational storage. Both are currently arguably considered the best way to handle each of their own concerns, the one being application development and the other being data storage. That said, tools like NHibernate tend to follow the philosphy of letting the developer use OO development because that is what makes sense in the application realm and it tries to take care of translating that to relational storage which makes the most sense in the data persistance realm. Other techniques like ActiveRecord lean more towards directly translating the relational storage into objects. It can be very powerful but a little more constraining than the other approach. I'm not completely convinced about one always being better than the other. In C# land, I like to develop with NHibernate and use more pure OO, but at the same time I'm impressed with what I see in Rails and it's ActiveRecord implementation.

From what I can see here they are trying to mash up OO development with the relational storage paradigm, i.e. a more ActiveRecord type approach, but I'm not sure if building it that deep into the language is a good idea or not. Coming from a UNIX background, I like the idea of a clear separation of concerns, and they are blurring the lines of separation. At the end of the day, yes whatever MS pushes will get significant mind share amoung Visual Studio only developers, but there will still be those of us who aren't quite comfortable with all their approaches and will want something that, in our opinion, is cleaner, more lightweight, more straighforward, and even perhaps more flexible.

Regardless, it is definitely interesting to see their approach.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.