XPO - Blazing Fast ORM, DevExpress

Blazing Fast ORM

XPO is fast, really fast. Want to see how XPO compares to Microsoft's Entity Framework and test its performance for yourself.

GitHub XPO Benchmark Repo
XPO is in the Real World

XPO is in the Real World

See how we use XPO internally and how you too can leverage its flexibility and performance within your enterprise.

Read about XPO

XPO is Available for Free

XPO is now available free-of-charge. If you're ready to use a high-performance ORM Library in your next project, be sure to give XPO a try.

Read the blog post

Learn More about Our ORM Library

eXpress Persistent Objects™

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 and WPF applications, all the way up to data services and complex n-tier solutions that are compatible with multiple database systems.

.NET Core / Standard 2.0 Support

Manage data in Windows projects, ASP.NET Core websites running on MacOS or Linux, or Mobile apps built with Xamarin or UWP

.NET Core / Standard 2.0 Support

Whether you're targeting .NET Framework, .NET Core, or .NET Standard, XPO will offer the same comprehensive set of capabilities you've come to expect from an ORM Library. And while competing products may claim similar functionality, here are a few features that set eXpress Persistent Objects apart from the competition when it comes to .NET Core & .NET Standard development:

  • WCF client support
  • Dynamic pooling
  • Data caching in high-load systems
  • Creating data model structure on the fly, without declaring any .NET classes

XPO for .NET Core / .NET Standard supports the following popular database management systems: SQL Server, MySql, PostreSQL, SQLite, Firebird, Oracle.

Transparent ORM

Concentrate on your application's business logic.

Transparent ORM

Object-Relational Mapping
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.

Dynamic Data Model Structure
In addition to .NET Reflection, XPO supports abstract XML-based model for type metadata management. This means that mapping information and custom attributes can be specified and modified dynamically. Such a technique proves indispensable in scenarios when database structure is known only at runtime, so you can define persistent classes structure on the fly.

Data Exchange and Manipulation
Both application-level and database-level transaction types can be manually managed using appropriate Session methods. Unit of Work API encapsulates transactions into functional blocks that can be committed or rolled back altogether. XPO not only provides an interface between the application's code and the database in the form of "insert-select-update-delete" queries to the database, but also enables features such as optimistic concurrency, inheritance mapping and deferred object deletion.

Cross-DBMS Connectivity

Create apps that work with multiple database systems.

Cross-DBMS Connectivity

Target a Different Database Engine by Simply Changing the Connection String
XPO supports more than a dozen database management systems and implements a common high-level API. Whether using MS SQL Server, PostgreSQL, MySQL, Oracle, or others, you will use the same code to implement data access and management operations. Should you decide to move your storage to a different database system, you'll only need to change the connection string.

Cloud and Unit Testing Support
You can host data in the cloud, since 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.

Distributed Systems
XPO works great with complex distributed applications. You can publish data using Web Services, WCF and Remoting thus shielding direct database connections and reducing the amount of data that travels across the wire. In addition, you can easily create OData services that expose data to any OData-compatible clients like DevExtreme or Xamarin mobile applications.

Data Model Designer & Wizard

An easy transition from traditional relational databases to XPO.

Data Model Designer & Wizard

Reuse Existing Databases with Ease
XPO includes a wizard that reverse-engineers legacy database structures and automatically generates persistent class code. This allows for an easy transition from traditional relational databases to XPO. The generated data model is visualized by the designer and can be further customized.

Stored Procedure Support
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.

Construct the Data Model Using a Visual Designer
Instead of writing code, you can chose to draft the data model within a visual designer: add new objects, specify object relationships, define persistent and calculated properties. The designer displays the entire model in a single window and creates the underlying XPO classes automatically.

Performance

Bindable Collections for UI Controls, Object and Data Layer Caching, Profiling and Diagnostics

Performance

Bindable Collections for UI Controls
With XPO, you can retrieve collections of persistent objects and bind them to WinForms, ASP.NET, WPF controls with ease. When Server Mode binding is used, data-aware operations are performed on the data server side and bound controls load data in small portions, on demand. XPO can also load data asynchronously and therefore provide a fast and responsive UI even against very large datasets. After sending a request to a data source, UI control continues responding to user actions while data is being retrieved in a background thread.

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.

Profiling and Diagnostics
XPO Profiler 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.

Querying and Filtering

Query a data store using object-oriented syntax, LINQ or direct SQL

Querying and Filtering

You can specify queries, as well as sorting & filtering criteria, using the following techniques:

Technical support for XPO is available as part of the following subscription packages

If you don't require technical assistance from our team, you can download and use XPO in your applications free of charge. Support related to XPO questions is only provided to customers who have purchased a license to products listed below. Consult our License Agreements for additional information.

We are so confident in our products and services that we back them with a 60 day no questions asked money back guarantee. If within the first 60 days of ownership you are not satisfied with the capabilities of our tools, you can request a full refund of the amount you paid to DevExpress by writing to clientservices@devexpress.com or by calling +1 (818) 844-3383.

* DevExpress does not include/ship source code for certain products, including CodeRush, TestCafe Studio, and Report & Dashboard Server.

Supported IDEs

Review the list of development tools and frameworks supported by our products. We strongly recommend that you always download and use the most recent versions. If the latest version does not support the IDE or framework you're using, please submit a support ticket via the DevExpress Support Center and request an evaluation version that suits your requirements.

Version
24.1.5
23.1.12
22.1.14
18.1.18
Release Date
15-August-2024
15-August-2024
7-May-2024
5-May-2022
Support Status
Supported
Limited Support
Not Supported
(for legacy apps)
Not Supported
(for legacy apps)
Minor Updates
Yes
No
No
No
Security Updates
Yes
Yes
No
No
Supported Frameworks
.NET 6 / .NET 7 / .NET 8
.NET Framework 4.5.2+
.NET 6 / .NET 7
.NET Framework 4.5.2+
.NET 5+
.NET Core 3.0+
.NET Framework 4.5.2+
.NET Framework 4.0+
Supported IDE
Visual Studio 2022
Visual Studio 2019
Visual Studio 2017
Visual Studio 2015
Visual Studio 2022
Visual Studio 2019
Visual Studio 2017
Visual Studio 2015
Visual Studio 2019
Visual Studio 2017
Visual Studio 2015
Visual Studio 2013
Visual Studio 2012
Visual Studio 2019
Visual Studio 2017
Visual Studio 2015
Visual Studio 2013
Visual Studio 2012
Visual Studio 2010