Quantcast
Channel: Developer Express Inc.
Viewing all 2399 articles
Browse latest View live

WPF Controls - 2020 Roadmap

$
0
0

As always, our thanks to everyone who reviewed our proposed 2020 WPF Roadmap last year. We appreciate your feedback and hope that our official 2020 Roadmap meets with your approval. Don’t forget to check out the following blog posts for information on other DevExpress WPF-specific products: 

Important Note: In nearly every instance, we selected features that received the highest positive vote count. In some instances, total votes for features that appear on this roadmap failed to break the 50% mark. However, the listed feature won the vote by the highest percent of votes among the other options.

Table of Contents

Future of .NET

.NET 5 Support

.NET 5 is scheduled for release in November 2020. You can expect full .NET 5 support across our WPF product line around this date. We also hope to release beta versions built for .NET 5 a few months in advance.

.NET Core 3.1 - Designer Extensions

We introduced official support for .NET Core 3.0 in our v19.2 release cycle. Starting with v19.2.5, DevExpress WPF controls support .NET Core 3.1 and ship with new project templates.

Since .NET Core uses a new surface isolation architecture for the WPF designer, most of our designer extensions are currently available only for .NET Framework. In 2020, we will add the following designer features for .NET Core.

v20.1:

  • Applying application themes from App.config to all designer previews.
  • Selection of non-visual elements (Data Grid columns, Toolbar & Ribbon items).
  • Basic Smart Tags - displaying links to documentation, selecting the application theme.

v20.2:
We are exploring the capabilities of Visual Studio's new Suggested Actions to determine if they can be extended to support DevExpress controls. Since Suggested Actions are still under development, we have yet to determine whether they can effectively replace Smart Tags in the future. 

UWP Controls and WinUI 3.0

Last year, Microsoft announced a complete overhaul of WinUI - the native UI platform for Windows 10. TThe new incarnation (WinUI 3.0) will decouple the UWP UI framework and distribute it as a separate package (rather than a part of Windows 10 and UWP SDKs). Existing UWP Xaml APIs are going to be in the maintenance mode and will not receive feature updates.

A preview release of WinUI 3.0 is scheduled for the first half of 2020. We are monitoring the development of WinUI 3.0 and hope to port DevExpress UWP controls to WinUI 3.0 once a stable enough build is available.

New Controls and Features

WPF Splash Screen (v20.1)

We will extend the capabilities of our WPF Splash Screen with the following appearance and behavior enhancements: 

  • Increased startup performance.
  • New templates to help you deliver visually appealing Splash Screen windows that change colors depending on a selected theme.
  • Acrylic effect support.
  • The capability to drag a Splash Screen window.

UI Testing Support (v20.2)

This feature received 63% of the vote in our survey.

DevExpress controls support the UI Automation framework for screen reader tools. This allows you to create basic UI tests with any testing tool that uses UI Automation to access visual elements. However, since screen reader tools only use a portion of the UI Automation API, some test cases are not supported out-of-the-box and need to be implemented with custom code.

We will extend support for UI Automation in our most popular controls (such as the Data Grid, Data Editors, and Ribbon). Updated UI Automation peers will cover common test cases written manually or with popular UI testing tools and frameworks based on UI Automation. In addition, we will support the Appium and WinAppDriver approach recommended by Microsoft.

Sankey Chart (v20.2)

We will introduce a Sankey Chart designed to visualize a flow from one set of values to another. 

WPF Data Grid

Virtual Sources - Data Editing (v20.1)

Infinite and Paged sources will support data editing via Edit Entire Row. End users will be able to press the Update button after entering cell values to post changes to a data source asynchronously.

Virtual Sources - Miscellaneous Enhancements (v20.1)

We expect to address the following limitations associated with Infinite and Paged sources:

  • Keeping the selected row and scroll position after a refresh.
  • Updating individual rows.
  • Calculating custom Total summaries.

WPF Data Grid and TreeList - Common Features

New Filter Panel (v20.1)

This feature was initially planned for 2019 but we postponed it to polish Excel-Inspired filters and enable them by default. The new Filter Panel will display separate tokens with filters for each column (making it easier to read and manage).

If an applied filter does not fit within the screen area, detailed information will be displayed within a popup.

Automatic Column Best Fit (v20.1)

Our WPF Data Grid and TreeList can both calculate the optimal width for columns based on header text and content. To do this, you either need to call the BestFitColumn/BestFitColumns method or click a corresponding item in a column's context menu. With this new feature, the Data Grid and TreeList will automatically calculate optimal width for columns when loading data or when underlying data changes. To make this possible with large data sources, we will research possible optimizations for the Best Fit process and introduce a new mode wherein optimal width is calculated based on visible data and recalculated again during scrolling.

Conditional Formatting - Disable Cells and Rows (v20.2)

New Conditional Formatting rules will allow developers and end users to disable rows and cells (or make them read-only) based on a specific condition.

WPF Tree View (v20.2)

This feature received 48% of the vote in our survey.

At present, you can customize our TreeList so that it looks like a Tree View - hide headers and row indicators, disable cell navigation, configure horizontal scrolling. However, customizing the TreeList requires time and knowledge of our API. We are going to provide a separate control that looks like a Tree View and inherits the best TreeList features - performance, formatting API, and rich filtering options.

WPF Pivot Grid

Customization Form Search (v20.1)

The Pivot Grid's Customization Form will display a search box that allows end users to filter the list of available fields.

Summary Filter Popup (v20.1)

Data Field headers will display a filter button that invokes a popup window that allows end users to configure summary filters.

New Filter Panel (v20.2)

In our second major release of 2020, we will extend the capabilities of our WPF Pivot Grid with a new Filter Panel. This panel will contain separate tokens with filters for each column (instead of displaying the entire filter string as plain text). 

Context Menus for Summary Type and Group Interval (v20.2)

New context menu items will allow end users to change summary type and group interval at runtime.

WPF Charting

Large Data Source Processing (v20.1)

We will introduce a new data processing mode to minimize overall memory footprint when processing large data sources. This will address the needs of those with extremely large statistical/financial datasets (especially useful for those using multiple Series or multiple Chart Controls simultaneously).

Chart Ribbon and Toolbars (v20.1)

Charts will be able to generate Ribbon or Toolbar items to help end-users to execute basic charting tasks and tasks specific to financial charting.  

In-place Edit Mode for Annotations and Other Text Elements (v20.1)

We will make Annotations and Constant Lines editable at runtime (a new option will be added to the Chart Toolbar).

For more information on this feature, please review the following support tickets: Q531396, T182416, E1003.

New DateTime Scale Mode (v20.1)

Our Chart Control includes a configurable DateTime scale (you can exclude non-working days and time as needed). We will extend DateTime scale processing by automatically excluding intervals without data. This will simplify DateTime scale configuration for those using financial charts.

New Series Label Display Mode (v20.1)

All XY-Diagram compatible Series will support a new label type for easier Series identification when multiple Series are displayed simultaneously.

Support Percent Values for Side Margins (v20.1)

For more information on this feature, please review the following support tickets: T700625, T148976.

Mini Map for Easy Navigation (v20.2)

Chart Designer Template Gallery (v20.2)

We will extend the customization capabilities of our Chart Control and Chart Designer to address various usage scenarios (the Chart Designer allows end users to quickly customize existing chart layouts or create new charts from scratch). We plan to introduce Chart Designer Template Gallery in the v20.2 release.

Calculated Fields and Parameters (v20.2)

We will introduce Calculated Fields and Parameters to extend data processing capabilities for end users.

Advanced Text Formatter for Crosshair Panel (v20.2)

You will be able to specify Crosshair label width and alignment.

WPF Data Editors

Date Navigator Enhancements (v20.1)

We expect to rewrite the visual portion of our Date Navigator so that it is more customizable and lightweight. We will also introduce the following features:

  • Touch support.
  • An API to define available views (e.g., show only months and years).
  • Improved keyboard navigation.
  • An API to define the Date Navigator's visible range.

TrackBarEdit Enhancements (v20.1)

TrackBarEdit will draw labels alongside ticks and display a tooltip with the current value when a user drags the thumb.

WPF Themes

Visual Studio 2019 Themes (v20.1)

We will release a set of new themes inspired by Visual Studio 2019.

