7

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.

Ting
  • 1,658
  • 16
  • 26
Todd
  • 1,461
  • 2
  • 13
  • 27
  • 2
    If you use NHibernate or something else, I would definitely explain management that the use of "unsupported" open source tools is not a greater risk than using commercial products. It's your managers job to understand how open-source works and to estimate risks in development properly. Incompetent managers are not an excuse to move to an inferior product (unless you are Dilbert of course). – Paco Jun 28 '09 at 12:57
  • Chiming in that NHProf is an extremely useful tool if your using NHibernate. – John Farrell Jul 02 '09 at 20:16
  • 2
    Just an updated... we went the NHibernate route !!! We did a proof of concept using a couple of the leading orm's and NHibernate won. Simply stated the facts to management of risks and rewards and they approved the decision. – Todd Jul 15 '09 at 12:49

3 Answers3

6

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
  • 5,030
  • 5
  • 36
  • 47
4

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
  • 3,604
  • 3
  • 37
  • 54
1

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
  • 64,065
  • 34
  • 143
  • 252
  • 1
    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 Jun 28 '09 at 13:33