What's New in v2009 vol 2
EasyTest Community Technology Preview
With this release, the eXpressApplication Framework ships with EasyTest - a test framework designed to perform functional testing on XAF applications. The main idea behind EasyTest is to create acceptance tests using simple syntax so that your users can understand and use it.
Navigation System Improvements
Previously, the navigation structure of XAF based applications could only have two levels - navigation groups and the items within them. Now, the navigation adopts a tree structure that can have an unlimited number of nesting levels. If a tree item has the ViewID property set, then clicking the item will navigate to the corresponding view. Otherwise, the corresponding item in the navigation control acts as a tree node.
You can now choose different navigation control styles. The NavigationItems node and its child nodes have attributes which define the navigation control's appearance.
XAF's navigation system now supports contextual navigation. An extensibility point has been added to allow modules to affect the process of generating the navigation items in the navigation control. For example, the View Variants module can add children to items which point to Views that have predefined View Variants. This functionality is disabled by default, but can be enabled via the Application Model. You can also implement custom contextual navigation.
TreeListEditors Module Improvements
Previously, the TreeListEditor module worked only in Windows Forms applications. In this release, we're introducing the ASPxTreeListEditor, an ASP.NET List Editor that displays tree-like data structures.
A class implementing the ITreeNode interface can now support an additional ITreeNodeImageProvider interface to supply node images. This functionality is supported by both Windows and Web Tree List Editors.
Both these editors can now implement an interface to support conditional formatting.
An Outlook style Column Chooser window is now available for WinForms XAF applications.
A new data loading mode - deferred node loading – allows you to load only those nodes that must be displayed on screen, thus significantly improving application performance.
Windows Forms Layout Manager Improvements
Previously, resetting the customizations made to a Detail View layout required you to delete the Model.User.xafml file. The eXpressApp Framework now provides a more intuitive way to accomplish the same task. Simply right-click on a Detail View's empty space, and select Reset Layout from the context menu.
You can now create multi-line tabbed groups by setting the Application Model's MultiLine attribute.
This newly introduced module allows you to disable or hide editors in Detail Views and List Views depending on a specified rule. The rules are defined via attributes.
This functionality is available in both Windows Forms and ASP.NET applications.
Validation Module Improvements
You can now apply built-in validation rules to collection properties involved in relationships (marked with the Association attribute). In this instance, a validation rule ensures that each collection element is valid. There's a separate parameter to specify an element's property that must be checked.
Certain validation rules, such as RuleRange and RuleValueComparison, can use aggregate functions. In this instance, the validation rule doesn't check individual elements, but checks the aggregate function's value instead.
In this release, we're introducing a new validation attribute - RuleCombinationOfPropertiesIsUniqueAttribute. You can apply it to a Business Class to demand that a set of its property values is unique.
FileAttachments Module Improvements
You can now specify the file types that must appear in the Open dialog's "Files of type" box. A new attribute has been introduced for this purpose. Currently, this attribute is only supported in Windows Forms applications.
Image Library Improvements
Custom images can now be assigned to the Application Model's nodes displayed in the Model Editor.
Previously, setting images or captions for enumeration values wasn't very intuitive. With this release, you can use the ImageName and DevExpress.Xpo.DisplayName attributes to specify images and captions that will represent enumeration values in the UI.