Appearance Properties Support (v20.1)

We will simplify appearance customization for our most popular controls (Data Grid, Data Editors, Ribbon, Toolbars) via the following appearance properties:

  • Background;
  • BorderBrush;
  • BorderThickness;
  • CornerRadius;
  • Padding.

This is not a trivial task because many of these controls have unique requirements. We will investigate available options and will do our best to avoid breaking changes and performance issues.

Fluent Design - Reveal Highlight Effect Enhancements (v20.1)

We expect to add the support for dark and white themes to our Reveal Highlight API.

Theme Designer - .NET Core Support (v20.1 or v20.2)

You can already use theme libraries built against .NET Framework in your .NET Core apps (see .NET Core 3 Support). In 2020, we hope to support themes built against .NET Core 3 and run Theme Designer previews under .NET Core.

WPF Ribbon and Toolbars

Bar Item Appearance Options (v20.1)

Ribbon and Toolbar items will support the following appearance properties:
  • Background;
  • BorderBrush;
  • BorderThickness;
  • CornerRadius;
  • Padding.
We expect to provide separate customization APIs for these properties for Normal, Pressed, Checked, and Hover states.

Ribbon - Backstage View Enhancements (v20.1)

Ribbon's Backstage View will support glyphs for individual items and will be able to display items at the bottom.

WPF Scheduler

Appointment and Time Region Filtering (v20.1)

Our WPF Scheduler will include an API that allows you to dynamically hide appointments and time regions. You will be able to handle events to describe your custom filtering logic.

scheduler.FilterAppointment += (d, e) => {
    e.Visible = object.Equals(e.Appointment.StatusId, 1);
};

In addition, the new FilterString and FilterCriteria properties will help you bind your Scheduler to the Filter Editor or to Filter Elements for advanced filtering scenarios.

New Timeline View Layout (v20.1 or v20.2)

We will rewrite the visual portion of the Timeline View and introduce new dynamic time scales, per-pixel horizontal scrolling, and smooth zoom to the mouse pointer. The overall experience will be similar to scrolling and zooming in the Gantt control:

Unlike the Gantt control and our current Timeline View implementation, the new Timeline View will limit horizontal scroll range depending on the current zoom factor. For example, when the time scale displays days, you will be able to scroll within a month before zooming out or switching to the next month in the Date Navigation Panel. Limiting the horizontal scroll range will help us calculate the resource height for the entire range so that resources don't change height during scroll operations.

In addition to improved zooming and scrolling, the new Timeline View layout will provide a more flexible way to control resource height. You will be able to define the minimum and maximum height for your resources, and the Scheduler will calculate actual height for each resource (based on appointments contained within the displayed range). If appointments exceed the maximum resource height, resources will display a button that expands the resource even further.

On-Demand Data Loading (v20.2)

With this feature, our WPF Scheduler will request data only for the visible range and will make additional queries after scrolling. Loaded data will be cached to reduce the number of requests.

scheduler.FetchAppointments += (d, e) => {
    e.AppointmentsSource =
        from x in dbContext.Appointments
        where (((x.QueryStart >= e.Interval.Start && x.QueryStart < e.Interval.End) || (x.QueryEnd >= e.Interval.Start && x.QueryEnd < e.Interval.End))
                || (x.QueryStart < e.Interval.Start && x.QueryEnd >= e.Interval.End))
                && e.ResourceIds.Contains(x.ResourceId)
        select x;
};

On-demand data loading can significantly increase the loading speed for applications with large data sources.

One Month View (v20.2)

This feature received 35% of the vote in our survey.

In our second release of 2020, we will ship a new view that displays a single month. Individual weeks within this new view can be of varying height (based upon the number of appointments contained within the week). If all weeks fail to fit the screen, a vertical scroll bar will be displayed. 

WPF Diagram

Text Tool (v20.1)

We will ship a new tool that allows you to add labels to a diagram by clicking an empty region and entering the appropriate caption via the keyboard. 

Localization and Measure Units for the Properties Panel (v20.1)

Diagram item properties displayed within the Properties Panel will support localization. In addition to pixels used by default, end users will be able to specify property values in other measurement units (inches and centimeters).

List Item (v20.2)

Our second major release of 2020 will include a new container item that arranges its child items in a list. End users will be able to add, remove, and reorder items in this list. 

WPF Gantt

Backward Scheduling (v20.1)

The Backward Scheduling API will help you manage projects that have a specific deadline. You will be able to plan backwards - scheduling each task from a deadline to the beginning of the project.

Resources (v20.2)

This feature received 54% of the vote in our survey.

You will be able to assign resources to tasks and specify the percentage of time a resource spends on a task. The Gantt control will automatically schedule tasks based on resource availability.

Printing (Under Research)

Though still under investigation, we hope to allow users to leverage existing Printing classes to print our Gantt control. If existing Printing classes are insufficient, this feature will likely be postponed. 

WPF Mapping

New Vector Data Providers (v20.1)

We will introduce new data providers for formats such as vector tiles (PBF, MBTiles), GeoJSON, KMZ and GPX.

Vector tiles have a big advantage over raster maps from existing providers (Bing, OSM) because they reduce data transfer size. In addition, vector tiles make it possible to address popular requests such as map rotation.

For more information on this feature, please review the following support tickets: T825567, T833987, T745712.

Map Editor UI (v20.2)

We will introduce new vector elements and extend the Map Editor’s UI to make it more suitable for geo measurements and for in-place editing.

For more information on this feature, please review the following support tickets: T749863, T717633.

WPF Syntax/Code Editor versus Additional Enhancements to Core WPF Controls

Though we remain interested in a Syntax/Code Editor, we know that this component will only address the needs of a small subset of users. To help crystallize the opportunity cost (in terms of R&D resources) associated with a Syntax/Code Editor, we are compiling a list of minor enhancements across our WPF product line that would be deferred were we to create a Syntax/Code Editor in 2020.

Showcase Your Apps on DevExpress.com

Highlight your business app and share your development experiences with the DevExpress community. To include your app in our upcoming App Showcase, please forward an application screenshot to clientservices@devexpress.com and tell us which DevExpress products you currently use within your organization.
The information contained within this blog post 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 on or use this information to help make a purchase decision about Developer Express Inc products.

Coffee is on us at NDC London this week

$
0
0

This week, John, Julian and I will be available at NDC London where we will have a professional Coffee Barista to supply you with a fresh handmade coffee of choice.

DevExpress is proud to sponsor this event which always has an incredible speaker line-up.

I'm pretty sure there will be a lot of questions and discussions about Blazor which will give us the opportunity to show our Blazor Controls.

If you're attending, make sure to come by and get T-Shirt and raffle ticket for some cool prices to be won.

See you in London!

dotNed Saturday Impressions

$
0
0

Last Saturday, John and I travelled to Veenendaal, The Netherlands to sponsor the dotNed Saturday.

The conference was fully booked and we had a lot of nice discussions with the attendees.

My Blazor talk was well attended with some very nice questions from the audience!

Here is an impression of  dotNed Saturday: 

ASP.NET WebForms and MVC – 2020 Roadmap

$
0
0

Gantt 

We will officially release DevExpress Gantt for WebForms and MVC in our first major release of 2020. 

Our official release (v20.1) will include the following new features: 

  • Localization support
  • New toolbar with commands to edit default items and add custom items
  • New Current Time Marker to indicate current date and time
  • Data validation support
  • Custom task color support 
  • Touch device support

In our second release of 2020 (v20.2), we’ll add the following capabilities to our Web Forms and MVC Gantt control:

  • Export Gantt content to PDF, PNG, etc.
  • Template support (Gantt chart tasks)
  • Context menu customization
  • Task Details dialogcustomization

Diagram 

We will officially ship DevExpress Diagram for WebForms and MVC in 2020. 

Our v20.1 release will include the following features: 

  • Localization support
  • Performance enhancements
  • Custom shape templates 
  • New UI that offers additional workspace for a document. This should improve user experienceson mobile and tablet devices.
  • New shapes with images designed for use in OrgCharts.
  • Dash, dot, and other types of lines for shapes and connectors 
  • Context menu support
  • Touch device support

