Expert XPO
This class is a deep dive into DevExpress eXpress Persistent Objects, short XPO. XPO is an object/relational mapping (ORM) tool with a brilliant feature set, lending itself equally well to small and large development projects. With its broad database and platform compatibility as well as support for new technologies like Silverlight and Azure, XPO is a valuable proposition for many scenarios that competing tools don't cover. As the basis of the eXpressApp Framework (XAF) product, a business application framework also made by DevExpress, XPO has additional credibility. The class starts with the basics, but moves on quickly to advanced scenarios. As much as the two-day timeframe allows, no question about XPO shall remain unanswered!
Who Should Attend
All .NET developers. Any XPO experience you have already may help you understand some of the advanced scenarios more easily, and apply them directly to your own work. Those new to XPO are equally welcome to the class - introductory material is part of the schedule!
The programming language used during the class is C#. VB users will need the ability to understand C# code, and writing it will help during the labs. At this point I can't make promises, but I'll try to supply samples in VB as well as C# - during the class, however, there won't be enough time to show everything in two languages, and there will be quite a lot of code.
If you are interested in VB, please let me know, whether you decide to come to the class or not. I appreciate your feedback on this, in order to adjust my priorities.
Class Language
I expect attendees from a number of countries and the class language will be English. I also speak German.
Requirements
You should use your own computer during the class. Details about the required setup will be sent out to you before the class.
Products Covered
- XPO
Product Versions
Starting with 2010, DevExpress releases new major versions of their entire suite twice a year. It is not always possible to migrate a class to the latest version, update all demos and labs, include all new functionality etc., between the DX release date and a particular class date. I will gladly make updated source code versions available to you at any point after you have taken a class.
The DevExpress major version that is used in this class is currently v2010.2.
Depth of Coverage
The class starts by covering the basics you need to get started with XPO. It moves on to advanced scenarios quickly, and there is no limit on the depth of coverage. Samples and labs during the class will demonstrate a broad range of use cases and provide detailed information and expert level tricks and tips. Feel free to bring your own questions and problem descriptions to discuss with me during the class or in the evenings.
Format
This instructor led training class demonstrates the complex featureset of the XPO product in many samples. Hands-on labs are presented throughout the class, to enable you to practice the topics, and these labs are meant to be taken away and used after the class. Questions are encouraged.
Outline
- Introduction to XPO
- Defining persistent types
- Choosing the base class
- Property implementation
- Relationships
- Delayed properties
- Value converters
- Persistent aliases
- Optimistic Locking
- Deferred Deletion
- Persisting existing hierarchies
- Mapping to existing databases
- Working with Session and UnitOfWork
- Understanding the Identity Map
- Patterns for short-lived sessions
- Nested Units of Work
- Querying
- The Criteria system
- Helper functions provided by the Session
- LINQ and the XPQuery<T>
- Querying components: XPCursor, XPPageSelector, XPView, XPDataView
- Using Stored Procedures
- Direct SQL Querying
- The initialization process
- Connection providers and IDataStore
- Wrapping IDataStore
- Different types of data layers and the metadata dictionary
- XPO Publication
- Publishing data stores
- Connecting to remote data stores
- Inner workings - defining communication interfaces yourself
- Publishing OData feeds
- Data Layer Caching
- Understanding DataCacheNodes and DataCacheRoots
- Tuning cache parameters
- Architectural patterns
- Platform specifics: ASP.NET, Windows Forms, WPF, Silverlight
- Handling schema updates during the application lifecycle
- Hooking into XPO: Auditing
- Process controlled data validation





