eXpress Persistent Objects (XPO) is a powerful bridge between the true object world and relational databases. It offers Code First, Model First and Database First development workflows - you can choose to define a data model in code, draft it in a designer or reuse an existing database without having to deal with the tedious complexities of database tables mapping. XPO abstracts the database layer, keeping you completely in the object-oriented realm. XPO is flexible enough to help you solve a wide range of tasks, starting from simple WinForms, ASP.NET, WPF and Silverlight applications, all the way up to data services and complex n-tier solutions that are compatible with multiple database systems.

High-performance multi-database ORM becomes true cross platform with support for .NET Core
.NET Core / .NET Standard 2.0 Support

From must-have features such as data grouping and integrated visual designer to WCF client support, from dynamic pooling to data caching in high-load systems... XPO brings unmatched data management capabilities to your next .NET Core app – be it a Windows Desktop application, or an ASP.NET Core website running on MacOS and Linux, or a Mobile apps built with Xamarin or UWP. The most popular RDBMS - SQL Server, MySql, PostreSQL, SQLite, Firebird – are already supported and more are on the way.

Learn More  Demo

Transparent and Controllable Object-Relational Mapping System
Transparent and Controllable ORM

XPO is an Object-Relational Mapping (ORM) tool that handles all aspects of database creation and object persistence, allowing you to concentrate on your application's business logic. All you need is to define persistent object classes, and XPO will generate the appropriate database structure automatically. By using .NET Reflection and built-in attributes, XPO maps the properties of business objects to relational database tables. Object associations (one-to-one, one-to-many, many-to-many), aggregation and inheritance are all fully supported.

Cross-DBMS Connectivity
Cross-DBMS Connectivity

With XPO, you can build applications that work with multiple database systems without making any changes to your code. More than a dozen of today's most popular database engines are supported, including MS SQL Server, PostgreSQL, MySQL and Oracle. And of course you can host you data in the cloud, as SQL Azure is fully supported. The data model can be covered with lightweight unit tests because a memory data store can be used instead of a real database.

Database-First Support
Easy Reuse of Existing Databases

A wizard that reverse engineers the legacy database structures and automatically generates persistent class code is included. This allows for an easy transition from traditional relational databases to XPO. The generated data model is visualized by the designer and can be easily customized. Additionally, the wizard can generate auxiliary helper classes that allow you to directly call existing stored procedures and handle results. Persistent classes and DDL code required to map database views can be auto-generated as well.

Data Model Designer
Data Model Designer

You can chose to draft the data model within a visual designer instead of writing code. In this designer, you can add new objects, specify object relationships, as well as define persistent and calculated properties. The designer visualizes the entire data model in a single window and creates the underlying XPO classes automatically.

Object Queries
Queries and Filtering

You can specify retrieval, sorting and filtering criteria using object-oriented syntax similar to VB.NET and C#. This capability provides a number of useful operators including free joins, upcasting and aggregates. LINQ queries against persistent objects are supported as well.

OData Compatibility
Applicability for Distributed Systems

XPO is ready for complex distributed applications. You can shield direct database connections and reduce the amount of data that travels across the wire publishing data via Web Services, WCF and Remoting. In addition, you can easily create OData services that expose data to any OData-compatible clients like DevExtreme mobile applications.

Bindable and Pageable Collections
Bind-able Collections and Server Mode

With XPO, you can retrieve collections of persistent objects and bind them to WinForms, ASP.NET, WPF or Silverlight controls with ease. For instance, when a collection is bound to a grid control like XtraGrid, objects can be represented as editable records in the grid and object properties represented by grid columns. Server Mode binding has been designed to work with large datasets and when used, data-aware operations are performed on the data server side and bound controls load data in small portions, on demand.

Asynchronous Data Loading
Asynchronous Data Loading

Synchronous data loading operations can be time consuming, and your UI can become unresponsive until all data is loaded. To avoid such a situations, XPO can load data asynchronously and therefore provide a fast and responsive UI even against very large datasets. After sending a request to a data source, a bound grid control continues responding to user actions while data is being retrieved in a background thread.

Object and Data Layer Caching
Object and Data Layer Caching

Every time a query to the database is made, XPO checks for new versions of the relevant objects in the database and updates the object cache when required. In addition, XPO caches queries and their results as they are being executed on the database server. Whenever a query passes the cache that has been executed previously, the result from that query is returned to the client immediately, without a roundtrip to the server.

Built-in Profiling Instruments
Profiling and Diagnostics

XPO is shipped with a Profiler - a utility that helps you find performance bottlenecks and code issues. Unlike server side SQL query profilers, XPO Profiler runs at the client side and tracks internal XPO events. The profiler provides you with a log of method calls along with passed parameters and corresponding SQL queries side-by-side. This combined log can be much more helpful than just a list of executed queries. Furthermore, you can solve various diagnostic tasks by running interactive LINQ queries in LINQPad, as the XPO context driver is available for this tool.

Download the Free Trial

Includes 30 days of free tech support

Buy it Today

Pricing starts at only
Get started today and see why tens of thousands of developers
worldwide choose DevExpress.



Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2018 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners