|
|
XPO has been designed for small and large development teams alike. It will help you shorten development time and more reliably manage and deliver any software project. To obtain a trial version, visit the XPO Downloads page. Below is a brief and probably incomplete list of features available in eXpress Persistent Objects for .NET.
- Transparent and Controllable Object-Relational Mapping System - By using .NET Reflection and attributes introduced by XPO, XPO is able to map 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.
- Persistent Class Generation - >XPO can generate persistent classes that replicate the specified database's structure. This allows easy transition from traditional relational databases to eXpress Persistent Objects.
- Bindable and Pageable Object Collections - With XPO.NET, you can retrieve collections of persistent objects, paginate and bind them to UI controls with ease.
- Object Queries - You can specify retrieval, sorting and filtering criteria using straightforward object syntax.
-
The XPView class can query arbitrary combinations of calculated and aggregated values from the object model. It can used with data binding, providing a good alternative for situations where memory consumption and speed need to be optimized.
-
Enhanced query support includes calculated conditions that can be used with XPCollection as well as XPView.
-
Full Visual Studio 2005 and .NET 2 support includes availability of a generic XPCollection<T> and corresponding generic helper methods like GetCollection<T>.
- Advanced Support for Existing Database Schemas - XPBaseObject can serve as a base class for persistent objects, giving the ability to map such objects to an existing database without having to make any modifications whatsoever to the database's structure.
-
A shareable stateless data access layer (DAL) speeds up the process of session creation considerably, allowing for much better performance and simpler implementations in ASP.NET and other scenarios where short cache lifespans are desirable.
- Comprehensive Database Generation and Updates - XPO allows you to generate or update database tables based on the definitions of your persistent object classes.
- Support for various DB engines - XPO provides built-in support for MS Access and MS SQL Server databases as well as for MySQL, Oracle, PostgreSql, Firebird, PervasiveSQL, VistaDB, SQL Anywhere, Advantage, DB2 and Sybase. This means you can target these database engines without having to make any modifications to your code.
- SqlDependency Support - XPO fully supports SqlDependency. This is a new feature in Microsoft SQL Server 2005 that enables the data server to send data change notifications to client applications. By using this new feature, applications that use cached data can determine when they need to refresh their cache.
- XML Model with Custom Attributes - XPO.NET uses an abstract metadata model instead of .NET Reflection. .NET Reflection metadata can be obtained by means of the ReflectionDictionary which is used by default. The XPDictionary class and all its descendants including the ReflectionDictionary have the ability to supply XML data specifying mapping information and custom attributes for modifying the data accumulated via .NET Reflection.
- Dynamic runtime extension of persistent classes provides for additional flexibility in the object model.
- Session-less persistent classes don't need to be derived from XPObject to be handled by XPO.
-
The XpoDefault class stores global settings like a connection string or a shared DAL and simplifies the implementation of multi-session applications.
- Advanced Criteria System - A wide set of criteria operators allow you to build complex criteria representing the logical expressions used to retrieve objects from the database, including the aggregate operations.
- Delayed Loading for Object Properties - With XPO.NET, you can improve application performance by delaying the loading of certain properties which are used rarely or contain large amounts of data.
- Transaction Support - XPO.NET provides transaction support the same way as Microsoft ADO.NET does. You can easily Begin the transaction, then Commit or Rollback with the appropriate Session methods.
-
Using the Unit of Work principle, XPO can now perform semi-automatic change tracking. The only requirement for this is that your property setters call OnChanged().
- Nested units of work are now supported. These encapsulate certain operational blocks and can be committed or rolled back at once.
- Optimistic Locking - Optimistic concurrency is supported for updates ("First in wins" rule).
- Custom Oid - Key attribute has been added. A class property - of any supported data type - annotated with this attribute is treated as a key. Key auto-generation is supported for Guid and Int32 data types.
- Precise Definition of the Column Type the Persistent Property or Field is Mapped to - The DbTypeAttribute can be used to designate a provider-specific database type for the column which the persistent property or field is mapped to.
- Explicit Declaration of a String Field of Unlimited Size - Unlimited Text/Memo field size can be defined by specifying the SizeAttribute.Unlimited constant.
- Custom Type Converters - Transparent conversions of persistent property values from/to database values can be implemented using type convertors, for example for security purposes.
- Persistent Class Template - Provides the easiest and fastest way to add persistent classes to your project.
- C# Builder, Borland Delphi .NET, Mono Support - XPO is fully compatible with the Borland C# Builder, Borland Delphi.NET and the Mono C# compiler.
- Session, XPCollection, XPPageSelector Components - These components allow you to set the DataSource and bind them to any visual component such as a grid control, edit control or any other data-aware controls at design time.
- IBindingList Collection Behavior - XPCollection supports IBindingList and you can add or remove collection items via this interface at run time.
- Custom Constraints and Indexes - Advanced metadata attributes allow you to specify database constraints and indexes for persistent properties or fields. By handling the SchemaInit event of the Session object you can enforce any custom database modifications.
- IEditableObject XPBaseObject Behavior - XPBaseObject supports IEditableObject and you can control the object's changes via this interface.
- Advanced Event System - In order to perform custom actions during object, collection and session manipulations, you can employ the events raised when the session / transaction state or collection contents are changed or the underlying database metadata for the object is about to be modified.
- Database Integrity Validation - XPO keeps the underlying database up-to-date and integrated automatically, unless you choose to disable this functionality.
- Performance Counters - Microsoft Windows® provides a Performance Monitor which helps indicate resource usage using a real-time chart. You can choose which values (Performance Counters) are to be tracked and view them over time. If needed, you can use this tool to analyze XPO performance. If XPO is installed on a machine, you can see DevExpress.XPO among other Performance Counter categories. (Screenshot)
To learn more about XPO, please write to us at: info@devexpress.com.
To order your copy, visit our online order page.
|