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"
};

dataSource.SetEntityType(typeof(Products));

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")
    .From().Select("ProductName")
        .Join(excelSource, "[Products union].[CategoryID] = [Excel Source].[CategoryID]").Select("CategoryName")
    .Build("query");
federationDataSource.Queries.Add(query);

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:

DashboardExtractDataSource.UpdateFile(extractDS,
    (_, result) => logger.Log("onDataUpdated", result),
    (_, result) => logger.Log("onFileUpdated", result));
extractDS.Dispose();

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.
21 comment(s)
Daniel Hall 5
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
Harlin
Harlin

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
Marcio.Matos
Marcio.Matos
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
Marcio.Matos
Marcio.Matos

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.
 
@Harlin
I'll pass your requests to our documentation team.
 
@Customer51877
@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 Rodes
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

Hello,

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.


thanks

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 the Hidden Dimensions yet as we wish to ensure that there are no any non-obvious issues. Thus we are still looking into this.
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
Marcio.Matos
Marcio.Matos

Escreva seu comentário aqui ...

JSON DATA SOURCE


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)

@Marcio.Matos
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

Please login or register to post comments.