views:

376

answers:

4
+1  Q: 

ORM frameworks

I need to collect some information about existing ORM solutions. Please feel free to write about any programming language.

Can you tell about the best ORM framework you ever use and why is it better then others?

+3  A: 

I used NHibernate and Entity Framework.

Current stable version of entity framework is very immature. It is too difficult, or impossible to perform common tasks. Testing your code is also difficult since you cannot really separate your entities from your data access classes. But it perfectly integrates with visual studio ide. Setting up is easy and updating all the models from database takes just a few seconds. Upcoming version of EF (4.0) will solve some of this problems.

NHibernate is quite powerful. It supports plain old clr objects, so you can work with simple entities. Configurations provide great control in great detail. Framework capabilities are satisfying and it has a large and active community and good documentation. Setting up and updating entities is a little difficult since you must use generators that looks up your database and generates entities and xml files. It may be tricky to find a generator or a template that exactly fits your needs. But once you set all things up, you will love it.

Serhat Özgel
+2  A: 

I found LINQ to SQL to be a pretty straight forward solution. The first time I used it, I'd say I had a basic ORM working within a few hours, and was creating LINQ queries with it.

Microsoft has an additional ORM (Entity Framework), which I've heard is more complex but may be useful for highly complex distributed applications with multiple data sources etc.

Overall I found LINQ to be an easy and fast to use ORM.

alchemical
+3  A: 

Hi there,

I have been looking at Telerik Open Access for last few months, in genernal this ORM has been a pain to work with, it was advertised as having extensive linq support but in reality many of the linq features you would normally expect dont work server side and are performed on the client. I also had problems using multiple conditions in a where clause, see my last question. Here are a few things that i found

  • No support for views
  • Unable to map more than one entity to the same table
  • Inheritance and Interface support requires you to make changes to you database schema
  • No visual designer like LINQ to SQL and Entity Framework
  • If you want to perform an insert any related entities must be fetched first

Rohan

Rohan West
A: 

Hi,

LINQ2SQL was nice, EF makes sense, but is very complex and SQL Server oriented. NHibernate is special and Telerik OpenAccess (fully .NET / Visual Studio) got a broad set of functionality and professional support.

Since I know the product I can comment on Rohan's concerns:

  • Existing Views can be used and full Views support is coming up
  • Mapping more than one entity to the same table "works" for class hierarchies, limitation with reverse mapping exists
  • Inheritance and Interfacer support "do not require" changes to the the database schema, again limitation with reverse mapping exists though
  • Visual Designer will come, Forward and Reverse Mapping Wizards allow you already to do anything in an easy way
  • There is a workaround for the insert issue mentioned and it will be fixed generally

Check out the Telerik site to find happy customers and feel free to use the telerik forums and support resources for any question.

-Peter

you obviously are a Telerik salesperson. I too have used Telerik OpenAccess ORM and dont wish it on my worst enemy. TCP/IP is required for ORM authentication. I cannot build a client release because ORM requires TCP/IP access to the server. This is no good as it forces me to be on site to do a build.If you know of another way to build deployment packages, outside of a network, please let me know. Otherwise, use nHibernate. I really recommend nHibernate over anything else Ive ever used.
Devtron