Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any thoughts on DevExpress XPO ORM Package? [closed]

Tags:

XPO is the object relational mapper of choice at my company. Any thoughts on the pros and cons?


I was just looking for general feeling and anecdotes about the product. We are not switching to XPO. We are just getting rid of hard coded sql strings living in the app and moving completely to ORM for all data access.

like image 517
Ben McNiel Avatar asked Aug 28 '08 02:08

Ben McNiel


2 Answers

Others will probably pitch in with technical answers (e.g. the query syntax, use of caching, ease or otherwise of mapping to an existing database structure) -- but if you have an established ORM layer the answer is probably

"Why change"?

I've used XPO successfully for years in an established commercial product with several hundred users. I find that it's fast, flexible and does the job. I don't see any need to change at the moment, as our data volumes aren't particularly large and the foibles (caching, mostly) are things we can work around.

If I were starting afresh I'd definitely look at both NHibernate and the ADO.NET Entity Framework. In practice, though, all are good; I'd most likely look at the commercial situation for the project ahead of the technical questions.

For instance, NHibernate is open-source -- is there a viable community there to support the tool and to provide (if necessary) commercial support?

XPO comes from a tools vendor, are they likely to remain in business for the lifetime of the product?

ADO.NET Entity Framework comes from Microsoft, who are notorious for changing database technologies more often then Larry fills his fighter with jet fuel -- will this, too, fade away?

like image 91
Jeremy McGee Avatar answered Sep 28 '22 06:09

Jeremy McGee


I have found XPO very frustrating to work with. The main idea of an ORM is to abstract away the underlying data structure. But very quickly you'll notice that they have the default string length hardcoded to 60 chars, so you end up adding these ugly string.unlimited things around every string. So much for abstraction...

When modelling more complex object you have to use a lot of syntax that really has no place in your object model, like XPCollection. I wanted to store a class which had a dictionary of strings on the class, but sadly XPO was not able to automatically store this into the database.

So while it works ok for simple types, it very quickly breaks down when you want to store more complex things. That combined with their mediocre support really leaves a LOT to be desired.

like image 28
Anders Rune Jensen Avatar answered Sep 28 '22 05:09

Anders Rune Jensen