v20.2 will include the following new features:

  • Toolbar and context menucustomization
  • New API to refresh Diagram document when a data model is changed outside the component
  • Text validation in shapes and connectors
  • Automatically resize shapes based on text content
  • New API to restrict end-user operations such as shape resizing, dragging, adding orremoving shapes, dragging shapes outofcontainer, etc. 
  • Shape rotation support

RichEdit 

Client-side PDF export (in 20.1)

New client-side export mode generates a PDF document with the same layout as that displayed within the browser. 

Charts

New Swift Point Series Type (v20.2)

Swift Point Series will be optimized for quick analysis of large input data via the use of point markers.

swift-series

For more information on this feature, please review the following support tickets: T752918, S34103, Q455568.

New DateTime Scale Mode (v20.1)

Our Chart Control includes a configurable DateTime scale (you can exclude non-working days and time as needed). We will extend DateTime scale processing by automatically excluding intervals without data. This will simplify the DateTime scale configuration for those using financial charts.

New Series Label Display Mode (v20.1)

All XY-Diagram compatible Series will support a new label type for easier Series identification when multiple Series are displayed simultaneously.

edge-labels

Support percent values for Side Margins (v20.1)

For more information on this feature, please review the following support tickets: T700625, T148976.

Advanced Text Formatter for Crosshair Panel (v20.2)

You will be able to specify Crosshair label width and alignment.

Reporting 

Translate Report Documents to Different Languages (v20.1)

You’ll be able to localize the text displayed in report controls and specify control location and size for a chosen language. This functionality will be available for End-User Report Designer components as well.

Report Designer - Localized Report

Performance Enhancements (v20.1 – v20.2)

By refactoring our document generation engine, we expect to improve performance in terms of both memory usage and document generation speed.

Embed PDF Documents into a Report Document (v20.1)

You’ll be able to insert a PDF file into a report.

Excel Export – Html-Inspired Content Support (v20.1)

You’ll be able to export reports that contain XRLabels (with the AllowMarkupText property enabled) to Excel and preserve the content formatting.

Excel Export – RTF Content Support (v20.1)

You’ll be able to export reports to Excel files and preserve XRRichText content.

Parameter Enhancements

Bind JsonDataSource Parameters to Report Parameters (v20.1)

You’ll be able to pass report parameter values directly to JsonDataSource.

JSON Data Source - Parameter Bindings

Select All Multi-Value Parameter Values By Default (v20.1)

You’ll be able to pre-select all values for a multi-value lookup parameter.

Numeric Range Parameter (v20.2)

You’ll be able to create integer and float range parameters and filter a report’s data using a single editor in the parameters panel.

Numeric Range Parameter Editor

Parameter Editor Grouping (v20.2)

You’ll be able to logically group multiple report parameters in the parameter panel. Editors that display parameter values are placed in a Group Box.

Visibility of Parameter Editors (v20.2)

You’ll be able to hide a parameter editor based on the value used for a different parameter.

PDF Export – Visual Signatures (v20.2)

You’ll be able to define visual signatures displayed in exported PDF files using a new report control.

PDF Export - Visual Signature

Excel Export – Memory Consumption Enhancements (v20.2)

We will overhaul our Excel Export engine so you can generate large documents while consuming less memory during the export process.

RDLC Conversion Tool (v20.2)

Our import tool will allow you to convert your RDL / RDLC reports to DevExpress Reports.

Document Viewer – Anchoring of Report Controls (v20.2)

You’ll be able to use the XRControl.AnchorHorizontal property to anchor report controls when changing a report’s page settings (like orientation, paper kind and margins in Print Preview). The controls will be anchored to the specified side of a parent container.

Anchoring in Print Preview

New Barcode – Pharmacode Symbology (v20.2)

This feature received 27% of the vote in our survey.

Our XRBarCode report control will support the Pharmacode symbology.

MongoDb Data Source (v20.2)

This feature received 36% of the vote in our survey.

You’ll be able to bind a report to the MongoDb database.

Other Enhancements

You can expect additional enhancements across our WebForms controls and MVC extensions. We will blog about these minor enhancements as we get closer to release. 

Xamarin.Forms - 2020 Roadmap

$
0
0

First and foremost – thank you for your feedback and for helping us finalize our 2020 Xamarin.Forms Roadmap. We appreciate your continued support and for considering DevExpress Xamarin.Forms controls for your next mobile project.

Should you have any questions about our 2020 Xamarin.Forms Roadmap, please post your comments below.

New Xamarin.Forms Components

We will release the following new Xamarin.Forms UI controls in 2020:

Data Editors

  • Text Edit (20.1)
  • MultiLine Edit (20.1)
  • Password Edit (20.1)
  • Check Box (20.1)
  • Button (20.1)
  • Auto Complete (20.2)
  • Chips (20.2)
  • Combo Box (20.2)

Data Forms (20.1)

Data Form Preview

Dialogs (20.2)

Dialogs Preview
Dialogs Preview

List View (20.2)

List View Preview

Card View (20.2)

Card View Preview

Xamarin.Forms Charts Enhancements

New Series Types (Range Bar and Range Area) (20.1)

Range Area Series Preview
Range Bar Series Preview

Free Axis Layout (20.1)

We will deliver an advanced axis layout mode in our first release of 2020. This feature will make it possible to specify custom positions for axes inside the chart’s diagram.

Logarithmic Axis (20.1)

Logarithmic Axis Preview

Series Point Colorizer (20.2)

We will allow you to colorize Series points based on user data.

Colorizer Preview

Xamarin.Forms Data Grid Enhancements

Advanced Cell Layout (20.1)

We will ship a new row layout mode in our first release of 2020. This new layout mode will be optimized for visual element rendering when using lots of grid cells.

Advanced Cell Layout Preview

Full Cell Appearance Customization (20.1)

This feature will allow you to directly customize cell appearance without defining Date Templates (it will also improve the performance and responsiveness of your mobile apps).

Row Drag and Drop (20.1)

Drag and Drop Preview

 

Once again, should you have any questions on our 2020 Xamarin.Forms Roadmap, please comment below. We’ll be happy to follow up.

The information contained within this blog post 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 on or use this information to help make a purchase decision about Developer Express Inc products.

DevExtreme (Angular, React, Vue, jQuery) - 2020 Roadmap

$
0
0
First and foremost – our thanks to everyone who reviewed our preliminary DevExtreme 2020 Roadmap last year. Your feedback helped us refine our development plans and to finalize our 2020 Roadmap.

Should you have any questions about our 2020 Roadmap or if you’d like to discuss your development needs further, please post a comment below. We’ll be happy to follow up.

Important Note: The features listed below should be available for Angular, React, Vue, and jQuery simultaneously. Exceptions are highlighted.

Official Product Release Schedule

We released community tech previews of several major components in 2019. We expect to officially ship the following products in 2020. 

DevExtreme Gantt Control for Angular, React, Vue and jQuery (v20.1)

We will officially release DevExtreme Gantt in our first major release of 2020 (v20.1). DevExtreme Gantt will ship with the following new features: 
  • Localization support
  • New toolbar with commands to edit default items and add custom items
  • New Current Time Marker to indicate current date and time
  • Data validation support
  • Custom task color support
  • Touch device support
