Friday, June 9, 2006
XPO is an Object Relational Mapping .Net product from Developer Express, a cool company designing cool tools.
It’s a programming component whose job is to abstract access to database while allowing the developer to concentrate on a simple object-oriented interface instead.
There is an impedance mismatch between the usual programming technology and the database worlds.
The mismatch occurs because most development is object-oriented and most database systems are query-based.
Getting data from the database into your objects and back is tricky and difficult to maintain: any modification in either camp needs to be reflected to the other.
One solution is to use an intermediate layer to take care of the impedance mismatch for us: that’s the job of he ORM.
When I initially took the decision to use an ORM I tried and reviewed a few. Each have a different way of doing their job and place emphasis on different things, depending on the school of thought they belong to.
Most still require a database-centric view and either abstract the whole and let you deal with meta-data that used to modify both code and database or they just let you modify the database and then update automatically the code.
Then there was XPO.
This one was a bit different: it really completely abstracted the database. It would create and update it automatically (whenever possible) without you having to ever deal with how the data is stored: it would work in the exact same way regardless of the underlying chosen database.
You could even use it on an already existing database and it would be happy to talk to it.
So I chose XPO.
It didn’t have fancy designers but it offers a simple, reliable and flexible way to persist my objects in the database of my choosing.
One thing to note too is that you can get it with full source code (not commented though).
I find it reassuring when a company doesn’t mind its code to be scrutinised by its customers. It’s also proven invaluable in finding out XPO’s inner working (not that I understand a lot though).
I’ll be blogging a few articles in the future on various aspects of XPO that I think may be of interest to those already working with it. I’m not going to re-state what’s in the documentation or on the Developer Express (DX) community website and official pages, there is a lot of information available out there, it’s just sometimes hard to get to know the fundamentals because it’s sometime buried deep. Whenever possible (depending on time and complexity) I’ll make a sample project. I’m even thinking about building a repository of samples showcasing various aspects of XPO.
Let’s see if I can hold the load for long…. I’ve also committed myself to DXCore recently… but that’s something for another post altogether…
- Official XPO product page
- XPO articles on the DX Community blog
- DX Peer Support newsgroups
- DX Knowledge base articles
- DX Support center where additional information, tips and bug reports can be found.
- An extensive list and description of available ORM for .Net