DevExpress Dashboard - Early Access Preview (v19.2)

v19.2 - our next major update - is a couple of months away. As such, we wanted to share the features we expect to ship in October and invite all active DevExpress Universal users to download our early access preview. Your feedback will help us refine these new features and allow us to ship the best possible royalty-free Dashboard platform in the marketplace.

WinForms Dashboard - Asynchronous Data Processing and Rendering

Our next major release will include the first version of DevExpress Dashboard's Asynchronous Data Processing and Rendering Engine for the WinForms platform. As its name implies, this engine was designed to decouple data processing from UI-related threads. Yes, with v19.2, your users will be able to continue using your app while time-consuming operations are performed on the server side.

To switch the Dashboard Viewer/Designer to Async mode, you will simply set its AsyncMode property to true.

The Advantages of Asynchronous Data Processing

  • Responsiveness: We render dashboard widgets more quickly. Your application will be more responsive and feel "lighter."

  • Immediate Rendering: Asynchronous data processing helps accelerate dashboard data calculations and rendering – Items appear sequentially as they are ready (data that is processed first appears without waiting for more time-consuming calculations).

WinForms Dashboard - Asynchronous Data Processing and Rendering

Note: If you currently handle control events, please be aware of API changes designed to support the modified lifecycle of the Async data processing. We've created a migration guide to simplify the transition process ( KB article ). Full product documentation will be published prior to official release.

As you can imagine, this early access preview ships with a number of limitations. We are actively working on our Async API, and testing our UX. This reality notwithstanding, we encourage you to evaluate our implementation and experience the performance advantages first-hand. We need your help so please do share your thoughts and your technical issues with us.

Web Dashboard Themes

Our next major release will include an extended web theme set and allow you to create custom themes as needed.

Predefined Themes – Powered by DevExtreme

Since our Dashboard is tightly integrated with our DevExtreme component library, many of you have asked us to fully support DevExteme's set of Predefined Themes. In this early access preview, you can use any Generic DevExtreme theme within your project.

Web Dashboard Themes

To explore this new option, simply open an existing v19.2 Web Dashboard Demo and switch between themes using the dropdown button within the Dashboard Title.

Note: Material themes are not available in this early access preview. Material design support involves numerous moving parts and though we hope to include support once v19.2 ships, we may have to defer this feature.

Custom Themes and Command-Line Interface

For those who wish to create a custom Dashboard theme and those who have already created a custom theme using the DevExtreme ThemeBuilder, v19.2 includes our new Dashboard Theme Builder CLI (command line interface).

Our Dashboard Theme Builder CLI is a command line tool based on Node.js and was designed to work together with DevExtreme ThemeBuilder. It allows you to create a custom Web Dashboard theme with ease.

The following KB article details usage of our new Theme Builder CLI.

Note: In this early access preview, we do not apply palettes to data-specific colors (present in our Chart, Range Filter, TreeMap and other visualization widgets). Palettes used in these Items are tightly bound with data, and we don't expect to make modifications to our existing implementation. You can customize specific colors by handling the CustomPalette event. If this does not address your requirements, please comment below. We'll be happy to review your use-case in greater detail and reconsider our implementation if necessary.

Data Inspector

We've created a basic UI to allow end-users to inspect data (underlined or aggregated, at your discretion) used to populate our visualization widgets.

Data Inspector - DevExpress Dashboard

To invoke this dialog, use one of the following methods:

  • click "Data Inspector" in the Dashboard Item Caption. The item is visible if the AllowInspectAggregatedData or AllowInspectRawData property is true;
  • call the ShowDataInspector method within your own UI.

The new UI is available for all platforms (WinForms Dashboard, WPF Dashboard, Web Dashboard). We activated this feature for all DevExpress Dashboard Demos in this early access preview.

JSON DataSource

You can now use JSON Data Source to feed JSON data to Dashboards - across every platform.

End-users can create a JSON data source with the Data Source Wizard available in our WinForms Designer and Web Dashboard.

JSON DataSource - DevExpress Dashboard

You can use the new DashboardJSONDataSource class to create the JSON data source in code.

XPO DataSource

DevExpress Dashboard now supports our XPO Data Source. You can bind your XPOBusiness Model to DevExpress Dashboard (feel free to use our WinForms Dashboard Wizard for this task).

You can also instantiate the DashboardXpoDataSource in code and add it to your dashboard / data source storage as follows:

DashboardXpoDataSource dataSource = new DashboardXpoDataSource() {
    ConnectionStringName = "nwind"


Data Federation – Union

Our Data Federation Data Source now supports Union operations.

When creating a new federated query in our WinForms Wizard, you can select the appropriate operation type – Join, Union or Union All

Data Federation Data Source - Union - DevExpress Dashboard

In addition, our API allows you to create complex queries when a Federation Data Source performs a Join with one data source and a Union operation with another data source. The query is generated as illustrated in the following code snippet:

DashboardFederationDataSource federationDataSource = new DashboardFederationDataSource();
var msSource = new Source("MSSQL Source", msSqlDataSource, "query");
var mySqlSource = new Source("MySQL Source", mySqlDataSource, "query");
var excelSource = new Source("Excel Source", excelDataSource, "");

var query =
    msSource.From().Select("ProductName", "CategoryID").Build("MSSQL select")
    .UnionAll(mySqlSource.From().Select("ProductName", "CategoryID").Build("MySQL select"))
        .Build("Products union")
        .Join(excelSource, "[Products union].[CategoryID] = [Excel Source].[CategoryID]").Select("CategoryName")

Extract Data Source API

We extended our Extract Data Source API and made it easier to manage millions of data rows. (if you've not evaluated Extract Data Source, we recommend that you consider it for future projects as it is blazing fast.

Some of you reported issues when updating your Extract Data Source in the concurrent multi-user request world of the web. Our current workaround required that you write code to address this issue. With v19.2, you can use the following straightforward API:

    (_, result) => logger.Log("onDataUpdated", result),
    (_, result) => logger.Log("onFileUpdated", result));

Behind the scenes, we redirect data requests to a new file and delete the old file when it is no longer necessary. This operation is seamless. No additional thread synchronization tasks are required on your end.

Data Federation + Extract

We improved how our Data Federation and Extract Data Sources work together.

With v19.2, you can create an extract from your Federation Data Source. You can also include Extract Data Source in the Federation Data Source and join/union with other data sources.

Window Function for Calc Fields

Back in v16.1, we enhanced our DevExpress Dashboard with Window Calculations , available at Dashboard Item's level. Since then we collected a (very little) number of your request to perform similar calculations on the previous data processing step, before the data was aggregated to be displayed.

You can now do it in your Calculated Field with our new w function.

To better illustrate its concept, we have created this article which gives examples of various aggregation types so you can compare and analyze.

Before We Let You Go

To better address your business needs, we ask that you complete the following DevExpress Dashboard product survey. We'd love to know how you're using DevExpress Dashboard and how we can better address your needs in 2020. The survey should only take 4 ½ minutes to complete (yes, we’ve made certain to keep it short and to the point). 

NOTE: Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and other important data before installing Early Access and CTP builds.

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.
Daniel Hall 5
I'm going to try out the changes to the JSON Data Source and provide feedback to ensure this feature is future proof.  I love the direction your team is taking with every aspect of the dashboards!  Your team rocks!
20 August 2019
Jonatas Hudler
Jonatas Hudler

Great additions!

Question: Is this the final list? Or is more coming? (I remember other features were decided in the roadmap).

With this new Window Calculation possibilities, I missed even more the ability to persist line breaks in multi-line calculated fields expressions.

20 August 2019
Marco Torregrossa (Global)
Marco Torregrossa (Global)
Great job!
I hope you will continue to improve that controls in the future.
This allow us to provide a BI tool for users, based on their data, directly inside our ERP
20 August 2019

It's a great list of avances.

I like your work but I would like more documentation to Angular users because almost is oriented to MVC users.

I would like that together we can compete with other business intelligence apps.

20 August 2019
Escreva seu comentário aqui ...The data federation feature, announced in 2018, does not yet allow the end user to merge sources into the web platform, only via code. But the end user has no access to the code! It is a feature long awaited by my clients. The screen must exist for the end user himself to federate data in designer mode.
20 August 2019

The possibility of setting the background color of the cards in the toolbox, also announced in 2018, is not confirmed in this blog. Currently only via code it is possible to change the background color of the cards.

20 August 2019
Gabriel Phaiphai
Gabriel Phaiphai

Customer51877 I agree,

Sourcing data via code is not ideal. End User designer need to be flexible enough to 
link data at runtime(file config) than in code. Charts/Reports and Dashboards design and data sourcing
should be abstracted to end user where they can be changed without code change.

21 August 2019
Andrey (DevExpress)
Andrey (DevExpress)
@Daniel Hall 5
@Marco Torregrossa (Global)

@Jonatas Hudler
We still hope to fit a couple of features in the final release, and Expression Editors' enhancements are among them.
Our first survey results confirm that these improvements can be useful to our customers as 94% of respondents answered that they are using our Calculated Fields.
I'll pass your requests to our documentation team.
@Gabriel Phaiphai
Thank you for sharing your thoughts.
Your requests help us focus on things, which are important for our customers.
I encourage the readers who feel the need for the Web Data Federation Wizard / Cards / Chart Conditional Formatting features to drop us a line and describe their scenarios
so that we can better understand our customers requirements' and prioritize these features (which are currently placed in the upper part of our Backlog, but not in the Doing list).

21 August 2019
Jesús Gómez Rodes
Jesús Gómez
Great job. We see how advices and comments help to go on and to devise a power plattform!
21 August 2019
Fabio Andrade
Fabio Andrade


Great Job!

some points:

Data Inspector needs a button to export to csv or excel.

Is there any plan to have native provider for mongodb ?,

and about filtering out an olap cube at source. There are situations where every dashboard uses some filter and without that just filtering on each dashboard item. and with that dashboard maintenance is much more difficult.


21 August 2019
Andrey (DevExpress)
Andrey (DevExpress)

@Jesús Gómez Rodes

Thank you!


@Fabio Andrade

Thank you for your feedback. I've passed it to the R&D team.


We don't have any immediate plans to support MongoDB as a data provider. We advise our customers to connect to MongoDB on their side and then use ObjectDataSource.


As for the OLAP filtering, our DashboardOlapDataSource has the Filter property, which you can set up in your code.

If this API does not match your needs, please open a support center ticket and describe your use case in greater detail.

26 August 2019
Joseph Sargeant
Joseph Sargeant
Great work... looking forward to testing the new functionality
27 August 2019
Larry Pope
Larry Pope

The data inspector is a great addition.  I would like to know how the Hidden Dimensions / Measures will impact it.  At least from the beta, it seems adding hidden measures then show up on the inspector form under both aggregate / raw but not hidden dimensions.  I don't know if that is planned or just not implemented yet. 

Adding the hidden dimensions to the aggregated view might have performance issues. Minimally adding the hidden dimensions to the raw output would be desired to provide more context to the underlying data.  One of my issues with these types of inspectors in other products is that they either only show the fields that are visible on the visualization or show all the underlying columns.  Using the hidden dimensions / measures to tailor the output would be a great way to ensure you have just the useful columns rather than have too little / too much.

16 September 2019
Andrey (DevExpress)
Andrey (DevExpress)
@Larry Pope
Thank you for your feedback!
We have not made a decision about Hidden Dimensions - We are collecting information and trying to isolate non-obvious issues. 
As a workaround, you can add a Hidden Measure with the Min/Max aggregation type. This can do the trick.
23 September 2019
Klaus Pieper_1
Klaus Pieper_1
In your 2019 roadmap you mentioned new features for parallel periods. Is there any progress on this in 19.2?
10 October 2019
Gerhard Korf
Gerhard Korf

Raw Data is awesome, can we add the hidden fields as well please (as more columns).

So currently you typically show Date and one parameter on the graph.  If you want to add another dimension it can be displayed in the "Raw Data" as another column.

Would then also be possible to export this data (including the "hidden field" which is another dimension).

btw, small bug:  if your x axis is a date / hour field, the raw data only show the date part, not the hour. 

10 October 2019
Andrey (DevExpress)
Andrey (DevExpress)

@Gerhard Korf
Hidden Measures are already available (see the discussion in comments above)
As for the export data, it's already available in WinForms & WPF Dashboard controls.
We decided to not enable it by default in Web, because it requires referencing third-party libraries, which eliminates backward-compatibility.
However, you will be able to enable it on your own, accessing underling DevExtreme DataGrid and our Data Inspector API.

Thank you for your report about the Hours part! In the current version, we do not apply any formatting to our Raw Data and rely on our underlying control's default behavior. I've passed your request to our R&D team.

16 October 2019
Andrey (DevExpress)
Andrey (DevExpress)

@Klaus Pieper_1
The Parallel Period feature was not included in v19.2.
Our R&D have performed research and created a vision of the future Parallel Period's functionality.

We are planning to introduce it as a new type of Window Calculation, which you will be able to apply to your Measures. This new Parallel Period Calculation type will be available when at least one DateTime Dimension is bound to the target Dashboard Item. You will be able to combine it with other types of calculations, such as Running Totals.

We will take care of the technical details, such as applying correct Filters to data and restoring the missing data points.

Currently, we are planning to release this feature in 2020.

16 October 2019

Escreva seu comentário aqui ...


I performed testing with the new JSON Data Source feature. I would like to note two remarks:

1 - The PARAMETERS session should optionally accept JSON (body) format input with all parameters.

2 - How to perform POST requests?
17 October 2019
Willson Deng
Willson Deng
How do I export the dashboards as xml?
5 November 2019
Andrey (DevExpress)
Andrey (DevExpress)

Thank you for your feedback. I have passed it to our R&D team.
POST requests in JSON Data Source are not supported out of the box in v19.2, as it's not quite typical to read data using POST requests.
I would like to learn more about your use case, which requires you to use POST instead of GET. We can discuss what options/workarounds we can suggest you.

@Willson Deng
Every dashboard that your create in Dashboard Designer is a Dashboard Model instance, which is (usually) serialized in the XML format.
So, if you need your users to access this XML, I recommend you to implement this on your side, just as a regular file download routine.

If this does not meet your requirements, I suggest you create a support ticket so that we could discuss your options in greater detail.

8 November 2019
Baldur Fürchau
Baldur Fürchau

Much of the work is really good and our customers can work with the designer.
But some things are too complicate to explain to nontechnical endusers as for example financel controllers.
They love mostly excel as easy to use and dashboards must new be learned and nothing from excel can be reused (and i dont mean the excelwidget!).

So our company has created an own datawarehouse with own dataaccess to provide the enduser from simple to complex szenarios and easy to use your dashboard with objectdatasources. No enduser will really work with SQL, even if the datamodel of the database is created by a framework like Entity. 

Somtimes you provide me with solutions that solves the temporary problems. I spend a couples of houres to develope and some version of your product later, you have done my work better than i;-).

So that's the reason, why i will tell you about some features we plan or we want to have from you (because you have more resources than i):

This is a really good function, if it shows really the raw data. In Dataanalysis it is often, that the reason for the result is only be found in the raw data if i have filtered and or aggregated them. So if i see the same data as raw as already shown in the widget (except chart) it makes no sence for the enduser.
Additional Min/Max-Measures doesn't help, because these are aggregates too and are additinally visible.
I have planed in the past an own datainspector before, but yours comes faster than my.
So it would be great, to enhance the datainspector with the raw data and all fields of the current source or all hiddenfields.

More Dynamic Aggregates
Some functions in your datamodel are calculated "static" in the dataloading or are recalculated after data filtering.
So some analysisfunctions are not possible or very hard to explain. As i told, our endusers create there own dashboards and not the employees of the it-division.
I can't explane to each the w-functions and also the aggr-function.
So the standard aggregates Sum, Avg, Min, Max, ... are calculated on the fly.
I mean it is calculated in drilldown/drillup or calculated in the pivotgrid for each level.
So i have all informations concerning a datasource, e.g. "Sales".
But the "Top N" is calculated static and can't be used to show a "Top N from each Top M". Your solution to create an rankaggregate and filter these, will not solve the analyse because of the filter, i have not all available data.
Your current "Top N" has an additional option "Sum of the rest", that can't be used in filter.
So please make "Top N" dynamic as the other aggregates, may be optional.

