We received great feedback on our proposed 2020 DevExpress Dashboard Roadmap. Thanks to everyone who engaged us late last year. Based on your feedback and our long-term product development goals, we've finalized our 2020 Roadmap with a focus on important usage scenarios outlined below.
Features Planned for v20.1
Parallel Periods
Parallel periods are an important data analysis tool. Though we allow you to address simple usage scenarios in this regard, complex scenarios are not currently supported (when comparing the same data against different date periods). We will address these complex usage scenarios in our v20.1 release.
Tab Item Performance Enhancements
We will allow you to restrict dashboard item loading to active tabs only. This feature will help improve overall performance when using multiple Dashboard Tabs (with Dashboard Items that require extended data processing).
API to Extend a Dashboard's Lifecycle
We will introduce an easy and straightforward API to extend the Dashboard's design lifecycle. Our objectives will be as follows:
- Allow you to easily add a UI for your properties within Dashboard Designers. You will have access to a new set of APIs to extend the WinForms Dashboard Designer Ribbon Menu, and the Web Dashboard Options Panel.
- Allow you to add customer-related properties (aka user data) to Dashboard, Dashboard Items, and Dashboard Item Elements (Grid Columns, Chart Series, Cards, Gauges etc.)
We will store your custom data within the model and automatically manage serialization/deserialization as needed.
In the following examples, we show how to add a scale break to the Chart item:
Web Dashboard
Step 1: Add Metadata for the custom properties.
import { registerCustomPropertiesMeta }
from "../../sources/model/custom-properties/custom-properties-metadata";
registerCustomPropertiesMeta({
ownerType: ChartItem,
propertyName: "scaleBreaks",
defaultValue: false,
valueType: 'boolean',
});
Step 2: Update the event handlers to use the Metadata.onItemWidgetCreatedUpdated(args: ItemWidgetEventArgs) {
var scaleBreaks =
args.dashboardItem.customProperties.getValue("scaleBreaks");
if (scaleBreaks) {
var widget = args.getWidget();
var valueAxisOptions = widget.option("valueAxis");
valueAxisOptions[0].autoBreaksEnabled = true;
widget.option("valueAxis", valueAxisOptions);
}
}
Your users can now specify the Custom Property in the Dashboard Designer.
WinForms Dashboard Designer & Viewer
var page = ribbon.GetDashboardRibbonPage(
DashboardBarItemCategory.ChartTools,
DashboardRibbonPage.Design);
var group = new RibbonPageGroup("Additional Properties");
page.Groups.Add(group);
var barItem = new BarCheckItem(ribbon.Manager, false);
barItem.Caption = "ScaleBreak";
barItem.ItemClick += SaveScaleBreak;
group.ItemLinks.Add(barItem);
//…
void SaveScaleBreak(object sender, ItemClickEventArgs e) {
var breakEnabled = designer.SelectedDashboardItem.CustomProperties.GetValue<bool>("ScaleBreak");
designer.AddToHistory(
new CustomPropertyHistoryItem(designer.SelectedDashboardItem,
"ScaleBreak",
!breakEnabled.ToString(),
"Scale Break Changed"));
}
//…
void Designer_DashboardItemControlUpdated(object sender, DashboardItemControlEventArgs e) {
if(e.ChartControl != null) {
var dashboardItem = designer.Dashboard.Items[e.DashboardItemName];
var breakEnabled = dashboardItem.CustomProperties.GetValue<bool>("ScaleBreak");
var chartAxis = (chart.Diagram as XYDiagram).SecondaryAxesY[0];
chartAxis.AutoScaleBreaks.Enabled = breakEnabled;
}
}
Chart and Scatter Chart Item – Constant Lines – An Extension Module Example
We found that Constant Lines can be implemented using the aforementioned API set with extreme simplicity and elegance.
We plan to distribute an example which you will be able to download and use in your application.
Your end-users will be able to configure Constant Lines and bind to the constant value or to data bound to your Chart Item.
Year-Week Date Group interval
Some of you have asked us for this visualization option (for your DateTime scale - when grouping per Day is too narrow and grouping per Month is too wide). Though most requests related to charting, we believe this grouping option will be useful for multiple Dashboard Items.
You can implement similar functionality in the current version using double Argument grouping, but this approach has visualization and master-filtering limitations.
Text Box Item – Integrated Text-Box Editor
Users will be able to edit a Text Box item's content within the Web Designer. We will publish a separate blog post explaining why the use of a Text Box Item can benefit your dashboards. Stay tuned!
Card Item Conditional Formatting
We will introduce conditional formatting to our Dashboard's Card Item. With this feature, end-users will be able to create conditional formatting rules within the Designer via the same UI used by our Grid/Pivot Grid.
This feature will allow you to configure visual warnings/alerts/notifications when values fall within a specific range (and inform users if actions are required).
DevExpress Dashboard Backlog 2020
We will work on the following features/requests in our v20.2 development cycle. Unfortunately, most of these features require further research, so some may not be delivered in our v20.2 release cycle.
Chart Conditional Formatting
With conditional formatting, Dashboard Charts will be able to highlight values that correspond to specific criteria and allow you to add marks to corresponding Argument labels.
Chart Item – Trend Lines
We expect to use our calculation engine to generate pre-configured trend lines for a variety of analytics scenarios. Though you can use Window Calculations for this purpose, we believe our implementation (trend lines) will be more configurable and easier to use.
Web Dashboard with Framework-specific Wrappers
Though the exact scope has yet to be defined, we hope to optimize DevExpress Dashboard so that it creates and processes events based on the web framework used.
We will consider Material Design support as a part of this task.
Improved Real-Time Dashboard Update Support
Based on significant interest in our Roadmap survey, we will explore ways to improve DevExpress Dashboard (WinForms, Web and WPF) so that it better supports real-time updates. We are considering the current enhancements:
- Reworked and configurable loading indicators
- An improved data update mechanism;
- Use of data caches in the background;
- Custom group intervals.
Pivot Grid – Filtering And Exploring Data Details
We hope to extend your data filtering options when using Pivot Grid Dashboard Items. Along with the API used to extend the Dashboard Designer, we hope to better address known usage scenarios.
JSON Data Source – Support Parameter Binding
With this feature, you will be able to bind Dashboard Parameter to JSON Data Source parameters.
Web Data Inspector – Easier Way to enable Excel Export
Many of you expressed a need to enable Excel Export within the Web Data Inspector popup. You can already incorporate this capability – please refer to the following help topic for more information: documentation.
We'll will update this help topic and improve the discoverability of this feature. We're also considering ways in which to simplify the usage of the JSZip library in an upcoming release.
WinForms State Management – Lifecycle
We hope to simplify state management for our WinForms Dashboard Viewer via a new event: OnStateChanged (this event will work much like its Web Dashboard counterpart).
Current Progress
Our Text Box Editor is ready for testing. We're going to make it available (as a preview version) in our next minor update (v19.2.6)
Other features (such as API to extend the Dashboard's lifecycle and Tab Item performance enhancements), should be ready for testing in an upcoming Early Access Preview build.
Your Feedback Matters
If you have any issues with this Roadmap or questions about implementation, feel free to submit a support ticket via the DevExpress Support Center, or post a comment below. We will be happy to follow up.
Thank you for your continued support!