In our second release of 2020 (v20.2) we’ll add the following capabilities to our Gantt Control for Angular, React, Vue, and jQuery:
  • Export the Gantt content to PDF, PNG, etc.
  • Template support (Gantt chart tasks)
  • Context menu customization
  • Task Detail dialog customization.

    DevExtreme Diagram for Angular, React, Vue and jQuery (v20.1-v20.2)


     We will officially release DevExtreme Diagram in 2020. v20.1 will include the following features:
    • Performance enhancements
    • Custom shape templates
    • New UI that offers additional workspace for a document. This should improve user experiences on mobile and tablet devices.
    • Dash, dot, and other types of lines for shapes and connectors
    • Support for touch devices
    v20.2 will include the following new features:
    • Toolbar and context menu customization
    • New API to refresh Diagram document when a data model is changed outside the component
    • Text validation in shapes and connectors
    • Automatically resize shapes based on text content
    • New API to restrict end-user operations such as shape resizing, dragging, adding or removing shapes, dragging shapes out of container, etc.
    • Shape rotation support

      DevExtreme File Manager for Angular, React, Vue and jQuery (v20.1)

      Our first release of 2020 (v20.1), will include a production version of the JavaScript File Manager component for Angular, React, Vue and jQuery. It will include the following new features:
      • Upload and download files via our ArrayFileProvider
      • Declarative column customization using component options
      • New API to manage file and directory selection and control end-user actions on UI elements
      • Intuitive file management error handling support
      • Notification and Progress panel UX enhancements
      • Item hover and selection within the thumbnail view
      • Touch device support enhancements

        DevExtreme Architectural Enhancements

        For the last couple of years, we worked to extend our product line’s features and delivered multiple new products to address a broad range of usage scenarios. Throughout next year, we will dedicate significant resources to evolve existing capabilities and improve our product line’s architecture:

        Reduce JS/CSS Bundle Sizes (v20.2)

        Smaller production bundles (or code chunks) offer the following benefits:
        • Less time to compile application source code.
        • Less time to deploy applications to hosting servers.
        • Less time to deliver apps to end-user web browsers (better UX).

        SCSS Support 

        We will migrate existing DevExtreme LESS styles to the more modern SCSS format and make them available to everybody. You will be able to integrate DevExtreme SCSS styles into your application build process. This will allow you to precisely customize CSS styles and minimize resulting CSS bundles. The SCSS team recently announced a new-generation module system. We plan to fully support this new system. 

        Improved Code Splitting

        Code Splitting allows web developers to group application code into multiple small bundles and reduce initial load time. To help maximize its benefits, we hope to organize DevExtreme into smaller/functionality specific modules (for instance, we want to give you the option to use a read-only Data Grid without bundling any of its data editing features).

        Efficient Tree Shaking

        Tree shaking is the process of removing unused code during the bundling process. We plan to refactor our codebase to allow JS bundling tools to tree-shake DevExtreme products more efficiently.

        Improved Responsiveness/Adaptivity (v20.1-v20.2)

        We will create and publish a fully responsive real-world DevExtreme application built from ground up. We want it to look and work perfectly on any screen – from wide desktops and tablets to mobile phones. Adaptability enhancements can be applied to many components from Toolbars and Menus to our DevExtreme Scheduler and DataGrid. 

        DevExtreme DataGrid/TreeList

        New Export to Excel API (v20.1)

        Export to Excel will be made more flexible and robust approach via the ExcelJS library.
        Our new export capabilities will give you granular control over the Excel file generation process. We’ll do our best to make the migration process as smooth as possible. For a limited time, both options (old and new) will work side by side.
        We expect to deliver the following features prior to official release:
        • Introduce transparent (WYSIWYG) export of our DataGrid’s column format.
        • Export the DataGrid’s filter configuration as Excel worksheet column filters.
        • Fully document our new export to Excel API.
        • Demonstrate popular usage scenarios via technical demos.

        Remote Validation Support (v20.1)

        We’ll extend Asynchronous Validation Rule support in DataGrid/TreeList cells in row and batch editing modes.

        API Enhancements (v20.1-v20.2)

        We plan to improve the design-time experience of both our DataGrid and TreeList when using MVVM-like reactive frameworks such as React, Vue, and Angular. You’ll be able to work with the component state via bindings/properties rather than via instance methods. For instance, you’ll be able to bind expanded detail row IDs in the markup instead of calling the ‘expandRow’ and ’collapseRow’ methods.
        We will allow you to track and control the following DataGrid and TreeList states:
        • Expanded group rows
        • Expanded master-detail rows
        • Expanded adaptive rows
        • DataSource properties (items, totalCount, summary)
        • Load panel visibility
        • Validation state (invalid cells, error text and position)
        In addition, we plan to introduce the following API enhancements:
        • Add new editing-related ‘saving’ and ‘cancel’ events
        • Allow you to manipulate DataGrid/TreeList data without using a CustomStore

        DevExtreme PivotGrid

        New Export to Excel API (v20.2)

        We received a lot of positive feedback about the new Export to Excel API mentioned in the DataGrid section above and expect to extend it to DevExtreme PivotGrid in 2020.

        UI Components

        Editors & Form Layout

        Label Animations (v20.1)

        According to Material Design Guidelines, editor placeholder text can turn into a label once the editor obtains focus. We plan to support this feature.

        DevExtreme HTML/Markdown Editor

        Table Support (v20.2 or later)

        DevExtreme HTML/Markdown Editor (CTP) core is based on the open-source implementation known as Quill. Quill 2.0 was expected in 2019 and was purported to offer a new API with table support. Unfortunately, Quill 2.0 has yet to be released. Since we consider table support as a must-have feature, we can’t ship RTM before we find a way to implement tables. If Quill 2.0 is not released or we can’t deliver this capability with Quill 1.x, this feature may not be released in 2020.

        Upload Images via a Form, Drag-and-Drop, and Copy/Paste (v20.2 or later)

        Though we were unable to deliver this feature in 2019, we have prepared a custom solution you can use today. We expect to integrate this feature once we resolve the table support issue mentioned earlier.

        DevExteme Scheduler

        Hour Values within the Recurrence Form (v20.1)

        We will allow users to specify the ‘hour’ portion of a recurrence pattern within the DevExtreme Scheduler Recurrence Form.

        Sticky Group/Resource Names (v20.1)

        When scrolling a very wide or a very high group, names can exceed visible boundaries. With our new implementation, sticky names can remain visible during scroll operations.

        Virtual Scrolling (v20.2)

        To help improve overall performance and usability, we will add a new virtual scrolling mode to our Scheduler component. When enabled, only visible appointments will be rendered.

        Data Visualization

        Annotations in Maps, Pie and Polar Charts (v20.1)

        We recently introduced chart annotations. We plan to extend this capability to Maps, Pie and Polar Charts.

        Custom Position of Chart Axes (v20.1)

        We planned to release this feature in 19.2 but failed to do so. Please, refer to our discussion page for more information.

        Additional Customization Options (v20.2)

        We’ll allow you to use templates to render images (or other custom content) within chart axis labels.

        Application Templates

        Authentication UI Templates (Angular, React, Vue) (v20.1-v20.2)

        We want to extend our existing Login Form template with a new Sign Up, Reset/Change Password form template. We will also implement corresponding client-side user workflows so you can integrate our forms with your backend authentication API.

        Native React Components

        Native React Grid

        Export to Excel (v20.1)

        Export the contents of the DevExtreme React Grid to Excel (including options to configure formatting).

        Row Reordering (v20.1)

        We’ll create a plugin that allows a user to alter record order via drag-and-drop.

        Popup Editing (v20.1)

        We’ll allow users to edit a grid record in a separate popup form.

        Detail Editing (v20.1)

        Your users will be able to edit records within an inline detail form.

        Keyboard Navigation (v20.2)

        We’ll allow your users to navigate through Grid cells via the keyboard.

        Batch Editing (v20.2)

        A user will be able to edit, create or delete multiple records and then save or cancel changes in a single batch operation.

        Native React Scheduler

        Resources & Grouping (v20.1)

        Assign resources to appointments and visualize appointments grouped by resources.

        Compact Appointment View (v20.2)

        We’ll allow you to group multiple appointments into a single item if space is limited (if we are unable to display all appointments simultaneously).

        Timeline View (v20.2)

        We will introduce a new type of view to display schedule timelines. You can find an example of a timeline here.

        The information contained within this blog post 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 on or use this information to help make a purchase decision about Developer Express Inc products.

        Blazor UI - 2020 Roadmap

        $
        0
        0

        In this post, I’ll summarize our Blazor UI release plans for the first half of 2020. Should you have any questions about the products/features listed herein, feel free to submit your comments/questions below.

        As always, thank you for your continued support. Go Blazor!

        Localization (available in 19.2 Beta)

        You will be able to localize Blazor components (Blazor Server or Blazor WebAssembly) using predefined translations. You can create custom translations for your app via the DevExpress Localization Service.

        DevExpress Blazor Localization

        New Components

        Reporting Components

        Last December, we detailed how you can use our reporting tools within your blazor apps. By mid-year, we'll introduce new Blazor Reporting components which will provide better integration to help you create and manage reports.

        File Manager

        We're creating a new Blazor File Manager component to manage remote file system using standard file management operations.

        Upload

        Upload files to your server or a remote service. Our Blazor Upload component will ship with asynchronous multiple file upload, large file upload, and file extension validation support.

        Toolbar

        Our upcoming toolbar component will allow you to create useful tool buttons for popular end-user actions.

        TagBox

        The Tag Box control will allow your users to select values from a drop-down list or to enter them manually.

        Button

        Our Blazor Button component will support Contained, Outline, and Text render styles. It will ship with ten Bootstrap styles. You’ll also be able to assign icons or use a template to create a fully customized appearance.

        Data Grid

        Asynchronous Data-Aware Operations (available in 19.2 Beta)

        This new API will allow you to execute database operations and await completion without blocking app code execution. Asynch data-aware operations will help you deliver more responsive solutions - even when connected to remote databases over slow networks.

        Custom Data Binding (available in 19.2 Beta)

        You'll be able to bind our Blazor Data Grid to a custom data source, including Web API services.

        CheckBox Column (available in 19.2 Beta)

        Our new Blazor CheckBox column will allow you to display Boolean values within the Blazor Data Grid.

        Page Size Selector

        Your end-users will be able to change data page size for the Data Grid using a drop-down UI element on the pager.

        DevExpress Blazor Data Grid

        Go To Page

        End-users will be able to open a specific data page using the "Go To Page" edit box (displayed within the Data Grid's pager).

        Keyboard Support

        This feature will allow your end-users to navigate Data Grid rows via the keyboard.

        New Header Filter menu

        End users will be able to filter data by selecting a corresponding item in the Header Filter menu. You will be able to add custom items to the Header Filter menu as needed.

        New Binary Image column

        The Binary Column will allow you to display image data. You can bind this column to a property that contains images. To replace an image, the end-user should start row editing and upload a new image using the default Upload component available within the edit form.

        New Unbound column

        You will be able to use unbound columns to calculate column values based on custom algorithms (after retrieving data from the database).

        Inline Edit Mode

        Inline Edit mode will allow you to directly edit an individual row without displaying the Grid’s edit form.

        Row Template

        Row templates will allow you to create custom layouts for Data Grid rows.

        Automatically Resize to 100% Height

        When set to 100%, our Blazor Data Grid will automatically fill available height within the container element.

        Built-In Edit Forms validation

        If you use an edit form with default column editors, you no longer need to use the Blazor’s built-in validation. Our Blazor Data Grid will validate data automatically.

        Custom Values in New Rows

        At present, our Blazor Data Grid displays default values in new row cells. We will give you the ability to set custom values for new rows.

        Search Panel

        This UI element is useful when an end-user needs to search a specific value by several columns at the same time.Specific columns can be programmatically excluded from the user search.

        Toolbar

        This UI element will allow you to display toolbar buttons for custom operations and also popular operations used by your end-users.

        Context Menu

        The context menu displays popular user actions based on the user interaction, for example, a mouse click or finger tap on a UI element. You can hide default items or add custom ones to the popup menu.

        ComboBox

        Multiple Columns

        The highly requested multi-column layout feature will be available for our Blazor ComboBox in the next major release.

        Filtering Across Columns

        This feature will allow you to find items by a specific value:

        DevExpress Blazor ComboBox Filter

        Templates

        You'll be able to create custom appearances for ComboBox elements using item, header or footer templates.

        Drop-Down Position Correction

        When a ComboBox is located at the bottom of a web page, the component’s drop-down window might partially appear outside of the page. We plan to correct the window’s position automatically to always display within the available page space.

        Calendar

        Gestures

        A new gesture will allow you to change months by swiping the current month in our Calendar.

        Month and Year Navigation

        Your end-user will be able to quickly navigate between months and/or years to find a specific date.

        Common Editor Enhancements

        Interactive Null Text (available in 19.2 Beta)

        Many of you use null text to display an editor's placeholder. However, it disappears once the component has focus. We are going to keep null text visible until the user enters values.

        Loading Image

        If ComboBox or List Box is bound to a large data set, data loading operation may take some time. We plan to display a loading image for these editors to indicate the loading process.

        Discover Blazor at Newcastle Coders Group

        $
        0
        0

        This coming Wednesday, February 5th, I'll be presenting on Microsoft's latest offerings: Blazor at the Newcastle Coders Group. Come along to learn about implementing Blazor in your next project, the differences between server and client side, how to add our reporting engine as well as the DevExpress components for this exciting new platform. 

        We are proud to sponsor this event and will be providing the pizza and refreshments. DevExpress MVP Daryn Kitchener will also be joining me to answer all questions related to our components.

        Please register for the event on Meetup here. As always, a fast paced, fun filled session that is sure to invoke some interesting discussions.


        Discover Blazor at Newcastle Coders Group

        $
        0
        0
        This coming Wednesday, February 5th, I'll be presenting on Microsoft's latest offerings: Blazor at the Newcastle Coders Group. Come along to learn about implementing Blazor in your next project, the differences between server and client side, how to add our reporting engine as well as the DevExpress components for this exciting new platform.

        We are proud to sponsor this event and will be providing the pizza and refreshments. DevExpress MVP Daryn Kitchener will also be joining me to answer all questions related to our components.

        Please register for the event on Meetup here. As always, a fast paced, fun filled session that is sure to invoke some interesting discussions.

        VCL Controls - 2020 Roadmap

        $
        0
        0

        Based on survey results and Support Center feedback, we’ve finalized our 2020 VCL Roadmap. We want to thank you for your continued support and for your insightful comments.

        As you can see below, the majority of the DevExpress VCL community asked us to invest R&D resources on existing UI components.

        VCL Survey Results:

        • I would like you to work on a standalone Chart Control instead of adding more features to existing VCL controls - 26.6%
        • Please focus on improving existing controls - 61.4%
        • I want you to focus on other areas - 12%

        If you have any issues with our VCL Roadmap or have questions about our long-term R&D objectives, feel free to post your comments below. We will be happy to follow up.

        New Features/Capabilities We Will Release in 2020

        ExpressQuantumGrid Suite

        Performance Enhancements

        • Distribute calculations to threads
        • Optimize calculation algorithms

        Custom layout for data rows (T845963)

        Custom layout for data rows


        Popup Edit Form (T124704)

        Popup Edit Form


        Search and Group Panel Integration (T845991)

        Search and Group Panel Integration


        Filtering Enhancements

        • Ability to compare values in two fields (B1086)

          Field to field compare


        • Ability to compare a field value to an expression's result (T845993)

          Field to expression compare


        • Implement Breadcrumb Style UX for the Filter Panel (T846166)

          FilterBox Tokens

        New Gantt Control

        We expect to officially release a new VCL Gantt Control.

        New Gantt Control

        ExpressSkins Library

        New Office 2019 Skins

        New Office 2019 Skins


        New Basic Skin

        New Basic Skin

        ExpressPDFViewer Enhancements

        • Ability to sign PDF files (T416311)
        • Add support for PDF interactive form data import and export (T845924)
        • Ability to manage pages in a PDF document and save changes (T408004)
        • Ability to edit interactive forms in a PDF document (T408315)
        • Ability to view documents in one-column mode (T690500)
        • Reduce memory consumption when a user actively navigates through a PDF document (T467673)
        • Ability to forbid select and copy operations in a PDF document (T756015)

        ExpressRichEdit Control Enhancements

        • Implement a non-visual component that processes rich text documents (T375226)
        • Ability to use IME as an embedded editor (T353641)
        • Ability to load and save documents with shapes based on different geometry patterns (T320518)
        • Add support for paragraph borders (T531568)

        ExpressLibrary Enhancements

        • Add support for smooth content scrolling with animation (T623629)
        • FormattedLabel enhancements:
          • Rotate text
          • Insert inline images
          • Bulleted and numbered lists
          • Display rich text formatted content in column/row headers
          • Display rich text formatted content in layout element captions
        • Add support for Fluent Design System (T846060)
        • Implement a control that replicates the DevExpress WinForms Flyout Panel (T207259)
        • Implement basic draw routines with support for DirectX rendering (for example as in T724576 ticket)
        • Update UI of all controls based upon Section 508 accessibility guidelines (AS11009)
        • TdxCloudStorage - Add support for Dropbox (T697922)

        ExpressPivotGrid Suite Enhancements

        • Performance Enhancements
          • Implement multi-threaded algorithms to improve performance of summary calculations (T189818)
          • Optimize table layout calculation routines
        • Add a new 'count unique values' summary type (S90560)
        • Implement the TotalForSingleValues property for separate fields (Q404402)
        • Give end-users the ability to change summary type via a context menu (T845998)
        • Allow end-users to customize group options via a context menu (T845972)
        • New group options for date-time fields (T846012)
        • Export data to Excel with the ability to repeat group values in each expanded row/column (T325668)
        • Extend the ApplyBestFit method with the ability to size each column individually (CS56271)

        As always, we welcome your feedback. Feel free to leave a comment and let us know what you think of our 2020 VCL Roadmap.

        The information contained within this blog post 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 on or use this information to help make a purchase decision about Developer Express Inc products.

        ASP.NET Core - 2020 Roadmap

        $
        0
        0
         
        Our thanks to everyone who reviewed our preliminary ASP.NET Core 2020 Roadmap last year. Your feedback helped us refine our development plans and to finalize our 2020 Roadmap.

        Should you have any questions about our 2020 Roadmap or if you’d like to discuss your development needs further, please post a comment below. We’ll be happy to follow up.

        Visual Studio Integration (v20.1-v20.2)

        Our new scaffolding wizard will help you generate API Controllers from eXpress Persistent Objects (XPO) models.

        We will release existing DevExtreme-based project templates with a new unified wizard. This new wizard will allow you to select.NET Core version, View type (MVC or Razor Pages), project layout (Material or Bootstrap), and a few more options.

        Official Product Release Schedule

        In 2019, we introduced and released community tech previews (CTPs) of several major components. In 2020, we expect to officially ship the following products:

        Gantt

        We will officially release ASP.NET Core Gantt in our first major release of 2020 (v20.1) with the following new features: 
        • Localization support
        • New toolbar with commands to edit default items and add custom items
        • New Current Time Marker to indicate current date and time
        • Data validation support
        • Custom task color support
        • Touch device support
        In our second major release of 2020 (v20.2), we plan to add the following enhancements to our ASP.NET Core Gantt control:
        • Export the Gantt content to PDF, PNG, etc.
        • Template support (Gantt chart tasks)
        • Context menu customization
        • Task Detail dialog customization.

        Diagram

        The Diagram for ASP.NET Core will be available in the v20.1 release and include the following features:
        • Performance enhancements
        • Custom shape templates
        • New UI that offers additional workspace for a document. This should improve user experiences on mobile and tablet devices.
        • Dash, dot, and other types of lines for shapes and connectors
        • Support for touch devices
        v20.2 will introduce the following new features:
        • Toolbar and context menu customization
        • New API to refresh Diagram document when a data model is changed outside the component
        • Text validation in shapes and connectors
        • Automatically resize shapes based on text content
        • New API to restrict end-user operations such as shape resizing, dragging, adding or removing shapes, dragging shapes out of container, etc.
        • Shape rotation support

        File Manager

        Our first release of 2020 (v20.1), will include a production version of the ASP.NET Core File Manager. It will include the following new features:
        • Upload and download files via our ArrayFileProvider
        • Declarative column customization using component options
        • New API to manage file and directory selection and control end-user actions on UI elements
        • Intuitive file management error handling support
        • Notification and Progress panel UX enhancements
        • Item hover and selection within the thumbnail view
        • Touch device support enhancements

        Improved Responsiveness/Adaptivity (v20.2 or later)

        To help you leverage the responsive capabilities of many of our ASP.NET Core controls, we're working on creating a fully responsive real-world application. We're building it from scratch with modern approaches to responsive and adaptive design. Our goal is to have it look and work perfectly on any screen - from wide desktops and tablets to mobile phones. Adaptability enhancements are supported by many of our components from Toolbars and Menus to our Scheduler and DataGrid for ASP.NET Core. 

        DataGrid/TreeList

        New Export to Excel API (v20.1)

        We plan to enhance the Export to Excel feature by leveraging the ExcelJS library which provides more flexibility and robustness.
        The new export capabilities will give you granular control when exporting Excel files. To make the migration process smooth between versions, we'll offer both options (old and new) side-by-side for a limited time.

        We expect to deliver the following features prior to official release:

        • Introduce transparent (WYSIWYG) export of our DataGrid’s column format.
        • Export the DataGrid’s filter configuration as Excel worksheet column filters.
        • Fully document our new export to Excel API.
        • Demonstrate popular usage scenarios via technical demos.

        Remote Validation Support

        We will extend the support for Asynchronous Validation Rule in DataGrid/TreeList cells for the row and batch editing modes.

        API Enhancements

        We plan to improve the design-time experience of both our DataGrid and TreeList when using MVVM-like reactive frameworks such as React, Vue, and Angular. You’ll be able to work with the component state via bindings/properties rather than via instance methods. For instance, you’ll be able to bind expanded detail row IDs in the markup instead of calling the ‘expandRow’ and ’collapseRow’ methods.
        We will allow you to track and control the following DataGrid and TreeList states:
        • Expanded group rows
        • Expanded master-detail rows
        • Expanded adaptive rows
        • DataSource properties (items, totalCount, summary)
        • Load panel visibility
        • Validation state (invalid cells, error text and position)
        In addition, we plan to introduce the following API enhancements:
        • Add new editing-related ‘saving’ and ‘cancel’ events
        • Allow you to manipulate DataGrid/TreeList data without using a CustomStore

        PivotGrid

        New Export to Excel API (v20.2)

        We received a lot of positive feedback about the new Export to Excel API mentioned above in the DataGrid section and expect to extend it to PivotGrid in 2020.

        UI Components

        Editors & Form Layout

        Label Animations (v20.1)

        According to Material Design Guidelines, editor placeholder text can turn into a label once the editor obtains focus. We will add this feature to our editor controls.

        HTML/Markdown Editor

        Table Support (v20.2 or later)

        ASP.NET Core HTML/Markdown Editor (CTP) core is based on the open-source implementation known as Quill. Quill 2.0 was expected to ship in 2019 with a new API and with table support. Unfortunately, Quill 2.0 has not been released.

        Support for tables is an important feature and therefore, we cannot release a final version of our HTML/Markdown Editor until we find a way to implement tables. If Quill 2.0 is not released or we can’t deliver this capability with Quill 1.x, this feature may not be released in 2020.

        Upload Images via a Form, Drag-and-Drop, and Copy/Paste (v20.2 or later)

        Though we were unable to deliver this feature in 2019, we have prepared a custom solution you can use today. We expect to integrate this feature once we resolve the table support issue mentioned earlier.

        Scheduler

        Hour Values within the Recurrence Form (v20.1)

        Your end-users will be able to specify the ‘hour’ portion of a recurring appointment:

        Sticky Group/Resource Names (v20.1)

        When scrolling a wide or high group, names can exceed visible boundaries. We'll enhance this with our new implementation where sticky names will remain visible during scroll operations.

        Virtual Scrolling (v20.2)

        To help improve overall performance and usability, we will add a new virtual scrolling mode to our Scheduler component. When enabled, only visible appointments will be rendered.

        Data Visualization

        Annotations in Maps, Pie and Polar Charts

        We plan to introduce the recent chart annotations feature for Maps, Pie, and Polar Charts.

        Custom Position of Chart Axes

        Chart axes are always rendered on the edges of a chart which impairs its readability. To solve this, we are going to give the chart axes the capability to intersect at any value. Please, refer to our discussion page for more information.

        Additional Customization Options

        We're adding templates to help you render images (or other custom content) within chart axis labels.
        The information contained within this blog post 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 on or use this information to help make a purchase decision about Developer Express Inc products.
         

        ASP.NET Core - New Syntax To Fix Razor Issue

        $
        0
        0

        In this post, I'll explain a recent issue, our proposed fix, and what you need to know if you use our ASP.NET Core controls in .NET Core 3.x apps.

        The Issue

        We discovered an issue in ASP.NET Core's Razor engine which affects the client-side template syntax used by our DevExtreme-based ASP.NET Core Controls:

        The Razor view engine can truncate parts of ERB-style constructs also known as 'percent tags' (<%= value %>) which will in turn affect your client-side templates. To see a code example of this issue and it's effects, please take a look at this GitHub issue.

        To make matters worse, at runtime, the output is empty and there are no errors in the browser console.

        While Microsoft does not have a quick fix scheduled for this issue, we've got a fix ready and I'd like to get your feedback.

        Our Fix

        We have limited options in how we can fix this issue because the problem lies in the ASP.NET framework's Razor engine. However, we've come up with a simple and useful workaround.

        We now provide an alternate syntax for client-side templates. Instead of using angle brackets (<% %>), you can use square brackets [% %] as template delimiters:

        [% if(value > 0) { %]
          <div>[%= value %]</div>
        [% } else { %]
          <div>(none)</div>
        [% } %]
        

        The new syntax is already available in our recently released maintenance updates 19.1.8 and 19.2.4. We've updated our documentation as well.

        If this issue is important to you, then let Microsoft know and please vote here.

        Should you have any questions about our new syntax or if you’d like to discuss your development needs further, please post a comment below. We’ll be happy to follow up.

        DevExtreme - React Grid - Group Row Summaries (v19.2)

        $
        0
        0

        The most recent version of DevExtreme React Grid allows you to display group row summaries directly inside the group row. Users need not expand the row to view this information.

        To configure a summary item that is displayed in a group row, set the property showInGroupFooter on the GroupSummaryItem to false. You can also set alignByColumn to true if you want the value to appear in the column the summary relates to. Group Summary Items are configured using the groupItems property of the SummaryState plugin.

        Here is a sample setup:

        Group Row Summaries

        The group summaries in the image are configured like this:

        const groupSummaryItems = [
          {
            columnName: 'units',
            type: 'sum',
            showInGroupFooter: false,
            alignByColumn: true
          },
          {
            columnName: 'amount',
            type: 'max',
            showInGroupFooter: false,
            alignByColumn: true
          },
          { columnName: 'amount', type: 'sum', showInGroupFooter: false }
        ];
        

        The example combines summaries displayed in their respective colums with the sum calculated for the amount column, which is displayed as part of the main group header. Please click here for the summary row documentation, which includes the same sample extended with some additional summaries.

        Custom Appearance

        The TableGroupRow plugin supports four components you can override to control the appearance of summary elements in group rows. For summaries inside the main group header, use inlineSummaryComponent and inlineSummaryItemComponent. If you display summaries aligned to columns, the relevant components are summaryCellComponent and summaryItemComponent.

        Custom Group Row Summaries

        Let Us Know What You Think

        Please feel free to comment below, or follow this link to our GitHub repository, where you can take part in discussions or submit issues. Your feedback is always appreciated.

        WPF Utility Controls - New Badge Control (v19.2)

        $
        0
        0
        Our v19.2 release includes a new Badge control. With its API, you can display a badge over any control or UI element, be it a data grid column or a Toolbar\Ribbon item. In addition to standard WPF properties, our Badge control ships with numerous customization options.

        Shape

        The Badge API includes a predefined shape set. You can use predefined shapes without modification or customize a shape via the CornerRadius property: WPF Badges - Shapes

        Color

        The Badge API also includes a Badge.BadgeKind property. Each BadgeKind ships with a predefined color value.

        WPF Badges - BadgeKind

        Color values can vary based on the DevExpress Theme used in an application.

        WPF Badges - Theme Colors

        You can specify custom Badge colors via Badge.Background, Badge.BorderBrush, and Badge.Foreground:

        WPF Badges - Color Properties

        Position

        A Badge’s default position is over the top-right corner of the parent UI element, but you can customize its horizontal\vertical alignment and anchor as needed.

        WPF Badges - Position

        When you display a Badge over a BarItem with a glyph, the Badge is displayed over the glyph:

        WPF Badges - BarItem Badge

        Content Format

        You can use ContentStringFormat and ContentFormatProvider to format Badge Content when it is displayed as a string:

        WPF Badges - Content Format

        Useful Resources

        Your Feedback Matters

        We’d love to hear your thoughts on our new WPF Badge control. Are there any additional features you’d like to see us add in the future? Feel free to comment below and share your experiences with the entire DevExpress community.

        XAF - User Authentication and Group Authorization API in .NET Core Apps: Blazor Server, Web API/OData v4 and More (powered by XPO)

        $
        0
        0

        Our recent enhancements to user authentication and group authorization demos include the following:  

        • .NET Core 3.0+ versions of WinForms, ASP.NET Core MVC, Web API/OData v4 + DevExtreme apps.
        • New non-XAF Blazor Server demo and tutorial based on DevExpress Blazor components and XAF's security system APIs.
        • New extension methods CanXXX for the SecurityStrategy class (where XXX is Read, Write, Create, Delete, Navigate) that replace complicated IsGranted calls with many parameters.

          //BEFORE
          SecuritySystem.IsGranted(
              new PermissionRequest(ObjectSpace, typeof(DemoTask), 
                 SecurityOperations.Write, selectedObject, nameof(DemoTask.Status)
              )
          );
          
          //AFTER:
          security.CanWrite(selectedObject, nameof(DemoTask.Status));
          We simplified XAF and non-XAF demo code and help topics accordingly. XAF WinForms and WebForms developers will benefit from these usability enhancements as well. For more examples, see our MainDemo v19.2.6 ("c:\Users\Public\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo\CS\MainDemo.Module\Controllers\TaskActionsController.cs").
        • New extension methods CanXXXByUser and CanXXXByRole for the SecurityStrategy class. These extension methods help query access rights for required user and role objects even if you are not logged in under them within a secured application. Use cases include custom UI or diagnostic tools designed to display effective permissions for certain users (T413260, T826065, T552175). More documentation and code examples are coming soon.

        Please Help Us Decide on Xamarin, Blazor WebAssembly, WPF and ASP.NET MVC 5 Demo Apps

        Based on user surveys and blog comments, interest for highlighted platforms was not very high. Also, many users wanted to see WinForms and ASP.NET Core examples with OAuth2 - using Microsoft Office 365, Azure Active Directory or Google authentication providers (we currently display a simple Forms authentication with a login and password).

        Please leave comments about the most desired platforms and use-case scenarios with our authentication and group authorization APIs. Even if you are not using XAF yet, we would love to hear from you about problematic or costly tasks associated with other security libraries such as Identity Server or ASP.NET Core. Thank you for your continued support!

        Recent Feedback

        I wanted to share a testimonial from David Desidera, Solution Architect at SpecTect, who successfully integrated XAF's security system APIs with a legacy WinForms app:

        David Desidera, Solution Architect at SpecTect More than one year ago I explained to my collaborators that - in my opinion - it was possible to integrate XAF's security layer with UI interface into an existing WinForms enterprise application that was 10 years old. We successfully implemented it! It took 40 man-days of job in total instead of at least 400 if I had decided to start from scratch. You guys saved my life!!

        If you are using XAF's security system APIs or simply evaluating it at present time, please share your experience below.


        Carl Franklin’s Blazor Roadshow is just around the corner

        $
        0
        0

        …and probably around a street corner near you! Yes, we at DevExpress are crossing the final T’s and dotting the final I’s with Carl: the US Blazor Roadshow is starting next Monday, February 10, in Burlington, MA. Carl is doing 21 presentations in various cities in the US, aided and abetted (and sponsored) by DevExpress, over the next 7 weeks. Next Tuesday is New York, Wednesday is Philadelphia, Thursday is Washington, so we certainly have our travel cut out for us!

        We had the opportunity to watch a couple of his sessions on Blazor at NDC London last week, and, let me tell you, you are going to learn a lot. All of it practical information about using Blazor in your web applications. Best practices, authentication, consuming generic components, how to call JavaScript, server vs client: the topics he’ll discuss and illustrate in code are almost endless.

        My advice is to register as soon as possible for these presentations, it’ll be well worth it. To register and for details on where/how to attend, please visit the Roadshow website. Seating is limited and is going fast, so make sure to reserve your seat today.

        DevExpress Dashboard – Rich Text Editor

        $
        0
        0

        As you may already know, our Web Dashboard now allows you to use the DevExpress Rich Text Editor to modify rich text directly within its Text Box item:

        You can enable this functionality within your Web Dashboard by installing the appropriate Rich Text Editor scripts. To learn more about install requirements, please refer to the following help topic:

        Once you’ve installed the scripts, you can enable the Rich Text Editor within the Text Box item’s Options menu:


        The DevExpress Rich Text Editor includes the following features/capabilities:

        • Text formatting
        • Tables support
        • Links
        • Images
        • Document import/export (docx, rtf, txt)
        • and more...

        You can bind the Web Dashboard’s Text Box to data and use these data items within the Editor to display values from a data source:


        Text Box Usage Scenarios

        The Text Box item below displays summarized bug report information. Key performance indicators also serve as a color legend for the Chart dashboard item:


        The Text Box below displays static text with a demo description:


        This Text Box item displays detailed information for a given product:


        Demo

        To experience the capabilities of our Web Dashboard and Text Box item, please refer to the following demos or help topics.

        Documentation

        Your Feedback Counts

        Should you have any questions about this feature, please post your comments below. We’ll be happy to follow up.

        NDC London Impressions

        $
        0
        0

        John, Julian and I travelled to the U.K. last week to exhibit at the NDC London conference. For me, it was one of my favorite flights from Rotterdam Airport to London City. The flight arrived 10 minutes ahead of scheduled arrival time so only 40 minutes!

        One of the major topics this time was Blazor and we had a lot of questions about it. Also the Blazor Roadshow with Carl Franklin was picked up allready and Carl and I discussed some interesting topics for the roadshow.

        As always, the barista-girls did an excellent job in providing a huge amount of handmade coffee drinks to the attendees.

        If you want to get an impression of NDC London, check the pictures:

        VCL - Tips & Tricks (January 2020)

        $
        0
        0

        We’ve compiled a short list of interesting VCL-related support tickets we answered in January and December. Hopefully, you’ll find them of value and can integrate our suggestions in your next Delphi projects.

        If you’d like to share a VCL-related support ticket with the DevExpress developer community, please feel free to a post a link below.

        ExpressQuantumGrid Suite

        ExpressNavBar

        ExpressScheduler Suite

        ExpressBars Suite

        ExpressQuantumTreeList Suite

        ExpressLayout Control

        ExpressSpreadSheet

        ExpressEditors Library

        Your Feedback Counts

        As always, we welcome your comments and feedback. If you’ve come across a useful Support Center ticket, feel free to share it with the DevExpress developer community here.

        How to Show Toast Notifications in WinForms Apps

        $
        0
        0

        Toast Notifications (or simply Toasts) are flat notifications first introduced in Microsoft Windows 8. They pop up in the bottom right corner of your screen and can be accessed through the Windows Action Center. With DevExpress controls, you can display such notifications using the ToastNotificationManager component. Launch the "Outlook Inspired App" demo and let it run for a while to see an example.

        You can choose from nine available notification templates, including the Windows 10 "Generic" template that allows you to show user interaction controls like buttons or editors.

        Application Shortcut

        ToastNotificationManager produces genuine Windows toasts, which means they function in the same way system notifications do: show up even if a related application is closed, can be accessed from the Action Center, have the same color scheme as the operating system, etc. To achieve this, we had to use native Windows API and follow all Microsoft guidelines and requirements. Including the application shortcut requirement.

        Now, this application shortcut requirement has proved to be puzzling to some customers. We have recently made a minor design-time improvement and added a new section to the component's documentation page to eliminate any confusion. And, of course, have written this post to ensure no one gets stuck with on this step anymore.

        According to the Toast Notifications Overview article by Microsoft, if your app has no shortcut in the Windows Start screen, it cannot show toasts.

        Since Start screen shortcuts are kept in the %AppData%\Microsoft\Windows\Start Menu\Programs folder, you can read this requirement as "to display toasts, add an application shortcut to this folder".

        Our component has the "Create Application Shortcut" link in the smart tag menu. After you click this link your app will be able to show notifications.

        What some developers are missing, is that the "Create Application Shortcut" command adds the shortcut to their Start screen. Your PC becomes the only machine capable of showing toasts because no one else's Start screen has a shortcut to your app. If you plan to show toasts to your clients, not just yourself, remember to program your application installer to add a shortcut with an AppUserModelID to the %AppData%\Microsoft\Windows\Start Menu\Programs folder.

        Using the installer to add a shortcut is the best solution, and it is safe to recommend it to everyone. However, if for some reason your app has no installer, there's an alternative way - the DevExpress.Data.ShellHelper.TryCreateShortcut method.

        using DevExpress.XtraBars.ToastNotifications;
        using DevExpress.Data;
        
        //if there's no app shortcut in the start screen, add it
        if (!ShellHelper.IsApplicationShortcutExist("My Test App")) {
            ShellHelper.TryCreateShortcut(
                applicationId: manager.ApplicationId,
                name: "My Test App");
            //restart the app
            Application.Restart();
        }

        This way to add app shortcuts is less reliable. First of all, your app may have no permission to write files into system folders. And secondly, you may have noticed the Application.Restart method in the code snippet above - if the application is already running, adding its shortcut to the Start screen will not enable toasts, you need to restart the entire app.

        Activator and COM Server

        Windows keeps toast notifications in its Action Center.

        Normally, Action Center clears all toasts after a user closes this screen (if a user opens, closes, and opens the Action Center again, it will be empty). Some toasts, however, are capable of staying in the Action Center until a user manually dismisses them. Such toasts remain in the Action Center even after a user logs out and back into Windows. Additionally, these toasts launch their parent applications when clicked. To display such notifications, create a custom Activator - a descendant of the DevExpress.XtraBars.ToastNotifications.ToastNotificationActivator class.

        [Guid("39697E4E-3543-4414-A694-90097B433DC6"), ComVisible(true)]
        public class ToastNotificationActivatorCustom : ToastNotificationActivator {
        
            public override void OnActivate(string arguments, Dictionary<string, string> data){
                //specify what happens when a user interacts with a toast
            }
        }

        You then need to register this custom Activator: set the component's ApplicationActivator property at design time or call the RegisterApplicationActivator method in code.

        toastNotificationsManager1.RegisterApplicationActivator(
        		typeof(ToastNotificationActivatorCustom));

        Finally, register a COM Server. To do this, call the DevExpress.Data.ShellHelper.RegisterComServer method. Note that if you use the ShellHelper class to create an application shortcut, you need to use a TryCreateShortcut method overload that takes the activatorType parameter. Otherwise, if you use the application installer to add the application shortcut, the installer must also add the HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{-your-GUID-here-}\LocalServer32 registry key with a path to application executable file as a value.

        if (!ShellHelper.IsApplicationShortcutExist("My Toast Application")
        {
            ShellHelper.TryCreateShortcut(
                 Process.GetCurrentProcess().MainModule.FileName,
                 toastNotificationsManager1.ApplicationId,
                 "My Toast Application",
                 @"D:\Work\Images\_Icons\ico\chain-icon.ico",
                 typeof(ToastNotificationActivatorCustom));
            ShellHelper.RegisterComServer(
                Process.GetCurrentProcess().MainModule.FileName,
                typeof(ToastNotificationActivatorCustom));
        }

        GUIDs

        When working with toasts, you will need several unique IDs.

        • For the component's ApplicationID property
        • For the ID property of every notification
        • For the Guid attribute that labels an Activator class

        You can mash a keyboard to generate a unique ID, but a more professional approach is to use any online GUID generator (for example, this one) or a generator embedded in Visual Studio ("Tools | Create GUID").

        Deliver Critical Notifications

        Even when you set up everything correctly, a notification can be not delivered to a user. There can be various reasons for that: an older OS version, turned off notifications in Action Center settings, internal errors, etc. In these emergency cases, you can handle the ToastNotificationsManager.Failed event to deliver critical messages to users with alternative methods. For instance, show a regular message box.

        using DevExpress.XtraBars.ToastNotifications;
        using DevExpress.XtraEditors;
        
        void manager_Failed(object sender, ToastNotificationFailedEventArgs e)
        {
            if ((string)e.NotificationID == "toast_connection_lost_id_das0ud0q94")
            {
                IToastNotificationProperties undeliveredToast =
                    toastNotificationsManager1.GetNotificationByID(e.NotificationID);
                XtraMessageBox.Show(undeliveredToast.Body, undeliveredToast.Header);
            }
        }
        Viewing all 2399 articles
        Browse latest View live