New Feature Master Drilldown
All your "drillable" widgets supports drilldown-events and dodrilldown-functions.
So we have in our old software a feature, that a drilldown in a grid shows automaticly the corresponding chart.
This is at the moment impossible. If i do a drilldown in a widget, i must du the same in another widget manually.
So the simple condition is:
If two (or more) widgets have the same herarchie on dimensions and a widget is marked as "Master Drilldown", all corresponding widgets should drilldown / drillup to the same dimension with the same node of data.
With this function (and i think it is not heavy to realize) you provide a greater flexibility to walk through data and work with the dashboard.
At the moment much customers shows the data in the dashboard, exports them at a specific level to excel and work with them there.
Like "Ignore Master Filter" it should also have an "Ignore Master Drilldown".

Colorizing Treemap
In our old software we have also made a treemap and there we have such a function.
To colorize the dimensions in a treemap has no "meaning".
If you provide a conditional colorizing of the measures, you get 2 informations at he same time:
First: the size show the relative value from a measure.
Second: the color show the weight from the measure like a traffic light.

So for example in an "Sales"-Dashboard i can see the biggest revenue.
But revenue is not profit, so i can show with colors the "weighted margin".
For example a margin less 1% will show in red, less 30% in yellow and greater 50% in green. The treemap shows me immediatly where the relationship between margin and revenue becomes "not successfull".

So please provide the conditional colorizing in the treemap as in the grids.
The same can be done also in the barcharts.

Lets make your dashboard greater;-).

3 January 2020
Baldur Fürchau
Baldur Fürchau

Sorry, i was to fast;-).

Copy Cellvalues to clipboard
At the moment in all widgets it is impossible to get a copy from any textelemet in any widget. If i have found in my analysis an item that shows me a problem, i can't copy the value, e.g. partnumber, customernumber, to the clipboard for usage in another application. I must manually copy this and often this results in typing errors.

So please provide a function to copy textvalue from widget to clipboard.

3 January 2020
Andrey (DevExpress)
Andrey (DevExpress)

Hi Baldur,
Thank you for your feedback. I've passed it to our R&D team.
I believe that in the coming v20.1 (Early Access Preview is already available), you will be able to implement the Master Drill Down feature in your application on your own using the new Custom Properties for Dashboard and State Management.
We’ve created an example of the “MasterDrill Down” implementation. You can check it at

The sample includes a custom module, which you can include in your application.
Please let me know if this approach meets your requirements. We are now checking if this way of extending the dashboard functionality works well for our customers, and your feedback will be greatly appreciated.

11 March 2020

Please login or register to post comments.