views:

308

answers:

4

Hi all,

Starting up a new project it is 100% new development against a very large (300 tables) legacy database. The database does not match up all that well to the business model so my initial thoughts where to use a ORM.

I got a proof of concept working with NHibernate pretty well... but got A LOT of management push back on the use of "unsupported" "open-source" tool.

Any advice on other ORM solution to use? or advice on the NHibernate argument?

Thanks much.

+1  A: 

I have used Entity Framework on my last two projects, these have had similar number of tables. It has worked well for us. We split the tables into several Entity Framework models, max ca. 80 tables in one model.

Entity Framework is easier to sell to management since it is Microsoft.

Shiraz Bhaiji
re: "X is easier to sell to management since it is Microsoft." ... I wish this were true for real reasons, and not just because Microsoft is big and has a lot of money. Sometimes their stuff isn't so sharp.
Chris W. Rea
+6  A: 

If your management is willing to pay for a commercial ORM then you'd be wise to consider that route.

One limitation you may have (at present) with NHibernate (unless you're willing to use Alpha code from NHibernateContrib project) is that you currently don't have the luxury of using a LINQ / IQueryable mechanism to query using the increasingly familiar LINQ syntax. You'll still have the very flexible Criteria and HQl mechanisms, it just depends if you want to start investing in doing everything 'the LINQ way' or not?

From my research so far you have quite a few options (all supporting LINQ querying):

Raw Entity Framework (there are commercial partners that are adding tooling and features on top of it too.)

Lightspeed seems like a kind of LINQ-to-[lots of DBs] with good design time support.

Telerik OpenAccess looks similar to Lightspeed.

IdeaBlade DevForce is built on top of EntityFrmework buts adds some usability features. If you're not using SQL Server then use of IdeaBlade would ALSO require purchasing an ORACLE-EF provider from a separate vendor such as DevArt or DataDirect.

LLBLGen Pro Good range of features and active development. Been around a long time.

DevArt also do good data-access tooling and vendor-specific providers for LINQ.

[UPDATE] Production-ready LINQ support is now available in NHibernate!

rohancragg
+2  A: 

Check this list of ORM tools ".Net" every tool has its advantages and disadvantages based on the project you are going to do.

Amr ElGarhy
+4  A: 

Why don't you ask management this?

How many data access solutions have Microsoft created and killed off in the time that Hibernate/NHibernate have been around?

  • ADO
  • ADO.NET
  • Strongly typed DataSets
  • LINQ2SQL
  • Entity Framework
  • Entity Framework V2

During this time Hibernate/NHibernate have been getting more and more mature. It is not going away.

David P
Plus NHProf is a huge selling point, name an Microsoft ORM that has its own support tool?
jfar
Upvote for NHibernate. Despite that i'm desperately waiting for LINQ support. ^^
Arnis L.