Below you will find an extremely simple prototype that uses XPO hosted within web application (http channel) with the binary encoding. You will need to have DevExpress components installed and Visual Studio 2008.
Now, before you continue, here is an important caveat - don’t use XPO in any complex project. It will just become bottle-neck there.
In my case complex project means:
- 41 Visual Studio projects (74k LOC and 35k statements)
- 3 integration projects on CC.NET
- 417 revisions over 6 months
- 2Gb+ FileStore in production system
- All the features of the xLim 2 approach (and some more)
Here’s the Kiviat metrics graph:
And these are some of the problems with the XPO:
- Linq2XPO implementation is horrible (I’m not even talking about decent documentation)
- Flexibility is extremely low (most of all I miss custom mapping routines and ability to specify custom queries)
- Generated SQL is quite inefficient in complex requests
- Remote communication is too chatty by default
As you can see, these problems of mine mostly come from the Lego scenario.
If I were able to start the project from scratch, then I’d probably (would have to do some prototyping first) use NHibernate. Half a year ago there was no chance of using it, since DX controls would not be able to work with NHibernate in server mode.
Ok, you have been warned. Now you finally can download sample of XPO hosted on a web site (remoting with binary encoding + http channel).

Hi,
Thanks for the blog post, it’s always appreciated. Regarding those perf problems you were mentioning - have you contacted our support about this? I’m pretty sure we can work out a solution, and in any case we’d be interested in some detail of the issues you’re seeing. Your application is of course quite complex, but then we have other customers with similar scenarios…
Thanks
Oliver Sturm
Developer Express
Hi Oliver,
Mainly these are not real issues, but just rather the architectural and functionality things (features) that logically go beyond the scope of XPO as it stands.
DevExpress support is really good when it has to deal with issues, but running new feature requests through it (i.e. simply restating some features of Hibernate while keeping in mind XPO specifics) would take too much of my time with undefined TBD date. Simply switching new xLim implementations from XPO to NHibernate is likely to be much more efficient.
Please feel free to ask any questions.