Search code examples
c#.netormdata-access-layer

What ORM to Run: telerik Open Access VS Subsonic VS linq to sql VS Active Record


We are looking into using an ORM and I wanted some opinions/comparisons

The basic criteria we have for an ORM is: Easy to use/configure(short learning curve), flexible, the ability to abstract it away, easy to maintain

Here is a list of what ORM we are looking at and what our initial impressions are

  1. Open Access - seems really easy for simple stuff, but doesn't seem to have a lot of flexibility, cost isn't an issue we already own it
  2. Ling to SQL - looks very simple to use and configure but is missing some functionality
  3. Active Record - NHibernate made simple
  4. SubSonic - looks very feature rich, but haven't really played with it much

here are the ORMs we have looked at and ruled out

  1. Entity is still in beta
  2. NHibernate has far to much of a learning curve (we don't have 3 weeks to delicate to learning it)

Solution

  • We currently use SubSonic (2.0.3) and it has been an absolute lifesaver. I cannot stress enough how awesome it is. HOWEVER, we are now looking at switching away from it for various reasons (probably to NHibernate or Entity). Here are my Pros and Cons of it:

    Pros:

    • Very simple to setup and use.
    • Lots of great & useful, tools and features
    • Uses the "convention over configuration" philosophy, so very little configuration. It "just works". (As long as you do things the way it wants... :) )

    Cons:

    • Your database design is very tightly coupled to your domain design. Make a change in your DB, and you need to change your code/domain design.
    • By default, SubSonic uses the ActiveRecord pattern for all data access instead of the Repository pattern, which makes it more difficult to "abstract it away". (Although I believe with v3.0 that you can swap out the default ActiveRecord templates to use the Repository pattern).
    • Lots of pessimistic rumours flying around about the future of SubSonic. But rumours are just that: Rumours.