Software Review: DXperience, Part I—.NET Business Application Frameworks From DevExpress

This is the first of a series of reviews that will cover what is contained in the DevExpress DXperience Universal Edition. This is the most complete of the subscription packages available from DevExpress. The other packages include Enterprise, WinForms, and ASP.NET. For a matrix of what each package contains, check out their edition page. In this first review I will examine the application frameworks that are available.

There are two frameworks that come with the Universal edition. The first is the eXpressApp Framework (XAF) which is used for creating business applications quickly. This is only available in the Universal edition. The second is the eXpress Persistent Objects (XPO) framework that acts as a bridge between your objects and the world of database access. This is available as part of the Universal or as a standalone product.

What is eXpressApp Framework (XAF)The XAF is a framework that will allow you to build business applications quickly and easily. It will give you a standardized look much like the Microsoft Outlook product, but also has a lot of flexibility to control the look. Through the use of a strong modular architecture it allows for platform-independent domain-specific extensions. Currently you can create business applications that can currently support both WinForms and ASP.NET 2.0 platforms. In the future these will include other platforms like Window Presentation Foundation (WPF).

What do you need to run eXpressApp Framework? • Visual Studio 2005/2008 (.NET 2+)• .NET Framework 3 is required for design-time Editor

You can create your own software from scratch. This is what a lot of companies do. It is a lot of hard work, time, and expense, but in the end you have all of the code, knowledge, and expertise. You could also buy a third party platform, but along with being expensive, it usually has a lot of features that you will never use, and you have to learn how to code around someone else's idea of best practices, and that can take time.

EXpressApp Framework is meant to be the cross between these two types of systems. You still have to write code, but instead of using someone else's vision of the perfect application, you create your own application by leveraging the use of libraries to shorten the development time.

In any application you generally have to set up datasets, grids, entry forms, and create the whole structure to handle it all. This is where XAF comes in. It gives you the structure, the forms, the datasets, grids, and a whole lot more. This in turn lets you concentrate of the business logic.

When using the XAF you don't have to create a database, customize tables, create fields etc., and you won't have to use low-level ADO.NET constructs to access data. By using the built-in Object-Relational Mapping System and the eXpress Persistent Objects (XPO) library (XPO in the image included), all that you have to do is describe your data structure, describe your relationships, and the XPO will handle the creation of your data stores as well as all of the details for adding, deleting, displaying and modifying of your records.

The Business Class Library provides you with classes that define some commonly used entities like Person, Note, Organization, etc. and then you can use these classes as they are or derive your own classes. The Base Class Libraries (BCL) also include interfaces that you may want to use as well like IUser that can be used to implement in the security sub-system.

Say that you want to describe a contact. All you have to do is create a class that inherits from the person class within the libraries and add the additional information that defines your contact. Say for example your contacts are studio musicians. You may have a field for instrument played, years experience, and type of music. You add those items to the class, and when you compile and run, they are automatically added to the database, the views are created and you now have the structure to manage it.

Next item is the Controller libarary. Controllers are objects that manage the flow of the application as well as the end-user interaction. The default controllers are responsible for data management functions like adding, editing, and deleting records. You can use the existing controllers as well as creating your own controllers.

All applications built with the XAF include a reports module. This is included with the Universal Edition. You can create predefined reports for the applications and it is all implemented within the application. You can supply an end-user designer to your clients, but one thing to note is that the XtraReports Suite does not support a Web-based end-user designer. The output produced by the reports includes sending them to the printer, RTF, HTML, and PDF.

One of the really cool things about this framework is that since the main goal of the XAF is to separate business logic from the application's visual representation, it is possible to create both a WinForm and a Web site based on the same business logic. What this means is that you can provide access both from the desktop as well as from the Web without having to write separate systems. This gives you the ability to leverage one set of code across both platforms. Keep in mind that because of the nature of the two, while they may both contain the same data and information, the implementation may be different.

Some of the new features in eXpressApp Framework 2009 vol 1 are:• New skinning options for Windows forms controls; this one is called Springtime and adds another unique visual style.

• Grid List editors have been improved with a lot of new features like selecting all the records in a grid, selecting the number of rows to be viewed on a page, more enhancements to column customization, and filtering in list views among other improvements.

• "Auto Commit Changes" mode in list views now adds save and cancel actions so that you can revert back if the prior behavior is preferred.

• Faster splash screen starting behavior now makes the application appear quicker than before, giving the user the feel of a more responsive application

• Improved filtering by Text now splits phrases into individual words and now is capable of finding word matches in different properties making it more likely that you will find the required data.

• Printing Module options that are specified in the Page Setup dialog and Header and Footer options that are set in the Preview dialog are automatically saved for the currently printed view.

What is eXpress Persistent Objects (XPO)?XPO is a bridge between the object world and the world of your database. By using XPO you can build true business objects without having to deal with the complexities of mapping them onto database tables. XPO is compatible with multiple database systems including MS Access, MS SQL Server, MySQL, Oracle, PostgreSql, Firebird, PervasiveSQL, VistaDB, SQL Anywhere, Advantage, DB2 and Sybase.

What XPO does is map your business object model to a relational database without having to deal directly with the database. This frees the programmer from having to make decisions about the database design. Instead the database is designed from your business objects and XPO takes care of the persistence for you though a transparent and controllable object-relational modeling system. Object associations, aggregation, and inheritance are all fully supported.

XPO is a stable product that has been around since 2004 and is used extensively with XAF. It is available as a stand-alone product, as part of Universal pack, the Enterprise pack, and the ASP.NET pack. You can purchase eXpress Persistent Objects with the full source code for $199.99 USD, or without source code for $149.99.

I really like the idea and the implementation of both XAF and XPO. XAF is a product that continues to mature and grow. It has a lot of functionality built in and provides for a lot of grunt work that one would have to develop on their own to make a foundational framework. XAF is only available in the DXperience Universal Edition which also includes the XPO. The price is $1999.99 and this includes the framework, the reporting suite, the charting suite, Windows Forms Components, ASP.NET components, IDE productivity tools, and XPO.

While it may take some time for those who are used to creating their own database structures to wrap their minds around the philosophy of XPO, it really does make sense. If one can buy into the idea, as it is with many corporations, that only a DBA can affect changes to a database, then you only have to look at XPO as your DBA.

While it will take you a while to get up to speed with all of these components—and believe me there is a lot here—but once you do you will be very productive. Everything that I have worked with is surprisingly logical and easy to comprehend. They have a large knowledge base that makes it fairly easy to track down problems and if you have a problem, it is generally answered within a day online.

What I find so helpful is the vast amount of online tutorials and documentation that is available. There is something for anyone to do just about anything. Some are short, specific how-to's, and others are more involved. In fact, one relating to both the XAF and XPO can be found in the demonstration of building an application that will mimic the feature set of Microsoft Outlook, and do it in about an hour.

If you are tired of recreating applications every time you need to build a new system, if you want spend less time doing the mundane tasks and more time focusing in on the parts of your applications that really matter—your business logic—then you need to check out DevExpress DXperience Universal Edition. Check out their online tutorials or download a demo and try it for yourself.