Quantcast
Channel: Developer Express Global
Viewing all 3388 articles
Browse latest View live

Blog Post: ASP.NET - New Responsive Project Template (v18.2)

$
0
0

As a web developer these days, it's difficult to plan for the many different screen sizes that your website can be viewed on. That's why a site that's optimized and responsive makes for a more pleasant end-user experience.

To help you meet the needs of a modern website, we've created a new responsive ASP.NET web application project template. As you know, a project application template helps you to get started quickly by giving you a fully working, if content-free, application.

Our new template provides several great features including:

  • Ready-made web application with DevExpress ASP.NET controls
  • Responsive design
  • Visual Studio integration
  • Easy-to-use wizard UI
  • Adaptive features of DevExpress ASP.NET Controls
  • DevExpress themed (CSS rules) for standard text content

It also looks great on various screens sizes whether desktop, tablet, or mobile:

DevExpress ASP.NET Responsive Project Template

Let's take a deeper look into the new project template's design, layout elements, and pages.

Mobile-First

When we sat down to design the new project template, we mainly focused on providing responsive features. So after researching support tickets and customer feedback, we found that most customers are working on complex desktop-oriented applications development. However, traffic from mobile devices is increasing daily. That is why we decided to use the "mobile first" approach for this template:

The mobile-first approach is exactly as it sounds: designing for the smallest screen and working your way up. It is one of the best strategies to create either a responsive or adaptive design. -UXPin

DevExpress ASP.NET Responsive Project Template

With a responsive layout and DevExpress ASP.NET controls' adaptive features, our new template provides full functionality for desktop and mobile browsers. This helps you to develop complex business web applications for nearly any screen size.

Check out the online demo:

QR code

Scan this QR Code above to experience the demo in your mobile browser.

Appearance/Theme

By default, our new template uses the DevExpress ASP.NET Office365 theme, however, you can choose a different base color and font. To make it even easier, we've also prepared a set of predefined base colors and a list of several font-families to use with our template. Set your own base color and font using the wizard:

DevExpress ASP.NET Responsive Project Template

Layout Elements

Now, let's discuss the four main layout elements. The template's home page leverages several DevExpress ASP.NET controls to help build these base UI elements:

  • Navigation Bar
  • Sidebars
  • Adaptive Toolbar
  • Sticky Footer

This setup allows our template to provide for adaptive layouts. Later, we'll look into the four main pages: GridView, Scheduler, Article, and SignIn/Register.

Let's start with the layout elements:

Navigation Bar

A navigation bar (navbar) is a fixed-height toolbar at the top of a page. This template uses a "sticky" navbar - this element "sticks" to the top of the page and does not move when end users scroll the page.

DevExpress ASP.NET Responsive Project Template

The navigation bar contains:

  • A hamburger button - collapses/expands a left sidebar
  • An image with the company's logo and title. Only the logo is displayed on mobile devices
  • A responsive menu that transforms into a button on devices with narrow screens. When this button is clicked, menu items are displayed in a popup window
  • A Sign In button that displays a popup window when clicked. The window displays the Sign In/Register buttons or the user's profile
  • An additional hamburger button that, when clicked, collapses/expands the right sidebar (shown only for the GridView page)

The main menu also collapses on small screens to provide for a better end-user experience.

Sidebars - Collapsible Panels

A sidebar is a collapsible panel that displays additional UI elements on the page's left or right side. In this template, the sidebars are automatically collapsed. End users can click the hamburger button to invoke a sidebar on a mobile device:

DevExpress ASP.NET Responsive Project Template

The Home, GridView, Scheduler, and Article pages include a left sidebar. The GridView page also includes a right sidebar.

Sticky Top Toolbar

The GridView and Scheduler pages include a toolbar under the navbar. Use this toolbar as a container for UI elements that should be attached to the top of the page.

The toolbar provides two adaptive modes:

  • the menu hides items' text and displays only icons
  • the menu hides its items, one-by-one, to the popup menu. This popup menu is hidden under the ellipse button when the browser width is changed

DevExpress ASP.NET Responsive Project Template

Sticky Footer

A fixed-height footer is pinned to the bottom of either the browser window or the content pages when it’s height is greater than the window.

Adaptive Page Layout - Content

For the content, we had a key decision to make. You see there are two general concepts of embedding content inside an adaptive page layout:

  1. Scrolling only a part of the page - the main content area can fit the special content area without overall page scrolling. When the browser window resizes, the content size is updated to fit the new area size. You can see this demonstrated for the Scheduler page in "Desktop" screen resolution: DevExpress ASP.NET Responsive Project Template

  2. Scrolling the whole page (with sticky elements) - the main content is still scrolled in the special content area. However, this is a more universal approach and can be used for several controls or text blocks placed one after another. For example, you can place a FormLayout, text blocks, grids, etc. When the special content area's height exceeds the screen height, then the page will display a vertical scroll bar (instead of only the special content area): DevExpress ASP.NET Responsive Project Template

These days, the second approach is widely used in many 'real-world' (aka production) applications. Therefore, we decided to use this approach with our new responsive template too. Except, of course, for scenarios like the Scheduler page, where it makes sense to use the first approach.

Readability

To improve readability, we used special margins for the content. The size of these margins will adapt based on the screen size and provide for a better reading experience.

We designed a set of CSS rules for control block elements (HTML div elements: <div class="text-content" ...> and <div class="control-area-block">) that can be used for text or content placement.

For example, here are the divs wrapping the FormLayout control:

<asp:Content ID="Content5" ContentPlaceHolderID="PageContent" runat="server"><div class="text-content" runat="server" id="TextContent"><h1 class="title">Multiple Controls</h1><h2>Some Control</h2><div class="control-area-block"><dx:ASPxFormLayout runat="server" ID="ASPxFormLayout" Width="100%" ClientInstanceName="FormLayout">
            ...</dx:ASPxFormLayout></div><h2>Some Text</h2>
            ...</div></asp:Content>

Content Pages

There are four pages in this demo. Two of these use our powerful controls: the GridView and Scheduler pages positioned inside an adaptive layout.

GridView

The GridView page layout includes the following features:

  • A collapsible search panel expanding under the toolbar. You can place custom filtering UI elements here:

DevExpress ASP.NET Responsive Project Template

  • A left sidebar that incorporates a filtering interface
  • Vertical and horizontal touch scrolling
  • Data pagination and the control’s built-in pager
  • An edit form implemented as an adaptive modal window

DevExpress ASP.NET Responsive Project Template

Scheduler

The Scheduler page’s layout includes the following features:

  • A top fixed toolbar that stores filtering and exporting UI
  • A built-in adaptive toolbar that allows end-users to switch dates and views
  • A floating action button that provides fast access to event management

DevExpress ASP.NET Responsive Project Template

  • A left sidebar that incorporates a calendar (implemented using the DateNavigator) and the resource filtering interface (implemented using the ListBox)

DevExpress ASP.NET Responsive Project Template

Article

The Article page demonstrates an adaptive reader for formatted texts. The page's layout is built using CSS styles and adapted for the browser's window size: margins and images are reduced for small screens. CSS styles applied to the Article page are stored in a separate file (Content.css) so that you can reuse them in other projects. This CSS file (Content.css) has a set of CSS rules that can be used to format your custom text content to a similar style used by our controls.

Learn more here: Article Page Demo

DevExpress ASP.NET Responsive Project Template

Printing CSS

Our CSS styles also contain settings to help improve printing by hiding unnecessary UI elements:

DevExpress ASP.NET Responsive Project Template

Login/Register Forms

We designed two forms to support authentication inside the template application. We used the FormLayout control for these forms to support adaptivity.

These forms can be extended to meet your requirements. They also support custom authentication logic that can be implemented in code-behind:

DevExpress ASP.NET Responsive Project Template

Authorized users can access their profiles by clicking on their photo in the top right corner:

DevExpress ASP.NET Responsive Project Template

If a user's photo is unavailable, the profile icon displays a user's initials:

DevExpress ASP.NET Responsive Project Template

Feedback

With this new template, we focused on combining adaptive layouts into a web application, yet still providing your end users with the functionality of a desktop app. We'd love to hear your feedback on the new template. Drop me a line below, thanks.


Blog Post: Microsoft Ignite | The Tour is kicking off in Berlin with DevExpress

$
0
0

On December 6 and 7 2018, Microsoft Ignite | The Tour takes place in Berlin, Germany. This one is the first of a series to come all over the world in the next couple of months. You will be able get the latest info on trends and technologies that are defining the software industry.

image

There will be more than 100 deep-dive sessions and workshops and you’ll have a change to talk with Microsoft engineers who build the tools you use every day.

DevExpress will be present and John, Alexander, Dmitry and I will be available to show you all the latest features in our v18.2 release and answer any questions you have about our products.

When you’re attending at Microsoft Ignite | The Tour Berlin, make sure to stop by at our booth and get a DevExpress T-Shirt and a ticket for our daily raffles with cool prices to be won.

Hope to see you in Berlin!

Blog Post: XPO - Miscellaneous Updates (v18.2)

$
0
0

Thanks to great user feedback, we had a successful release with several major new features. In this post, I will highlight a number of smaller, but useful additions to our ORM and its associated learning materials.

MySQL 8.0, PostgreSQL 10 and IBM DB2 for .NET Core Support

XPO v18.2.3 supports MySQL 8.0 and PostgreSQL 10 database engines. In several weeks, XPO v18.2.4 will also support the IBM DB2 provider for .NET Core / .NET Standard 2.0.

Custom GUID Generation

Requested by several users who experienced better INSERT performance on large databases with CombGuid (T607385). You can now provide a custom Guid primary key generation algorithm globally as described in this example.

XPObjectSource Tutorials & API Reference

As you may remember from our previous post, XPObjectSource is a new first-class citizen in DevExpress Reporting and is used to reduce the amount of code needed to bind reports using XPO data. To learn more about this new capability, refer to the following documents: Tutorials | API Reference.

And, please take our one-minute survey and share your opinion about XPObjectSource and other new reporting data source types.

WCF Data Services 5.7 support

The DevExpress.Xpo.Extensions library that provides XPO data service for OData V3 now supports WCF Data Services 5.7. You no longer need assembly binding redirections to target the latest version of a Microsoft package.

If you missed our previous post, there is now a better way to create interoperable data services - with XPO, Web API and OData v4.

Async/Await Methods Documentation

The async/await language feature is a de-facto standard and its concepts are well described in the Microsoft .NET Guide: Asynchronous Programming Patterns | Task-based Asynchronous Pattern.

Question 1: Do you require any additional concepts in XPO documentation besides a formal API Reference like SessionXPQueryExtensions? Are our existing examples, blog posts, online and offline demos and KB sufficient?

Where are simplified SetPropertyValue, GetCollection and other APIs?

As you may recall from our previous posts (one, two), we hoped to simplify SetPropertyValue, GetPropertyValueGetList, and GetCollection methods and avoid passing a property name as a string parameter. Very promising .NET's Caller Information feature did not help us due to a VB.NET limitation (broken overloaded method compilation with the ref keyword).

Instead, we thought about updating our demos and documentation to use the nameof keyword. We consider this important for new and existing clients who might derive implementation ideas from our learning materials and experience problems later (for instance, property renaming is more difficult with hardcoded strings).

Question 2: Do you feel its important that we update our learning materials or do you not see any issues and nameof with or without CodeRush templates is already sufficient?

Blog Post: XAF - What's New in Documentation (v18.2)

$
0
0
This blog post includes links to recently updated help topics. Please remember that your feedback helps us improve online content and to better serve your needs.
To submit your vote on an individual help topic, simply press the Give Feedback button in the lower right corner of each web page:



Updated Concepts

Task-based Topics

New and Updated API

The three properties below are set to false in our demos (Main Demo, XCRM, Feature Center) and in all new WinForms applications. Refer to our breaking change doc (BC4527) and to the following support question (T690584) for more information.

Interesting Support Center Tickets

  • We emphasized that a custom FrameTemplateFactory should be a DefaultLightStyleFrameTemplateFactory descendant if you want to use the Light Style in an existing WinForms application (T577264).
  • We fixed an issue with PNG images specified by the ImageName attribute (T690830).
  • Note that you can use images from the SVG Image Gallery only in WinForms applications (T689107).
  • We fixed an issue with incorrectly patched criteria in our DevExpress.Xpo.SecurityCriteriaBuilder code (T691730).
  • We described when the Accordion navigation control may fail to display images (T690584).
  • We fixed an issue with duplicate file names added by the AddFromFile method when you use the CustomizeOpenFileDialogFileNames event (T689164).

Blog Post: Report and Dashboard Server - Modern UI, Localization, White-Label (v18.2)

$
0
0

Back in May 2018 I posted an update on our efforts to modernize the UI of the Report and Dashboard Server. Now I can announce that these changes are finalized in v18.2 and the functionality is not in CTP state anymore.

The updated UI is now active by default, including those parts that still used the old UI in the past ( Schedule Documents, User Accounts, etc). Our Administrative Panel documentation has been updated to reflect the changes. The General Settings page includes an option to show a link which allows users to switch back to the old-style “classic” interface.

We also finalized the Localization and White Label features. Here are some details.

Localization

We made many changes since the CTP release, so now the Report and Dashboard Server can be localized fully using the .NET standard satellite assembly technology. This includes all the embedded controls, for instance Charts, Grid and Map Control used in the Dashboard Designer.

The DevExpress Localization Service helps you translate missing items into any language, and you can also use it to adjust translations to your own preferences. The system offers to share translations once they have been accepted by multiple users, to make everybody’s life a bit easier.

DevExpress Localization Service

All server and client messages for the Report and Dashboard Server are stored in an assembly called DevExpress.ReportServer.v18.2.Localization.dll. As a result of any translation work, from the localization service or any other source, you will receive satellite assembly files. These satellite assemblies need to go into the path C:\Program Files (x86)\DevExpress\Report Server\Web\Bin\{subfolder} (assuming an installation using default paths), where {subfolder} is the language specific folder that needs to be created if it doesn’t exist yet. Please see the topic Language Identifier Constants and Strings in MSDN for more information about language identifiers.

Eventually you can select the culture in the General Settings page of the Report and Dashboard Server Administrative Panel.

Choose a Culture

Be sure to restart IIS if you have replaced or added any satellite assemblies. Then you should see the results in the UI:

German Culture

White-Labeling

The term white-labeling describes the process of customizing the appearance of an application or a website to adhere to corporate identity standards, including colors, logos, titles and other elements. We received numerous requests for this functionality in the Report and Dashboard Server and we are now introducing support for it!

Our new UI was originally developed with support for custom theming. However, until recently there wasn’t an easy way of adapting themes at runtime to incorporate specific individual changes – our Theme Builder is a design-time solution only.

Fortunately the DevExtreme team created the npm package devextreme-themebuilder. This enables us to create custom CSS directly in the browser and apply it to existing pages. For instance, if an admin changes a color in the Administrative Panel, new CSS rules are generated from the source less file and stored in browser local storage. The same thing happens when a new browser first opens the Administrative Panel. When colors are changed, the Report and Dashboard Server remembers them in the database and propagates the settings to all clients.

To change the theme, bring up the Theme Settings dialog via the toolbar:

Theme Settings

When you click the Preview Changes button, the new colors are temporarily applied so you can test the result:

Preview Theme Setting Changes

In addition to color customizations, admins can also upload a logo and change site title and URL using the Custom Branding option.

Custom Branding

Please Let Us Know Your Thoughts

As ever, we are interested in your feedback. Much of the functionality described in this post is based on customer ideas and requirements! Please feel free to leave a comment below or open a Support Center ticket for detailed discussion. How do you like the new UI? Will you use localization or white-labeling?

Blog Post: XPO - MySQL 8.0, PostgreSQL 11, IMB DB2 for .NET Core Support and More (v18.2)

$
0
0

Thanks to great user feedback, we had a successful release with several major new features. In this post, I will highlight a number of smaller, but useful additions to our ORM and its associated learning materials.

MySQL 8.0, PostgreSQL 11 and IBM DB2 for .NET Core Support

XPO v18.2.3 supports MySQL 8.0 and PostgreSQL 11 database engines. In several weeks, XPO v18.2.4 will also support the IBM DB2 provider for .NET Core / .NET Standard 2.0.

Custom GUID Generation

Requested by several users who experienced better INSERT performance on large databases with CombGuid (T607385). You can now provide a custom Guid primary key generation algorithm globally as described in this example.

XPObjectSource Tutorials & API Reference

As you may remember from our previous post, XPObjectSource is a new first-class citizen in DevExpress Reporting and is used to reduce the amount of code needed to bind reports using XPO data. To learn more about this new capability, refer to the following documents: Tutorials | API Reference.

And, please take our one-minute survey and share your opinion about XPObjectSource and other new reporting data source types.

WCF Data Services 5.7 support

The DevExpress.Xpo.Extensions library that provides XPO data service for OData V3 now supports WCF Data Services 5.7. You no longer need assembly binding redirections to target the latest version of a Microsoft package.

If you missed our previous post, there is now a better way to create interoperable data services - with XPO, Web API and OData v4.

Async/Await Methods Documentation

The async/await language feature is a de-facto standard and its concepts are well described in the Microsoft .NET Guide: Asynchronous Programming Patterns | Task-based Asynchronous Pattern.

Question 1: Do you require any additional concepts in XPO documentation besides a formal API Reference like SessionXPQueryExtensions? Are our existing examples, blog posts, online and offline demos and KB sufficient?

Where are simplified SetPropertyValue, GetCollection and other APIs?

As you may recall from our previous posts (one, two), we hoped to simplify SetPropertyValue, GetPropertyValueGetList, and GetCollection methods and avoid passing a property name as a string parameter. Very promising .NET's Caller Information feature did not help us due to a VB.NET limitation (broken overloaded method compilation with the ref keyword).

Instead, we thought about updating our demos and documentation to use the nameof keyword. We consider this important for new and existing clients who might derive implementation ideas from our learning materials and experience problems later (for instance, property renaming is more difficult with hardcoded strings).

Question 2: Do you feel its important that we update our learning materials or do you not see any issues and nameof with or without CodeRush templates is already sufficient?

Blog Post: WinForms Data Grid Scrollbar Annotations

$
0
0

We’ve had some terrific feedback on our WinForms Data Grid’s new scrollbar annotation feature. We’d love to hear from those of you who are using it or have considered its use in a current or upcoming project. What’s been the reaction like amongst end-users? Is the UX intuitive? Do end-users appreciate the additional information you are able to display within the Grid’s container?

WinForms Data Grid Scrollbar Annotations

If you are unfamiliar with this new feature, scrollbar annotations help you direct users to important information within the grid. From the display of validation errors and search results to bookmarks, scrollbar annotations can improve app usability when used judiciously.

To learn more about annotations, please refer to the following help topic:
https://docs.devexpress.com/WindowsForms/120556/controls-and-libraries/data-grid/scrolling/scrollbar-annotations

Blog Post: New ASP.NET WebForms and MVC Controls (2019 Roadmap) – Your Vote Counts

$
0
0

Though DevExpress offers more than 110 WebForms controls and more than 65 MVC extensions, we know we can always offer more... Since we cannot implement everything simultaneously, we need your feedback to shape product direction and plans in 2019.

Please take a moment and select one of the following products – what would you like to see us deliver in 2019 (feel free to leave a comment with specific usage-scenarios... the more you share, the better we can understand your business needs now and into the future):

Please Note: We will detail plans for existing ASP.NET WebForms and MVC components in a separate blog post.

Possible New ASP.NET Products

What would you like to see us deliver in 2019?


Blog Post: Office File API, Office-inspired Desktop UI Controls (2019 Roadmap) – Your Vote Counts

$
0
0

We have a lot in store in 2019 but we need your help to refine our roadmap prior to its publication in January. The purpose of this blog post is to get your feedback and fine-tune our plans for 2019. Please take a moment to review the following features and tell us what is most important to you.

Blog Post: ASP.NET 2019 Roadmap - Office Controls & Scheduler – Your Vote Counts

$
0
0

We're making plans for 2019 and we'd love to get your feedback. Help us determine the features you'd like to see for the DevExpress ASP.NET Scheduler and Office Controls.

Please take a moment and select a few of the following product features – what would you like to see us deliver in 2019 (feel free to leave a comment with specific usage-scenarios... the more you share, the better we can understand your business needs now and into the future):

Possible New 2019 Features

What would you like to see us deliver in 2019?

Blog Post: WinForms Fluent Design and Acrylic Effects

$
0
0

Six months ago, we announced support for Fluent Design Form and Acrylic effects– new capabilities designed to replicate Microsoft’s next-gen UI metaphor. The purpose of this blog post is to detail our implementation and to solicit feedback from those of you planning to incorporate this new UI metaphor in existing/upcoming WinForms software projects. We hope to articulate why our implementation is on solid-footing when compared to those of others and the importance of DirectX in next-gen user experiences on the WinForms platform (as you may already know, our WinForms components can use DirectX rendering instead of GDI+).

Don’t be Fooled – The Correct Implementation Matters

