Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. ORM: found this.

ORM: found this.

Scheduled Pinned Locked Moved The Lounge
csharpcomperformancequestioncareer
13 Posts 9 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    R Giskard Reventlov
    wrote on last edited by
    #1

    Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

    "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

    S G M D M 8 Replies Last reply
    0
    • R R Giskard Reventlov

      Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

      "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

      S Offline
      S Offline
      Simon P Stevens
      wrote on last edited by
      #2

      It's interesting data, but I wouldn't make decisions based on it. If you are choosing to use an ORM, you aren't choosing performance, if you are after ultimate performance then write plain SQL. The reasons for choosing an ORM are about productivity, maintainability, readability, etc. I would choose an ORM based on those factors (and price), I don't really care if it can do 11000 or 9000 queries per second. [Edit: Also, they only measure plain CRUD performance of very small single objects. Personally, I'm often not loading a single object from a database, usually we are loading a hierarchy of objects, each ORM may have different performance characteristics for different types of hierarchies, and 99% of the time the object has more than just the two int64 fields their tests include]

      Simon

      R 1 Reply Last reply
      0
      • S Simon P Stevens

        It's interesting data, but I wouldn't make decisions based on it. If you are choosing to use an ORM, you aren't choosing performance, if you are after ultimate performance then write plain SQL. The reasons for choosing an ORM are about productivity, maintainability, readability, etc. I would choose an ORM based on those factors (and price), I don't really care if it can do 11000 or 9000 queries per second. [Edit: Also, they only measure plain CRUD performance of very small single objects. Personally, I'm often not loading a single object from a database, usually we are loading a hierarchy of objects, each ORM may have different performance characteristics for different types of hierarchies, and 99% of the time the object has more than just the two int64 fields their tests include]

        Simon

        R Offline
        R Offline
        R Giskard Reventlov
        wrote on last edited by
        #3

        Simon P Stevens wrote:

        It's interesting data, but I wouldn't make decisions based on it.

        Which is why I'm asking the question!

        Simon P Stevens wrote:

        If you are choosing to use an ORM, you aren't choosing performance, if you are after ultimate performance then write plain SQL.

        Given that I'm looking at ORM I want the best performing!

        Simon P Stevens wrote:

        The reasons for choosing an ORM are about productivity, maintainability, readability, etc. I would choose an ORM based on those factors (and price), I don't really care if it can do 11000 or 9000 queries per second.

        Fair point - again, why I'm asking the question!

        "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

        S 1 Reply Last reply
        0
        • R R Giskard Reventlov

          Simon P Stevens wrote:

          It's interesting data, but I wouldn't make decisions based on it.

          Which is why I'm asking the question!

          Simon P Stevens wrote:

          If you are choosing to use an ORM, you aren't choosing performance, if you are after ultimate performance then write plain SQL.

          Given that I'm looking at ORM I want the best performing!

          Simon P Stevens wrote:

          The reasons for choosing an ORM are about productivity, maintainability, readability, etc. I would choose an ORM based on those factors (and price), I don't really care if it can do 11000 or 9000 queries per second.

          Fair point - again, why I'm asking the question!

          "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

          S Offline
          S Offline
          Simon P Stevens
          wrote on last edited by
          #4

          In answer then, my experience of ORMs: Linq-to-sql: Nice, limited support for more complex hierarchy/table mappings. EntityFramework v1: OK, severely lacking decent n-tier support, but can do table-per-sub-class which LTS can't. Probably not ideal for a big live system. EntityFramework v4: Not had a chance to actually try it out yet, but from what I've read they have addressed most of the issues I had with v1, in particular n-tier and POCO support is supposedly much improved.

          Simon

          R 1 Reply Last reply
          0
          • S Simon P Stevens

            In answer then, my experience of ORMs: Linq-to-sql: Nice, limited support for more complex hierarchy/table mappings. EntityFramework v1: OK, severely lacking decent n-tier support, but can do table-per-sub-class which LTS can't. Probably not ideal for a big live system. EntityFramework v4: Not had a chance to actually try it out yet, but from what I've read they have addressed most of the issues I had with v1, in particular n-tier and POCO support is supposedly much improved.

            Simon

            R Offline
            R Offline
            R Giskard Reventlov
            wrote on last edited by
            #5

            Thanks.

            "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

            1 Reply Last reply
            0
            • R R Giskard Reventlov

              Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

              "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

              G Offline
              G Offline
              Giorgi Dalakishvili
              wrote on last edited by
              #6

              Here is a blog post about ORM Comparison: Benchmarks are useless, yes, again[^] Keep in mind that the producers of DataObjects are behind the website you linked.

              Giorgi Dalakishvili #region signature My Articles Browsing xkcd in a windows 7 way[^] #endregion

              R 1 Reply Last reply
              0
              • G Giorgi Dalakishvili

                Here is a blog post about ORM Comparison: Benchmarks are useless, yes, again[^] Keep in mind that the producers of DataObjects are behind the website you linked.

                Giorgi Dalakishvili #region signature My Articles Browsing xkcd in a windows 7 way[^] #endregion

                R Offline
                R Offline
                R Giskard Reventlov
                wrote on last edited by
                #7

                Nice one: thanks.

                "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                1 Reply Last reply
                0
                • R R Giskard Reventlov

                  Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

                  "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                  M Offline
                  M Offline
                  Member 96
                  wrote on last edited by
                  #8

                  That's silly. You absolutely definitely do not need to use LINQ for anything, it brings no value to the END USER who is the ultimate target of any software project so throw out that chart and get serious with your research. I would throw CSLA[^] into the mix for consideration if you're serious about this. You get the source code, it's free, it's well tested and has a huge user base and probably supports LINQ as well though I think you're mad if you use it. :)


                  Yesterday they said today was tomorrow but today they know better. - Poul Anderson

                  1 Reply Last reply
                  0
                  • R R Giskard Reventlov

                    Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

                    "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                    D Offline
                    D Offline
                    Dominic Pettifer
                    wrote on last edited by
                    #9

                    The whole reason you use an ORM is for the productivity and maintainability enhancements, not performance. Honestly, just buying a slightly faster CPU or more RAM is cheap compared to the costs of hiring expensive top tier developers. If you’re building a large enterprise application it can be hard and laborious to write potentially 1000’s of SQL strings and raw ADO.NET code strewn all over the codebase. An ORM lets you take advantage of the power of your Object Oriented Programming language to define rich domain models, that communicate your business domain more clearly than what you can do with just having a bunch of SQLCommand’s and SqlConnections and SqlDataReaders all over the place. You might want to read up on something called Domain Driven Design (http://en.wikipedia.org/wiki/Domain-driven\_design), which is essentially what I’m describing. Honestly, I’d rather write:

                    Category category = CategoryRepository.FromId(categoryId);
                    IList<Product> products = category.Products;

                    ...than trying to write the equivalent in RAW ADO.NET/SQL which would probably be dozens of lines of code long, and I bet the performance difference could barely be measured in milliseconds, a performance degradation that could easily be recouped by spending an extra £100 on a slightly faster CPU vs. spending potential thousands on extra contractors to maintain your 1000’s line of ADO.NET/SQL code all over your codebase. Also the above code communicates the design of this system more clearly than the equivalent ADO.NET code. Though some ORMs have constraints, most are very flexible, for instance Linq 2 SQL and NHibernate let you map actual Stored Procedures if you need to perform a complex query that can’t be done by the ORM, but 90% of the time I’m writing relatively simple queries that can.

                    Dominic Pettifer Blog: www.dominicpettifer.co.uk

                    modified on Thursday, July 1, 2010 5:05 AM

                    1 Reply Last reply
                    0
                    • R R Giskard Reventlov

                      Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

                      "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                      M Offline
                      M Offline
                      MaDhAt2r
                      wrote on last edited by
                      #10

                      I use LLBLGen Pro. Lots of features, not to pricey. Great support.

                      1 Reply Last reply
                      0
                      • R R Giskard Reventlov

                        Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

                        "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                        E Offline
                        E Offline
                        englebart
                        wrote on last edited by
                        #11

                        This product has a free trial period. I have not used it (I do Java), but some of the dotNET people in a different group use it. http://www.orasissoftware.com/[^]

                        1 Reply Last reply
                        0
                        • R R Giskard Reventlov

                          Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

                          "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                          A Offline
                          A Offline
                          ArchimaX
                          wrote on last edited by
                          #12

                          Why not just build your own ORM using generics (and reflection, if you don't mind the slight performance impact)? Then you can adjust it to your performance/usability needs. (And you can fix any bugs that may pop up, instead of relying on somebody else) I wrote my own ORM a few years ago, when .NET 2.0 came out, and I'm still using it. Offhand, I'd be surprised if it's more than 500 lines of code. 2c [edit] - Ok, it's 2619 lines of code

                          1 Reply Last reply
                          0
                          • R R Giskard Reventlov

                            Was thinking about looking at alternative ORMs for a new project when I found this: ORM Comparison and Benchmarks[^]. DataObjects.Net[^] looks to be providing the best performance (in the context of the tests used). Anyone used this? Is it worth looking at? Anything better out there?

                            "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                            J Offline
                            J Offline
                            JohanJvR
                            wrote on last edited by
                            #13

                            I use LightSpeed from Mindscape for all my projects their support is excellent and they try to help you when and where every they can. To comeback to the ORM Comparison and Benchmark website they used a verion that's about 2 years old. Latest version on the 12 of July is 3.1.1713. http://www.mindscape.co.nz/

                            Develop with Passion!

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups