“Faith is taking the first step even when you don’t see the whole staircase.” – Martin Luther King
When I first started with XPO I could swear there was something magic involved in how it was handling my data. I had no idea what was going on, but I knew that if I derived my classes from XPObject or BaseObject (if you use XAF), I automatically had my classes turned into tables in a database of my choosing, I had an autogenerated Built-in OID key, Deferred Object Deletion, and Optimistic Locking. And honestly, that was all I care about. If I wanted to use a different database; it was as simple as changing my connection string.
A quick overview of XPO in Xamarin.
With the current release of XPO v18.1, DevExpress has made XPO available free-of-charge. Xamarin has been open source and free for quite some time, and now with XPO for .NET Core / .NET Standard 2.0 finally out of Beta, a world of possibilities and new exciting features/projects is opening to us.
Let’s review what exactly that means to us.
If you have used XPO in the past you know the great features it offers:
- Transparent and Controllable Object Relational Mapping System
- Bindable and Pageable Object Collections
- Support for various DB engines (14 to be exact and you can always implement your own XPO connection provider)
- Advanced Criteria System
- And More…
Also, it is a mature product with great support that has been around for 15 years. Support is still a paid service but definitely worth it (ask around). Want to see how it compares to EF? Just take a quick look at this simple benchmark.