Devexpress XPO vs Entity Framework

MRS used Ask the Experts™
I am currently evaluting whether to use the Microsoft Entity Framework or the DevExpress XPO (eXpress Presistent Objects) for a new application i am developing.

I will be using the VS 2010 development platform, VB.NET as the developing language, and Microsoft SQL for the backend database.  The application will be a Personnel tracking system to give you an idea of the kind of information that will be stored in the database.

Has anyone had experience with both of these solutions, and could you give me your opinion of the pros and cons of each.   Obvioulsy a lot of it is opinion as there are many ways to skin a cat, i am just looking for some input from someone who has experience with both.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Manager / Solutions Architect
Hi mate,
I used XPO a lot a few years ago and still have an application on a customer on top of that.

From my experience, XPO works pretty well if your query needs are not too complex.
The deployment is also great, as it creates your schema automatically if the database isn't found, but usually with the schema goes some default data too and we end still needing to create scripts.

Another difference is that XPO work on the opposite direction of most ORMs.
Usually the ORM logic is to create the database and it will generate the classes, on XPO you create the classes and it generates the database which can be a lot of work to configure specially if the DB is big and with a lot of relations.

Entity Framework (EF), in my opinion is a lot more flexible when it comes to querying.
XPO also has a Linq to XPO but although it looks nice, feels like heavier to me.
The integration with SQL Procedures and Functions is transparent and the modeling view is way better than than previous LINQ to SQL  version (which looks like its going to die soon btw).

Also on EF, the code is generated using T4 templates, which is a templating language.
You actually have access to these templates so you can customize them if you need it to generate more code, something specific for your project.
You also have access to all the "action", all the code is generated, you can debug everything that happens behind the scenes.

So, for me, and as a big DevX fan, I'm not pleased but I prefer EF than XPO.

A side note tho is that I also use SubSonic, a custom generator that I've made and also MyGeneration.
All cool code generators.



Thank you for the great explination and the input.  What you describe confirms that i was one the right path...

XPO sounds like a great technology for small, basic data apps, but for large database heavy applications I think i will stick with EF...

Thanks again for the great information...

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial