eXpress App Framework Team

This Blog

May 2017 - Posts

  • XAF - Application Performance and Improved Usability (Coming soon in v17.1)

    In this post, I'd like to highlight a few of the more interesting enhancements we've made to XAF in this release cycle.

    Platform Agnostic Notifications 

    You can now display notifications to users (e.g. confirmation messages, warnings, errors) with ease by calling the new platform-independent ShowViewStrategyBase.ShowMessage method. Depending on method parameters and target platform, your message can be represented by Outlook-like alerts, Windows 10-like toast windows or flyout panels (all powered by DevExpress WinForms Controls and/or DevExtreme HTML 5 widgets). A typical example will look something like this: 

    public class ProjectTaskController : ViewController {
        MessageOptions options = new MessageOptions();
        options.Duration = 2000;
        options.Message = string.Format("{0} task(s) have been completed!", e.SelectedObjects.Count);
        options.Type = InformationType.Success;
        options.Web.Position = InformationPosition.Bottom;
        options.Win.Caption = "Success";
        options.Win.Type = WinMessageType.Toast;

    Here are a couple of examples of the UX within Windows and XAF's Web UI:

    You can play with this feature in our FeatureCenter. This feature has been successfully test-driven since its initial preview in v16.2.5. v17.1 includes enhancements based on customer requests and offers improved stability due to extended test coverage. Be sure to visit Concepts > UI Construction > Text Notifications to learn more about possible customizations and usage limits.

    Optimized controller creation in ListPropertyEditor for detail collections

    With this release, XAF powered applications with numerous Controllers associated with detail collections load faster. That is possible because we no longer instantiate non-activated View Controllers due to TargetViewType, TargetViewNesting, TargetObjectType or TargetViewId restrictions. This optimization is automatically enabled in newly generated XAF v17.1 apps. In apps created using older XAF versions, you can set the XafApplication > OptimizedControllersCreation property manually.

    The second screenshot (B) illustrates where this improvement will be the most noticeable - a huge application with hundreds of Controllers:

    High DPI improvements

    In v17.1, desktop apps powered by XAF will offer a consistent appearance across a wide variety of high-DPI display settings. Your WinForms XAF applications will now be scaled correctly when setting the scaling factor (change text size, app and other item options) to a value greater than 100%. To enable the High DPI support, add the 'app.manifest' file to your project and enable the 'dpiAware' option. DPI-aware scaling is also enabled in XAF design-time tools.

    Other important changes

    Finally, I'd like to repost information from XAF's "Breaking Changes" section. Though not breaking changes, they are important things to consider for every single XAF user:

    BC4063 - More secure password generation algorithms for built-in security system classes are available in XAF v16.2 and v17.1
    Refer to the FIPS-compliance changes to the DevExpress.Persistent.Base.PasswordCryptographer and DevExpress.ExpressApp.Utils.ImageLoader classes KB Article for additional information.

    BC4062 - The Frame.GetController<ControllerType> method may return null when the XafApplication.OptimizedControllersCreation property is set to true
    XAF Solution Wizard now sets the XafApplication.OptimizedControllersCreation property to true for newly generated XAF projects. To avoid possible null reference exceptions in nested List Views, always check whether the Frame.GetController<ControllerType> method result is not null when the OptimizedControllersCreation property is true.

    BC4038 - WebLayoutManager - Initialization and usage of LayoutItemTemplateContainerBase descendants has been changed
    Refer to the Web Layout Manager improvements and important changes in XAF v17.1 KB Article for additional information.

  • XAF - New Maps Module and other enhancements to the Mobile UI (Coming in v17.1)

    With our new Maps module for XAF Mobile applications you can incorporate interactive maps and customize their provider and data source. You can start using this feature with the Visual Studio Toolbox and XAF designers or Solution Wizard - where you can add the new MapsMobileModule component:

    Note: You must specify the MapsMobileModule.GoogleApiKey property in the MobileApplication.cs (MobileApplication.vb) file (refer to the Get API Key article to learn more).

    This module includes both List and Property Editors designed to display, add and edit business objects such as addresses, companies or anything that implements the IMapsMarker interface on a map. The MobileMapsListEditor is the default List Editor used to display objects implementing this interface:

    Once you configure the desired ListView using the Model Editor, it will convert the default data representation from a simple list into an interactive map displaying a list of markers:

    You can also create new objects using the New Action or after a long tap on a map.

    In the DetailView, you can manually specify required coordinates or if you prefer to hide these properties, you can instead use the built-in Get Current Position command.

    In DetailView, you can force the MobileMapsPropertyEditor to display IMapsMarker business objects as a map instead of standard drop down editors:

    Minor Enhancements

    In addition to this new module, we've also worked on a number of other minor features. For instance, with v17.1, non-persistent properties will be supported in XAF Mobile and XPO OData Service. If a non-persistent property includes business logic, our OData Service will automatically execute it and return the resulting value to the client. We have also developed a functional testing system based on our TestCafe product to improve the quality of mobile apps and I hope to briefly describe this feature in a future post. You can also explore and modify our pre-built mobile application at C:\Users\Public\Documents\DevExpress Demos 17.1\Components\eXpressApp Framework\MainDemo\CS\MainDemo.Mobile\ as we made it a part of the default installation. This should help you get you up to speed with of our mobile platform. We also made numerous improvements to the online documentation, though this process is not yet finalized and there are more changes to come.


Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at or call us at +1 (818) 844-3383


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2018 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners