DevExtreme JavaScript – 2021 Roadmap

DevExtreme Team Blog
24 February 2021
Before we detail our 2021 Roadmap, we want to thank you for the feedback you submitted in our 2021 roadmap survey (if you have yet to submit your thoughts, feel free to do so).
As you probably know, time and resources preclude us from delivering every single feature on our user's proverbial wish list. This notwithstanding, please know that your feedback definitely matters. We take every single response into consideration during the decision-making phase of a release cycle. Ultimately, our goal is to align our efforts with yours because a rising tide lifts all boats.
With that – here is our 2021 Roadmap
DevExtreme’s 2021 Roadmap is motivated by the following primary objectives:
  • Officially release products and features that we launched last year as a CTP.
  • Finalize and release everything we started last year but could not ship in v20.2.
  • Focus on improvements to existent component architecture and associated customization capabilities versus new components or major new features. Thanks to your valuable feedback, we have a lot of important things to address in this regard.

New Features

DataGrid - Export to PDF

Angular React Vue jQuery
CTP available in v21.1

Last year we added a PDF Export feature to our JavaScript DataGrid (as a CTP). We plan to add the following new features and officially release this capability in 2021:
  • WISIWYG cell data export
  • Fit-to-page option
  • Multi-page export
  • Long cell text support (wrapping)
  • Built-in export progress indication
  • Exported cell value, format, and appearance customization.
If you have already tried or plan to try our new PDF Export API and want to share your feedback, please refer to this discussion page.

DataGrid/TreeList - Editing API Enhancements

Angular React Vue jQuery
Released in v21.1

In v20.2 we introduced several enhancements to our JavaScript DataGrid’s data editing API. Some of these changes were released as a CTP last year (in particular features related to managing updated/inserted/deleted rows via declarative bindings - features important in Angular, React and Vue applications). Official release of this API is expected in v21.1.

DataGrid - Released in v21.2 TreeList - In Development

This new API also addressed requests to specify custom position for newly added rows in our DataGrid/TreeList.
You are welcome to follow the discussion on this new API here. We’ll update the thread once this API is publicly available and ready for early testing.

HTML/Markdown Editor

Angular React Vue jQuery

As you may already know, in v20.2 we forked Quill v2.0 to add a highly requested feature - Table Support. Another positive outcome of this fork is IE11 support - something that survey results suggest remains important for a large number of DevExtreme users. Originally, IE11 support was dropped by the Quill team in Quill v2.0.
This year, we will incorporate the following new features into our HTML/Markdown Editor:

Released in v21.2

  • Soft break support (<br>)
  • Extended table support:
    • Enhanced UX (context menus & dialogs)
    • Add table headers
    • Multiple paragraphs within cells
    • Customize table/cell appearance.

In Development

  • Image upload
  • Merge table cells
If you want to share your requirements, feel free to leave your feedback in the following discussion pages: Upload Images and Table Management Enhancements.

Scheduler – Horizontal Virtual Scrolling

Angular React Vue jQuery
Released in v21.1

Virtual Scrolling was first introduced in v20.2 and was made available in vertically grouped day and week views. Virtual Scrolling improved performance when displaying hundreds or even thousands of events/groups. In v21.1 this enhancement will be extended to timelines and horizontally grouped day and week views. We’ll post an update in this thread once our implementation is ready for review.

Gantt - API Enhancements and PDF Export

Angular React Vue jQuery

We continue to address requests regarding recently released components such as Gantt and Diagram. Most requests are related to component customization. In 2021, we’ll add the following customization capabilities to our Gantt component:

Released in v21.1:

  • Customize task appearance via templates
  • Scroll to a specific date programmatically

Released in v21.2:

  • Export to PDF
  • Customize behavior via a new set of events raised when a task or a dependency is added/removed
  • Expand/collapse tasks programmatically
  • Show/hide dependencies via a toolbox item or programmatically
  • Specify initial date range to display
  • Support sorting by column.

Diagram – API Enhancements

Angular React Vue jQuery

We expect to ship the following new DevExtreme Diagram customization features in 2021:

Released in v21.1:

  • Get a shape/connector model from its underlying data item key
  • Iterate through all diagram shapes and connectors

File Manager – API Enhancements

Angular React Vue jQuery

We will extend the DevExtreme File Manager and make it more customizable with the following new APIs:

Released in v21.1:

  • Allow custom HTTP headers in RemoteFileSystemProvider
  • Customize context menu items for individual files/folders
  • Show custom errors on the client side
  • Show/hide Progress Panel and Folder Tree

Released in v21.2:

  • Add events to precisely control file/folder operations (folder creation, file uploading, moving, deleting, etc.)
  • Wrap long file names in the File Manager’s detail view
  • Customize icons in the Folder Tree.

Tree Shaking & Code Splitting

Angular React Vue jQuery
ES6 modules available in v21.1 In Development

A lot of work has been done in the regard to better Tree Shaking, but much work remains to be completed for better Code Splitting. Last year we reworked DevExtreme modular system to deliver ES6 modules in DevExtreme NPM packages. The final “mile” was unexpectedly long – as issues prevented us from shipping ES6 modules inside v20.2.
Note, ES6 modules make it technically possible to efficiently tree shake code. Unfortunately, this not enough for efficient bungle/chunk size optimization. Modules themselves need to be small and independent from one another. Large components should not be monoliths. That’s our goal for 2021 - make existing modules smaller and more independent - and split large monolith components into separate modules. We don't expect to finish everything in this regard this year, but we expect to eliminate the most problematic issues. Join the discussion on ES6 modules support and share your feedback (we definitely need early testers).

Material Design Enhancements

Angular React Vue jQuery
Released in v21.2

The Google team constantly updates its Material Design Guidelines. We plan to incorporate relevant changes and previously planned Editor Label Animations. If you have any specific requests about Material Theme support in DevExtreme, feel free to let us know via the feedback form below this post.

2021 Guiding Principles and Development Direction

Your feedback helped us fine-tune our vision. The features we'll introduce in 2021 depend on continued feedback/engagement with all of you – and of course available resources.

Flexible NPM Distribution

Angular React Vue jQuery
Under Consideration

We already mentioned Code Splitting above. Another thing to consider in this regard is to split the monolithic DevExtreme NPM package into multiple smaller packages. This would allow you to install big controls such as Scheduler, Diagram, Gantt, etc separately. There are different variants to split by packages. If this change is important to you, please let us know how you would benefit from its implementation (leave your feedback in the comment field below).

“Nativeness”

Angular React Vue
Under Research

The JavaScript world evolves rapidly. As such, we must fulfill user demand whenever a popular JS framework appears or an existing framework receives a major update. While we want to ship products as soon as possible, we also want to deliver products of the highest possible quality.
A few years ago, we decided to wrap existing JS components for Angular, React and Vue so you can leverage our 70+ JavaScript components with your framework of choice immediately. Now we want to go even further and eliminate the perceived disadvantages of ‘wrappers’. We are still at the research stage and we’ll be posting updates on this particular topic once we have something relevant to share.
As it relates to “nativeness”, we have three specific objectives for DevExtreme:

Native API & Lifecycle

Our current API allows you to implement almost any usage scenario, but in some instance, our API may not “feel” native. Sometimes the API requires direct DOM access or instance method calls instead of declarative bindings. Sometimes you need to use DevExtreme-specific events instead of the target framework’s lifecycle events. We want to address all these issues and deliver native declarative APIs and support native lifecycles.

Native Data Binding

DevExtreme ships with a powerful data layer that encapsulates all the complexity of client-side data processing and remote HTTP request handling. This notwithstanding, in some instance, you may need to bind components directly to your local application state. This state can be represented by static arrays, observable arrays, Redux or NgRx store, etc. We plan to improve the developer experience in this regard and deliver a straightforward solution to address these usage scenarios.

Native Rendering

Each JS framework comes with its own philosophy and core technical foundation. React and Vue are based on Virtual DOM, Vue and Angular use observables, etc. Multi-thread rendering via Web Workers is on the horizon. All these techniques offer benefits - from better performance to server-side rendering support. While DevExtreme wrappers leverage some of these benefits, we can do more. We are researching ways to deliver all of them via a fully native internal component architecture. We’ve already got some promising results in this regard, but still have some core issues to address before we can share our solution with you.
If the nativeness” related enhancements are important to you and you want to participate in early testing and technical discussions, please let us know via the form below or simply track this GitHub thread.

DevExtreme Reactive (Native React)

If you are not familiar with this product, DevExtreme Reactive is a separate set of components built from the ground up for React. It currently includes native React Grid, Scheduler and Chart components. In the context of what we said above regarding “nativeness”, the future of this product line will be shaped by successes in mentioned in the section above. If we prove the viability of our "nativeness” concept, we’ll be able to substitute DevExtreme Reactive components with more powerful native components for React - a package that will include more than 70 UI controls. Of course, if we go the “nativeness” route, we’ll do our best to make the migration process as smooth as possible for those of you who already committed to DevExtreme Reactive. We expect to support our Reactive components and to introduce minor enhancements in 2021. We don’t plan on any major updates to this product line in 2021.

TypeScript

Angular React Vue jQuery
In Development

Another key area of focus will be TypeScript support. Thanks to your feedback, we know what to do and which use cases to address. First, we want to replace ‘any’ type with specific types wherever possible. Second, we expect to make event arguments strongly typed and extract these types/interfaces so you can use them in your projects. If you want to forward specific issues as they relate to TypeScript, feel free to comment in this thread.

Documentation

Angular React Vue jQuery
In Development

This year we plan to allocate more resources to documentation. The mix of technologies on our website is confusing, so we plan to have dedicated websites for each JS framework we support. For instance, if you target React, you won’t be distracted with Angular or ASP.NET-related examples or documentation topics. Additional examples and demos for each framework are also on the horizon.
The information contained within this Roadmap details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely or use this information to help make a purchase decision about Developer Express Inc products.

Feedback

If you’d like to share your thoughts with our team, please comment below. If you have not responded to our survey, we encourage you to do so whenever time permits.
We expect to update this page throughout the year, so definitely bookmark this page for future reference.

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.