Notifications
Module - Officially Shipping
The eXpressApp Framework's Notifications Module (which first
shipped as a CTP in v14.2), will officially ship in v15.1 and can now be used in
production environments. This update includes a refactored API to simplify its use, addition of new features, improved stability and performance.
We appreciate all the great feedback you provided to us as it helped us cover even more use-cases with this module.
Here are a few of the new features we've included in the Notification Module:
Ability to open an editable DetailView for the notification record.
Unobtrusive notifications when only the number of items changes in the status bar.
Ability to display all or only postponed items.
Improved processing performance.
Workflow Module - Entity Framework
Support
The Workflow Module integrates
Windows Workflow Foundation (WF) 4.0/4.5 support into XAF. WF is a workflow
management framework designed to assist you in creating more manageable,
workflow-enabled applications. By leveraging WF functionality, the Workflow
Module allows you to automated
long-running business processes within your XAF application - where the intermediate steps are hours, days or
weeks apart. The module allows users to modify the automated processes without
writing any code or visualizing complex business processes.
With v15.1, you can now
integrate our Workflow Module when using Microsoft ADO.NET Entity
Framework. To achieve this, we have implemented
EF-compatible versions of workflow entities like EFWorkflowDefinition,
EFWorkflowInstance, EFTrackingRecord, EFStartWorkflowRequest, etc., and
performed other required R&D and testing work.
Additional Enhancements to XAF's Web and WinForms UI, its Core and Performance
The ASPxDocumentViewer
control is now used for report previews in ASP.NET applications (we've deprecated the old Report Viewer control.) By using this new report viewer, cascading
parameters and Drill-Down
report types are now supported within XAF ASP.NET applications:
Delayed data loading for detail
forms has been implemented forWinForms apps. It’s best to demonstrate this with a short video (note that an artifical pause was intentionally added to emulate loading a large amounts of data). You can manually enable this mode
via the DelayedDetailViewDataLoading property of the XafApplication
class, which can be set either in code or via the Application Designer.
Technically in this mode, the DetailView form is displayed nearly instantly, without
any data in controls and then data asynchronously retrieved from the database
and the controls (e.g., editors display actual data values and the related
Actions are updated) are updated accordingly. While this does not really speed
things up, it helps to achieve a better UX and perception, as a user receives
instant feedback, which may be useful for very complex forms. Take special note
that when you enable this mode, the DetailView.CurrentObject will not be
immediately available when ViewControllers are activated. Your code should take this situation into account. Our own code already handles
this mode well – you can see that the standard Delete Action is activated after
data loading is complete.
WinForms apps can now place Actions within the status bar. The easiest way to do this is to set the
Category property of your Action to “Notifications”. For instance, this way the
Show Notifications Action (the one that displays a “bell”) from the Notifications
module is implemented. In addition, review the attached picture and see how I moved (without writing any code and by just using the Model Editor and its
ActionDesign | ActionToContainerMapping node) the other built-in Refresh
command into the status bar. Alternatively, you can make a custom template as per this document and manage placement via the XAF BarManager or RibbonControl designers.
Another WinForms enhancement is for developers using advanced ribbon menus within their applications. It's now possible to place multiple Action Containers within a single RibbonPageGroup (watch video) and also make it possible to separately configure different menu modes for SingleChoiceActions placed within the same group. Only the required part of Actions from a single RibbonPageGroup can be mapped to the Application Menu or Status Bar. This capability is best illustrated with a short video. You can see a "View" RibbonPageGroup that originally contained two Action Containers: "View" and "Reports". We then add only the "View" container into the Application Menu. There will be more documentation on making these customizations once v15.1 is out.
We now include a much simpler solution to open a non-persistent object's List View directly from the navigation bar or from custom Actions. The idea is to declare a non-persistent class and decorate it with the DomainComponent and DefaultClassOptions attributes...Then, handle the NonPersistentObjectSpace.ObjectsGetting event and populate the e.Objects collection as required. That's it. Subscribing to this event can typically be done on the ObjectSpaceCreated or ListViewCreated events of the XafApplication class. Internally, the new NonPersistentObjectSpace entity is automatically provided for such non-persistent ListView through NonPersistentObjectSpaceProvider, which is registered among other ORM providers at startup. See a complete example in this Support Center ticket. Take special note that in WinForms you can create non-persistent objects with the New Action and navigate to the DetailView of a non-persistent record, make changes and they will automatically be reflected in the source ListView (all changes will obviously disappear after reopening the ListView). See this short video for more info.
We've reduced the number of web browser requests to the server for Web apps in the following scenarios: a) when opening a page for the first time; b) when refreshing a browser page via F5; c) when displaying a popup window. In addition, with several optimizations to the underlying types info system, we've cut startup time by~10-15%.
Hopefully you'll find all of these enhancements useful. Tell us what you think - we want to hear from all our XAF users!
Free DevExpress Products – Get Your Copy Today
The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the
DevExpress Support Center at your convenience. We’ll be happy to follow-up.