Before we begin, it’s important to note that simple transparency does not equal “Fluent Design.” Fluent UI is far more complex than trivial transparency settings (said differently, it is not a simple TransparencyKey setting in Windows 7 Aero). Here’s a screenshot from Microsoft documentation that demonstrates how genuine Acrylic material functions: five separate layers with individual opacities and visual effects, designed to blend together to help create the appropriate visual effect.

Microsoft Documentation: Acrylic Material Layers

The same applies to the lighting effects Microsoft calls “Reveal Highlight”. The spotlight that follows one’s mouse pointer must be implemented correctly, otherwise it’s not a true “Reveal Highlight.”

Microsoft Documentation: Reveal Highlight Implementation

Our implementation of “Reveal Highlight” uses spot-specular lighting and color matrix effects and is applied to objects via an arithmetic composite. This requirement mandates use of DirectX and is simply impossible when using the traditional GDI+ renderer. It is one of the reasons we moved to DirectX rendering and one of the reasons you can count on us to continually push the boundaries of WinForms development forward. If you’re considering Fluent UI for your next WinForms app, the following video will demonstrate some of the things you can accomplish with our WinForms component libraries.

If you’re ready to incorporate this new design metaphor in your next WinForms app, follow these simple steps:

  1. Review Microsoft’s guidelines and learn the “do's” and “dont’s” of Fluent design. For instance, this article explains how to distribute Acrylic material across a form.
  2. Enable DirectX hardware acceleration.
  3. Use the DevExpress Fluent Design Form when you need a form with Acrylic material.
  4. Populate a Fluent Form’s embedded Hamburger Menu (Accordion Control) with required items and groups.
  5. Apply either a vector or any DevExpress Office 2016 raster skin for the best possible visual experience (and compatibility with all Fluent Design Form features).
  6. Change the static WindowsFormsSettings.ScrollUIMode property to “Fluent” to provide scroll bars optimized for the Fluent UI.

For ideas and inspiration, please explore our “Fluent Mail Client” demo (available in our most recent distribution) at your convenience.

Your Feedback Matters

Blog Post: Microsoft Ignite | The Tour Berlin Impressions

$
0
0

Last week, the first of the Microsoft Ignite | The Tour conferences took place in the CityCube Berlin expo. The attendees were a mixture of DevOps, Developers and other IT-Related people, which lead to some interesting conversations.

On this conference, John and I were accompanied by 2 of our internal program managers - Alexander (DevExtreme) and Dmitry (WinForms) so they had the opportunity to get some first-hand feedback from customers directly.

The first day, also Dennis (XAF) took a break from his holiday nearby to talk with a number of XAF customers who showed up at our booth. They wanted to know everything about the brand new React based SPA Client for XAF.

Below is an impression on what Microsoft Ignite | The Tour Berlin was all about.

20181206_0727292018-12-06 11-13-03
20181206_15213420181206_101408
20181206_0816162018-12-06 12-02-532018-12-06 12-33-29
20181207_13380020181207_151834
20181206_10484320181207_151907
2018-12-06 12-02-0920181207_152244

I hope to welcome you at one of the other Ignites we're sponsoring!

Blog Post: ASP.NET 2019 Roadmap - Data Grid and More – Your Vote Counts

$
0
0

We're making plans for 2019 and we'd love to get your feedback. Help us determine the features you'd like to see for the DevExpress ASP.NET Data Grid, TreeList, CardView, and Vertical Grid controls.

Please take a moment and select a few of the following product features – what would you like to see us deliver in 2019 (feel free to leave a comment with specific usage-scenarios... the more you share, the better we can understand your business needs now and into the future):

Possible New 2019 Features

What would you like to see us deliver in 2019?

Blog Post: DevExtreme - Data Grid & Tree List - Focused Row and Keyboard Navigation Enhancements (v18.2)

$
0
0

Sometimes small changes make all the difference. In this post I’ll introduce several new properties, events and methods of our Data Grid and Tree List widgets, which were implemented to support a _Focused Row_, a _Focused Column_, and related keyboard navigation functionality. These changes enable many important new features for your applications, improving its usability and making it more accessible.

The new functionality described in this post applies to all platforms supported by DevExtreme, including Angular, Vue, React, jQuery and ASP.NET MVC and ASP.NET Core.

Focused Row

Before v18.2, the Data Grid and Tree List widgets did not support the idea of focusing a row independently of the row selection feature. We had many requests about scenarios where end users would be able to focus a row and move that focus using keyboard or mouse. Workarounds were available, but they were not optimal and took additional time to implement.

Now you can activate row focusing by setting the focusedRowEnabled property. By default, the end user can use the mouse to focus a row, but they can also navigate up and down in the Data Grid or Tree List using the cursor up and down keys.

You can focus a row from code by setting the properties focusedRowIndex or focusedRowKey, or by calling the method navigateToRow. If you use paging or one of the advanced scrolling modes where the grid shows a subset of available rows, the required data is loaded automatically to focus the row.

Note that the focusedRowIndex is local to the visible page when paging.enabled is true. In other modes, including Virtual and Infinite scrolling modes, focusedRowIndex is global.

Row Navigation

Focused Column

When focusedRowEnabled is set to true, column focusing can be enabled by setting focusedColumnIndex to a value >= 0. Its default value is -1, which means that column focusing is switched off. The end user can use the cursor keys left and right to change column focus when this mode is active, or focus a cell by selecting it with the mouse.

Column Navigation

Enhanced Keyboard Navigation

As I described, the new focusing features come with keyboard support sufficient for many use cases. However, we also introduced four new events that enable you to react to focus changes and modify the behavior. In addition, you can use the method isRowFocused(key) to find out whether a row with a specific key is already focused.

For row focus, the events are onFocusedRowChanging and onFocusedRowChanged, for cell focus there are onFocusedCellChanging and onFocusedCellChanged. As usual, the xxxChanging events are fired during the process, before the actual change occurs, while xxxChanged indicates that the change is complete. All events receive numerous parameters that your code can use to analyze what happened, and the xxxChanging events have a cancel property which you can set to prevent the focus change. To visually highlight the focused cell, you need to set e.isHighlighted to true.

Demos

You can find a demo of an advanced row focusing implementation by following this link. Be sure to check out the code! You can see how the events onFocusedRowChanging and onFocusedRowChanged are handled. The first event implements automatic page changes when the user navigates to the top or the bottom of a page. The second event is used to extract details from the focused row after a change and display them separately.

Row Navigation with Page Wrapping

A demo for column focusing is available in this CodePen. The onFocusedCellChanging event is implemented here to wrap column focus from one row to the next or previous, when you use the keyboard to navigate past the left and right edges. The isHighlighted property is used to make the focused cell visible.

Column Navigation with Row Wrapping

Further Plans

We maintain a planning document on GitHub that describes the features we now implemented, but some additional features also included in that document are not done yet. In a nutshell, we plan to extend keyboard navigation to visual elements of the widgets (such as headers, filtering controls, etc), and to enable cell navigation between rows for an Excel-like editing experience.

Please feel free to let us know your thoughts! You can leave comments on the GitHub page, or of course using the comment box below. Do you like the new features? Are they relevant to your use cases? Are we missing anything important?

Blog Post: How to Create an AcroForm Designer with DevExpress Reports and PDF Viewer

$
0
0

As you know, interactive forms (AcroForms) are an important part of the PDF standard. AcroForms allow you and your users to create «fillable» PDF documents. Though our WinForms and WPF PDF Viewers do not support interactive form generation, you can incorporate an AcroForm designer in your application with two straightforward workarounds.

Create Interactive Forms with DevExpress Reports

If you're generating documents from scratch or need to integrate AcroForms with existing reports, you can use our End User Report Designer to create interactive forms. You’ll need,

  • Label– used to create text fields
  • Character Comb– used to create text fields (each character is printed in an individual cell)
  • Check Box– used to create check boxes and radio groups in PDF files.

To enable editing in the resulting PDF document, set the EditOptions | Enabled property to true in the designer (as shown in the image below), or enable edit mode in code when the control is added to the report:

var designForm = new XRDesignForm();
designForm.DesignMdiController.DesignPanelLoaded += (panel, args) =>
  ((XRDesignPanel)panel).ComponentAdded += (s, componentEventArgs) => {
    XRLabel label = componentEventArgs.Component as XRLabel;
    if (label != null)
      label.EditOptions.Enabled = true;
    XRCheckBox checkBox = componentEventArgs.Component as XRCheckBox;
    if (checkBox != null)
      checkBox.EditOptions.Enabled = true;
  };
designForm.OpenReport(report);
designForm.ShowDialog();

To export these fields to PDF as interactive form fields, enable Export Editing Fields to AcroForms via the designer’s UI or in code:

report.ExportToPdf(pdfFileName, 
  new PdfExportOptions { ExportEditingFieldsToAcroForms = true });

Our installation ships with an E-Form demo for WinForms, WPF, ASP and ASP NET.Core platforms. Feel free to review it for implementation details.

Create Interactive Forms with the DevExpress PDF Viewer and PDF Document API

This implementation allows you to create interactive forms for an existing PDF document (such as a scanned paper form). It uses our PDF Document API to add AcroForm fields to a PDF document displayed within our WinForms/WPF PDF Viewer. The API allows you to modify form field appearance and behavior as needed.

Follow these steps to add a text box field to a document:

  1. Specify the form field’s boundaries and its position on the page using the PdfViewer.GetDocumentPosition method.

    We use MouseDown and MouseUp events to draw the text box field (based on specified coordinates). The GetDocumentPosition method converts mouse coordinates to page coordinates within the document.

    int pageNumber;
    PdfPoint c1, c2;
    
    void pdfViewer_MouseDown(object sender, MouseEventArgs e) {
      var documentPosition = pdfViewer.GetDocumentPosition(e.Location, true);
    
      // Obtain the page number where the text box should be placed.
      pageNumber = documentPosition.PageNumber;
    
      // Obtain the page coordinates.
      c1 = documentPosition.Point;
    }
    
    void pdfViewer_MouseUp(object sender, MouseEventArgs e)         {
      // Obtain the page coordinates.
      c2 = pdfViewer.GetDocumentPosition(e.Location, true).Point;
    }
    
    // Create the rectangle that specifies the text box's size and location.
    var fieldBounds = new PdfRectangle(Math.Min(c1.X, c2.X), Math.Min(c2.Y, c2.Y),
      Math.Max(с1.X, с2.X), Math.Max(с1.Y, с2.Y));
    
    
  2. Create the text box field on the document page.

    var field = new PdfAcroFormTextBoxField(“FieldName”, pageNumber, fieldBounds) {
      Text = “Initial value”,
      Multiline = true,
      Type = PdfAcroFormTextFieldType.PlaneText,
      TextAlignment = PdfAcroFormStringAlignment.Far,
      Appearance = Appearance.CreateAcroFormFieldAppearance(),
      ReadOnly = false,
      Required = true,
      Print = true,
      ToolTip = “Text form field tooltip”; 
    }
    
  3. Modify form field appearance.

    Create an instance of PdfAcroFormFieldAppearance and specify the field’s background and foreground colors, display its borders and configure font attributes for field text.

    public PdfAcroFormFieldAppearance CreateAcroFormFieldAppearance() {
      var acroFormFieldAppearance = new PdfAcroFormFieldAppearance();
      acroFormFieldAppearance.BackgroundColor = ToPdfColor(BackgroundColor);
      acroFormFieldAppearance.ForeColor = ToPdfColor(ForeColor);
      acroFormFieldAppearance.BorderAppearance = new PdfAcroFormBorderAppearance() {
        Color = ToPdfColor(BorderColor),
        Width = BorderWidth,
        Style = BorderStyle
      };
      Font font = Font;
      if (font == null) {
        acroFormFieldAppearance.FontFamily = null;
        acroFormFieldAppearance.FontSize = 0;
        acroFormFieldAppearance.FontStyle = PdfFontStyle.Regular;
      }
      else {
        acroFormFieldAppearance.FontFamily = font.FontFamily.Name;
        acroFormFieldAppearance.FontSize = font.SizeInPoints;
        acroFormFieldAppearance.FontStyle = (PdfFontStyle)font.Style;
      }
      return acroFormFieldAppearance;
    }

    Please note that each PDF color component is represented by a floating-point value within the range (0, 1). Convert GDI color to PDF color as follows:

    static PdfRGBColor ToPdfColor(Color color) {
      return color.IsEmpty ? null 
        : new PdfRGBColor(color.R / 255.0, color.G / 255.0, color.B / 255.0);
    }

You can create other form field types using the same method. Review the following documentation topic for additional information on interactive form fields.

This implementation was used in our PDF Form Creation demo. You can find demo source code in the DevExpress demo source directory (C:\Users\Public\Documents\DevExpress Demos 18.2\Components\Office File API\...).

Web-Based PDF Viewer

Note: At present, we do not ship a web-based PDF Viewer. You can, however, create a custom PDF Viewer for ASP.NET and MVC using our PDF Document API (refer to the following example). Once you create the Viewer, you can use the same approach outlined here to add interactive form fields to your PDF documents.

Summary

If you want to create a new document, use DevExpress Reports for your interactive form.

If using an existing PDF document, use the DevExpress PDF Viewer and PDF Document API.

If you need to add combo boxes or list boxes to your interactive form, use the PDF Document API.

If you want to modify existing form field properties, remove this field from the document and create one with the desired settings using the PDF Document API.

If you still have questions, feel free to contact us in our Support Center. We’d love to hear your feedback!


Blog Post: XPO ORM 2019 Roadmap – Your Vote Counts

$
0
0

As we make our plans for 2019 we would love to get your feedback, help us determine the features you would like to see for the DevExpress eXpress Persistent Objects (XPO) ORM library. 

Housekeeping

There are a number of housekeeping tasks that need to be carried out during every release cycle. The following outlines what we have planned for 2019.

  • Enhance our async/await method support and apply it to the underlying ADO.NET drivers where applicable (not all drivers provide async methods). Currently, asynchronous execution is implemented at the XPO layer and XPO connection providers use synchronous versions of IDbConnection, IDbCommand, IDataReader, and other ADO.NET APIs.
  • Support .NET Core 3.0 and .NET Standard 2.1 specification when they are officially released.
  • Test and expand .NET Core connection providers support as and when RDBMS vendors provide it.
  • Add support for Visual Studio 2019. We have identified updating and testing our extensions for Item and Project Templates (ORM Data Model Designer, Persistent Object, OData Service). There is currently some work scheduled for the minor update of v18.2.4, other tasks such as support for AsyncPackage will be completed with the official release of Visual Studio 2019.
  • Keep XPO connection providers up to date with the latest database engine versions and extend their support according to user feedback. This is a repetitive task that sees enhancements being made numerous times each release for example in 2018: onetwothreefour.
  • Introduce more demos and enhance the learning materials for the main platforms where XPO is used (WinForms, ASP.NET Core, ASP.NET WebForms, WPF, Xamarin).

These items along with fixing bugs and support will keep our team busy for approximately 5 months.

Your Vote Counts!

In addition to the above housekeeping we will focus on introducing some important features based on user feedback. The following list represents the most important items we have identified.

Feature Group #1
1.1. XPServerModeDataView and XPInstantFeedbackDataView are mixtures of XPServerCollectionSource/XPInstantFeedbackSource and XPView for use with our grids. These are new read-only server mode components offering:

  • Handle large data sources with less memory (no entire persistent object instance load);
  • Customize SELECT statements to exclude unused data columns;
  • Include reference property data in the root query to avoid the 1+N problem;
  • Include custom (virtual) properties calculated on the server side (similar to ViewProperty).


1.2. XPBindingSource is a lightweight data source for WinForms and WPF (runtime only) applications. This enhances usability in the following scenarios:

  • XPO data sources on visually inherited Windows forms and user controls (T121952);
  • Easy persistent object and collection reload (A643);
  • Immediate data-bound control refresh (T685021);
  • Binding to nullable properties (S33566) and object references without complex or full custom property descriptors (T319505).

Feature Group #2
2.1. First class support for custom database column types beyond 
the default set. Initially, users will still need to create custom connection providers, but generic APIs will make this extension much easier. Once the new infrastructure is established, we will consider built-in support for Microsoft SQL Server datetimeoffset, datetime2, spatial and other popular database types.

2.2. Various ORM Data Model Designer enhancements:

  • Detect use in XAF projects and automatically enable DevExpress.Persistent.BaseImpl.BaseObject in the base class selector (T686856);
  • Optionally generate XAF RuleRequiredFieldRuleValueComparison or RuleCriteria validation attributes based on NOT NULL and size of underlying database columns (S172157);
  • Remove ambiguity between the connection string users specify in the XPO designer, its ConnectionHelper class and XAF data store settings (T686307);
  • Generate plain XPO data model code without the visual designer (ORMDataModel.xpo). We are thinking of a new wizard option or even some CLI for this. 
  • Handle the "Could not load type Npgsql.NpgsqlConnection" and similar errors due to improperly installed database providers better.

Feature Group #3
XPO Migrations: a simpler process to incrementally update the database schema and preserve existing data after XPO data model changes (
AS4684). Currently we handle initial database creation and schema tuning along with basic data model changes only (create tables and columns for new classes and properties). For more complex sync tasks, developers need to create database scripts or specialized helper methods. For instance, XAF's ModuleUpdater ships with the DropColumn, RenameTable, DropConstraint  and other APIs for Microsoft SQL Server for that purpose. Our goal is to make this process easier and more efficient than that of our main competitor (EF Core Migrations). 

If you vote for this feature, please tell us your requirements: 

A) update schema automatically via a special command in the ORM Data Model Designer or some CLI;
    or 
B) generate diffs between the latest data model and existing database schema so that you can apply the SQL script manually. 

Please note, this feature may be optimistic due to the size of the work required and the fact that we support more than 14 database engines.


Your Feedback Is Needed!

The above features have been intentionally grouped into three choices, each estimated approximately 5 months to research, implement, test and document.

As always we welcome your comments and specific usage-scenarios, the more you share, the better we can understand your business needs now and into the future.

Blog Post: Windows Forms 2019 Roadmap – Your Vote Counts

$
0
0

Note that this roadmap does not cover all DevExpress WinForms products. The following product teams will conduct separate surveys:

Please take a moment to review our planned features for 2019 and vote for those you’d like to see us implement.

.NET Core 3 Support

The preview version of the .NET Core 3 is already available, and we’re working on official support. More details to come…Stay tuned!

WinForms Gantt Control

We’ve heard you loud and clear. We are planning to release a WinForms Gantt Control in our v19.2 release cycle.

Pivot Grid - DirectX support

The DevExpress Pivot Grid will be able to render data using our DirectX engine. This will significantly boost performance, especially on High DPI displays.

WinForms Data Grid

We are confident that our WinForms Grid is the best product in its class. This fact notwithstanding, we do hope to incorporate the following new features in our v19.1 release cycle:

  • Enhancements to our TileView including support for multiple tile selection, ability to modify individual tile height and use of AdornerUIManager Badges.
  • A dynamic conditional format that visualizes changes to Grid records and their values on the fly.
  • A new Excel-style menu value selector for DateTime columns based on our Range Control.

To help us finalize our plans for v19.2, please review the following list and cast your vote for the feature(s) you’d like see us introduce late next year.

Enhancements to the Grid’s Find Panel

  • Exact search without the need to use quotation marks
  • Substitute default filter criteria
  • HTML text highlighting

Range Filtering for Numeric Data

Select a required data range and instantly compare matching records to the entire range.See preview

Breadcrumb-like Filter Panel

Extend the filter panel and make it more intuitive/easier to use (display filter expressions using “breadcrumb” blocks that represent individual filter conditions).See preview

WinForms Data Editors

Next year, we plan to add simple edit functionality to the Picture Edit control: your users will be able to rotate and crop images at runtime. The following is a list of additional features/products being considered for 2019.

New Control - Step Progress Bar

A control that displays step-by-step progress and supports various point types and feedback animation.See preview

LookUp - Dynamic Suggestions

Similar to web search engines, look-up editors will asynchronously locate and suggest values that match text entered by end-users.

CameraControl - DirectX-powered video streaming & IP Camera support

With DirectX engine support, the Camera Control will be able to stream video at the highest possible resolution, even on high-res 4K displays. We are also considering support of Internet Protocol cameras.

LabelControl - Icon font support

With multiple font support, you can use icon fonts to display any number of icons next to text.See preview

WinForms Visual Enhancements

We remain fully committed to the WinForms platform and hope to ship the following UI-related features in 2019.

  • Project Settings palette editor: customize vector skin palettes (swatches) directly from Project Settings - no need to modify your skins in the Skin Editor or create custom palettes in code.
  • DirectX-based transition effects for our TransitionManager. This will combine blazing-fast performance with elegant appearance options.
  • Compact Layout mode: a new Project Settings option that reduces paddings and/or margins for all “skin-able” controls. This will allow data-intensive applications to display more information on-screen.
  • Gradient fill support for SVG icons and vector skins.
  • SVG Icon Builder will allow you to load custom icons and customize them as needed.

We are also considering adding Acrylic Material effects in our popup menus and Flyout Panels. Would you utilize this feature, were we to implement it?

WinForms Navigation UI

In 2019 we will add application menus to form title bars: the BarManager component will be able to use the XtraForm title bar region to display its items (including the Main Menu toolbar) like Visual Studio 2019. You can also expect new Office 2019 features like tab header area buttons, and a Search item that allows end-users to quickly locate required commands without looking for it among all Ribbon tabs.

If you have other ideas or have specific TreeList related needs, feel free to leave us a comment.

WinForms TreeList

We will extend the TreeList’s capabilities with the following new features:

If you have other ideas or have specific TreeList related needs, feel free to leave us a comment.

WinForms Scheduler

Last year we've released a new event storage component for our Scheduler and implemented Appointment synchronization between the Scheduler and Google Calendars. Major Scheduler-related features planned for v19.1 include:

  • The ability to remove specific time intervals from the Timeline View.
  • Appointment slots for office hours, meeting availability, etc.: time cells with unique appearance characteristics and optional restrictions on edit operations.

To help us finalize our plans for v19.2, please review the following list and cast your vote for the feature(s) you’d like see us introduce late next year.

Display Resources as Tabs (much like Microsoft Outlook)

Display resources as separate tabs so end-users can group, re-arrange and close them as needed.See preview

Outlook-inspired Search

An Outlook-inspired search bar that automatically locates matching appointments and displays them as a list.See preview

Year view

A new Year View that compliments our existing Day, Week, and Month Views.See preview

Timeline View - Pixel Scrolling

Specify custom resource height within the Timeline View.See preview

Enhanced Clipboard Operations (copy and paste appointments from Outlook)


Blog Post: Visual Studio 2019 and .NET Core 3 Support

$
0
0

I am pleased to announce that DevExpress Universal v18.2.4, which we just published, has added full support for the new Visual Studio 2019 Preview 1 release.

Although this is excellent news, do please note that we know of two issues (so far!) with VS2019 that you may run into. For more information, see here:

https://www.devexpress.com/Support/Center/Question/Details/T701167
https://www.devexpress.com/Support/Center/Question/Details/T701724

Also please be warned that you will undoubtedly see this notification from VS2019: “Visual Studio has detected one or more extensions that are at risk of not functioning in a future VS update. Click 'Learn more' for next steps.”. This is nothing to be worried about - we know about it, and it will be fixed in the near future.

Anyway, in further news, this release will also provide support for the current preview version of .NET Core 3. (Another warning: not only is .NET Core 3 in preview, but also our support for it is. Here Be Dragons!) To show off this support we have uploaded modified versions of both the “Outlook Inspired” (WPF & WinForms) and “Stock Market” (WinForms only) demos to GitHub.

WinForms: https://github.com/DevExpress/netcore-winforms-demos
WPF: https://github.com/DevExpress/netcore3-wpf-outlook-inspired-app

Each repository has a README with instructions on how to compile and run these demos, as well as how to create your own DevExpress-based projects that target the .NET Core 3 framework.

I warn you as well that if you are using XAF and XPO, they do not at the time of writing support .NET Core 3. The team continues to research what's needed to provide such support in XPO and XAF WinForms/SPA apps. The coverage of various features in those frameworks strongly depends on the supported .NET APIs provided by .NET Core 3, and when they're introduced (for instance, at the moment, no ASP.NET WebForms, pruned WCF support, etc.).

I, for one, am excited about these new enhancements, especially the .NET Core 3 support. Of course, along with everything else we do, we’re ready to hear about what you think of it all. Your feedback prompts and encourages us to improve our controls. So, what do you think? Will you be using .NET Core 3? What about VS2019? Let us know.

Blog Post: WinForms and WPF Reporting - 2019 Roadmap - Your Vote Counts

$
0
0

We have a lot in store for DevExpress Reports in 2019. Please take a moment to review our list of planned features and vote for those you’d like to see us deliver in 2019.

Report Designer

We plan to incorporate the following new features in our v19.1 release.

  • A new way to create cross-tab reports using report bands and controls instead of XRPivotGrid. This will allow you to use expression bindings to calculate data and define the appearance of each visual element within a cross-tab report without writing code.
  • Give you the ability to combine multiple reports within the Report Designer, allow you to define print order and print all as a single document. This will address limitations associated with report merging (which is only available at runtime).
  • The ability to create hierarchical data reports (tree structures) and define the offset of a given band’s content based on nesting level.

We hope to implement one of the following enhancements in v19.2. Review the list below and vote for the feature you’d like see us introduce late next year.

The ability to embed PDF documents into a report document

You’ll be able to insert a PDF file into a report and define its content boundaries within a document.

The ability to display empty table rows after existing data

You’ll be able to repeat empty rows until the bottom of the page is reached (to conform to a report’s structure). For more information on this feature, please refer to the following support tickets: T602604, T666620.

Move Bands to a "Background" Layer

Combine multiple bands so that content is rendered in a more compact manner. See example here.

As you can see, many of our proposed enhancements target document generation (cross-tabs, hierarchical data, merged documents). To help us deliver the best possible implementation, we need your assistance. If you are not constrained by legal restrictions, we’d love to take a look at your current report designs/layouts. We do not need any data – we are mainly interested in document structure. Feel free to forward your report samples to reportingteam@devexpress.com.

End-User Report Designer

We will extend the End-User Report Designer’s capabilities with the following new features in v19.1.

  • Give you the ability to create and store report band templates within the Report Gallery (page headers, report titles). This will allow your customers to share gallery content and to generate reports with unified headers or footers.

  • Help you bind a report to SalesForce data (we expect to introduce a new data source component).

  • Support for token-based authentication for JsonDataSource. We will publish a workaround shorty and a built-in solution will ship in our v19.1 release.

We hope to implement one of the following enhancements in v19.2. Review the list below and vote for the feature you’d like see us introduce late next year.

The ability to re-order detail reports in Report Explorer

You’ll be able to move an entire detail report if it was created at the wrong report hierarchy level.

Backstage ribbon menu for the End-User Report Designer

The menu will include access to Save, Save As and Open commands, a list of recently opened documents and global designer user interface and document generation settings.

Data Blending

You’ll be able to define the relationship between different data source tables, queries, sheets and object lists.

Feel free to leave a comment if you have a requirement that is not currently implemented or a suggestions we’ve not considered in this blog post for the DevExpress End-User Report Designer.

Report Controls

In 19.1 we plan to extend the capabilities of our report controls as follows:

We hope to implement one of the following enhancements in v19.2. Review the list below and vote for the feature you’d like see us introduce late next year.

Print Markdown content

You’ll be able to pass Markdown markup to a special report control. This control will convert the content to HTML when printing or exporting the report document.

Gradient Backgrounds for XRLabel, XRTableCell and XRPanel

You’ll be able to define the start and end gradient point, select two colors and define the gradient direction for a report control’s background.

Rounded Corners for XRLabel, XRPanel and XRTable

You’ll be able to define corner radius for the borders of these controls.

Report Parameters

We are considering the following enhancements to our Report Parameters in our v19.2 release cycle. Cast your vote for two features you’d like see us introduce late next year.

Date Range Parameter Type

Your end-users will be able to select a date range using a single editor in the parameters panel.

Separate Date and Time Parameter Types

You’ll be able to create a date or time parameter.

Define Parameter Values via Expression Binding

You’ll be able to define the default parameter value using an expression binding (use the DateTime.Now constant).

Group Parameters

You’ll be able to logically group multiple report parameters in the parameter panel (display editors in a Group Box).

Conditionally Hide Parameter Editors

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

If you feel that something crucial is missing from our roadmap, feel free to comment below or contact our support team to describe your scenario or suggestion in detail.

Blog Post: DevExtreme 2019 Roadmap – User Interface & Data Entry Widgets – Your Vote Counts

$
0
0
We are hoping to finalize our 2019 Roadmap in the coming weeks. Your feedback will help us prioritize activities and ensure that our resources are allocated effectively.  
Note – The DevExtreme 2019 Roadmap Survey is divided into four separate blog posts.
  • User Interface & Data Entry Widgets (this post) 
  • Analytics and Data Visualization 
  • ASP.NET Core, Angular, React, Vue 
  • DevExtreme Reactive 

Performance Enhancements 

Improved Code Splitting

The popular Code Splitting technique helps web developers improve app performance. To help maximize the benefits associated with Code Splitting, 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). 
We also want to make our CSS modular. You’ll be able to bundle only those styles/features being used in your app.

Virtual Scrolling and Lazy Loading Everywhere 

The vast majority of DevExtreme users work with large datasets (from thousands to millions of records). These datasets are rendered as lists within our controls. Our DataGrid supports virtual scrolling with lazy data loading. We’d like to make this feature available everywhere. This feature can be applied to the following list of widgets: 
  • TreeList 
  • TreeView 
  • Scheduler 
  • PivotGrid 
  • Lists 
  • DropDowns & Lookups 
  • Header filters 
  • Column choosers 
You can read more about virtual scrolling here

DataGrid & TreeList 

Excel-Like Editing Mode 

We announced this feature in our 2018 Roadmap but it wasn’t ready to ship when v18.2 was released. We have received useful feedback on this feature and are going to ship it in v19.1. 

Accessibility Enhancements 

In v18.2, we improved the DataGrid’s keyboard navigation capabilities with our ‘focused row’ feature. We now want to address remaining accessibility gaps. We will make it possible to navigate to and work with any existing DataGrid and TreeList element (such as grouping, sorting, paging) via the keyboard. 

Record Reordering 

We’ll give you the ability to reorder DataGrid rows and change TreeList parent-child node relationships via drag-and-drop. 

Cross-Component Drag-and-Drop 

Some business scenarios require that users move items from one collection to another or from one hierarchy to another. We hope to support cross-component item drag-and-drop operations. 


TreeList

Remote Data Paging

At present, if you expand a node, the TreeList loads all child nodes and then paginates them locally. We want to give you the option to load nodes individually. This feature will work with both the pager control and through virtual scrolling - Just like our DataGrid.


New Filtering Modes

We’ll hope to extend the filtering capabilities of the TreeList with the following features:
  • Enable search only through tree leaves.
  • Include filtered nodes children into filter results.


Scheduler

Adaptivity & UX Enhancements

We want to enhance our Scheduler to look and behave better on small screens (mobile devices). You can find some examples of this adaptive behavior in its ASP.NET counterpart here. If you’ve encountered specific usability issues with DevExtreme Scheduler, please share them with us.

Performance - Virtual Scrolling

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


Standalone Recurrence Editor

We have a recurrence editor that is a part of the Scheduler appointment form and can’t be used separately. We expect to ship the Recurrence editor as a standalone control in 2019.

HTML/Markdown Editor

Multiline Toolbar

At present, Toolbar items are hidden within a dropdown menu on small screens. If the number of items is large (as it is in the HtmlEditor) the menu gets too long and becomes difficult to use. We’ll introduce one more adaptive mode that will create a second horizontal line of toolbar items instead of creating a dropdown menu.

Tables Support

We’ll give you the ability to insert and edit data tables.

Mentions Support (via @)

‘Mentions’ allow you select users or user groups by typing @ when composing rich text content. It’s widely used in team collaboration tools and project management applications.

Inline Formatting Toolbar

You’ll be able to reveal an inline formatting toolbar when selecting content that requires formatting.

Resize of Media Blocks

We’ll give you the ability to resize images and video blocks via the mouse.

Upload Images via Drag-and-Drop & Copy/Paste

You will be able to embed images as base64-formatted content or upload it to a web server via drag-and-drop or copy-paste actions and reference it as a URL.

TreeView

Node Reordering

Change parent-child relationships of TreeView nodes via drag-and-drop.


Cross-Component Nodes Drag-and-Drop

Move a node from one hierarchy to another using drag-and-drop.


Data Editors

Additional Action Buttons

Extend built-in editor action buttons with custom actions. You can find some examples here.


Data Form

Dynamic Updates Without a Full Re-render

We recently added partial update support to several DevExtreme widgets. This update can also be applied to the Form widget (for those who dynamically update forms and do not want to initiate a full form re-render).


New Drag-and-Drop Utilities

We want to create a drag-and-drop utilities library so you can construct custom drag-and-drop functionality outside of our UI widgets. One such usage scenario involves list sorting. We’ll make it extremely easy to implement such functionality. You can refer to the jQuery Interaction section for more information and to better understand the genesis of this feature.


New Kanban Board Widget

Kanban Board has become an essential control for task and project management in modern business web applications.


New Dropdown Button Widget

A button with a built-in dropdown menu. You can find this kind of widget in many modern web applications.  Please, refer to the Bootstrap implementation for an example.

New Floating Button Widget

The concept of a Floating Button began with Material Design guidelines. We’ll support a simple Floating Button and a Floating Button with a pop-up menu.

Data Export

Export to PDF


Export to Excel in TreeList

We want to give you the option to export the contents of the TreeList control to XLSX files. You’ll be able to choose whether to export all or only selected records. 


Export to Excel Customization Enhancements

We recently enhanced our Export to Excel feature with cell appearance customization. Which of these additional export customization capabilities do you need (pick up to 3 items)?


WYSIWYG Export to Excel

If you create conditional format rules within the DataGrid, you may want it applied to exported sheets as well. You can now achieve this manually. We want to introduce WYSIWYG export capabilities in 2019. You'll have a single customization point for the data-aware control UI and the corresponding exported Excel sheet.


Data Layer

OData v4 Support

OData v4 support enables remote grouping and summary operations within DevExtreme controls -  improving performance when using large datasets.


GraphQL Support

Seamlessly bind DevExtreme controls to your GraphQL API end-points.


Themes

Element and Font Size Customization

DevExtreme includes a ‘compact’ and ‘regular’ theme sets. Our users find the ‘compact’ themes very useful when generating a highly dense, data-intensive UI. We've received a number of requests for a compact Material theme. What are your thoughts?


IE11 Support

IE11 support consumes resources – resources that can be allocated to new features and products. Would you have any objections if we were to drop official support for IE11 in 2019?




Viewing all 3388 articles
Browse latest View live