Announcing DevExpress Universal v18.1

Built and optimized for desktop, web, and mobile developers alike, DevExpress Universal helps software teams deliver high performance line-of-business apps that amaze.

See What's New

We Thank Our Loyal Customers for Casting Their Votes

DevExpress is honored to have been voted best in class 19 times in 2017 Visual Studio Magazine Readers' Choice Awards.

Read More
Your Success Matters

Your Success Matters

We look forward to working with you and will do whatever we can to make your experience with us a profitable one.

Read More

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 by Simply Changing the Connection String
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.

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, and Report Server.