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.
|
|
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
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 (see more). 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.
|
|
|
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 auxillary 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
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.
|
|
|
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
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
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 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.
|
|
Subscribe Today
General Information
Feature Details
XPO-Based Frameworks
eXpressApp Framework (XAF)
Need to quickly get DevExpress presentation and data access components seamlessly integrated together for a data centric Microsoft Office inspired desktop or web application? Try XAF - a modern and flexible business application framework that facilitates a plug and play approach to common business requirements such as data validation, security and reporting.
 
An XPO Data Model in XAF
eXpand Framework
An open source community-driven toolkit built above XAF and XPO to extend their capabilities and provide 50+ cutting-edge libraries containing tools and reusable modules that target numerous business scenarios.
Our Awards
Recent Blog Posts
|