Quantcast
Channel: ASP.NET Team Blog
Viewing all 398 articles
Browse latest View live

DevExtreme Case Study: ISDK Information Systems

$
0
0

Hearing customer stories about real-world usage of our controls is a treat.

That's why I was happy to read about ISDK Information Systems use of our excellent client-side JavaScript library: DevExtreme.

Goals

The company had several big goals to address:

  • Integration and aggregation of data from disparate IT systems
  • Creation of single task center based on Microsoft SharePoint corporate portal
  • Development of visualization and monitoring tool for key programs and project and their KPIs
  • Development of mobile client for tablets and wide format devices allowing to show key aggregated data and KPI on dashboards and do quick task assignments

They chose DevExtreme and were able to achieve their goals. In fact, they were so happy with the solution that they reached out to us (and we appreciate it).

Dashboard & Mobile

ISDK Information systems has developed a solution that is fast, includes dashboards, and address their mobile clients too:

Mobile client for tablets includes dashboards for aggregated project information – target KPIs and dates, actual statuses and key issues with the ability to quickly create and assign tasks. Average mobile application response time with stable Internet connection is 1 second or less.

Here's a screenshot of their slick solution:

Read The Case Study

I recommend you read their story here:

Case Study: ISDK Information Systems

I hope this inspires you to make your own great software with DevExtreme. Do you have a story to share with us about your DevExpress usage then send me an email?

Email: mharry@devexpress.com

Twitter: @mehulharry


Your Next Great .NET App Starts Here

Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).


New HTML5 JavaScript Filter Builder Widget (v17.2)

$
0
0

In the v17.2 release, we're introducing a powerful new widget that helps your end-users to build complex filter criteria: the DevExtreme Filter Builder widget.

DevExpress is known for great UI controls with powerful features. And if you've used other DevExpress platforms like ASP.NET then you'll be happy to hear that DevExtreme now offers this as well.

Filter Builder Helps You Find Data

The Filter Builder widget provides advanced filter and criteria options to help end-users filter data with an unlimited number of conditions combined by logical operators. Therefore, it helps you to build filter criteria using logical operators that anyone can easily understand.

By adding this ability to specify complex filters in your UI, you can save time for end-users and improve productivity when working with large amounts of data.

The following code shows how to create a filter builder:

$("#filterBuilder").dxFilterBuilder({
    fields: [ {
            dataField: "Product_Name"
        }, {
            caption: "Cost",
            dataField: "Product_Cost",
            dataType: "number",
            format: "currency"
        }, {
            dataField: "Product_Current_Inventory",
            dataType: "number",
            caption: "Inventory"
        }
    ],
    value: [
        ["Product_Current_Inventory", "<>", 0],"Or",
        [
            ["Product_Name", "contains", "HD"],
            ["Product_Cost", "<", 200]
        ]
    ]
});

Filter Other Widgets

The Filter Builder widget is a stand-alone widget that can be combined to be used to filter other DevExtreme widgets whose data source supports filtering. For example, widgets like the HTML5 JavaScript DataGrid or TreeList:

widgetInstance.filter(filterBuilderInstance.option("value"));

The following code demonstrates how to use filter editor with DevExtreme List, PivodGrid (excluding XmlaStore), TreeView and other DevExtreme widgets:

var widgetDataSource = widgetInstance.getDataSource();
widgetDataSource.filter(filterBuilderInstance.option("value"));
widgetDataSource.load();

To help you get started with our new Filter Builder widget, we have prepared several technical demos and also included the Filter Builder in the DevAV demo. These demos will be available with the v17.2 release.

Common Usage Scenario

A social network is a good example where complex filter expressions can be helpful. People often set up a filter when looking for a person they want to find, and they generally specify the name, age, country, town, professional position, etc. - the more conditions they specify the faster they find a person they were looking for.

We even 'dogfood' (aka test and promote) our own products internally. And after using it internally for our own projects, we are positive that you'll love this new widget as much as we do.

Here is an example of how Filter Builder widget can be used to filter developer tasks:

Angular, ASP.NET MVC/Core, & More!

The new dxFilterFuilder widget will be available on all the frameworks we support: Angular, jQuery, Knockout, ASP.NET MVC, and .NET Core.

Try it now

The new dxFilterBuilder widget is included in the v17.2 pre-release that is available via npm right now. Please note that this pre-release may contain some bugs and is not intended to be used in production:

npm install devextreme@17.2.2-pre-beta

Learn more about DevExtreme's pre-releases in this blog post.


What do you think about the new Filter Builder widget? Drop me a line below.

Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET GridView Enhancements - Merged Groups, Header Filter Search, & More (Coming soon in v17.2)

$
0
0

In the next major release, v17.2, we're adding some great new features to the DevExpress ASP.NET GridView. All the features below will be available for both the ASP.NET WebForms and ASP.NET MVC versions of our GridView:

Merged Column Grouping

We're introducing a new way to display grouped rows in the ASP.NET GridView control. Currently, you can display grouped rows so that the first grouped column is displayed above the other columns and the data is nested underneath:

Starting with v17.2, you can now use the new option that will remove the nested group rows and merge them into a single 'grouping line':

This saves space and also provides more space to display data rows. This is an option so both display types are available, however, I prefer the merged grouping. This feature was inspired by our excellent WinForms Grid control.

Header Filter Search

We're also improving the Grid's Header Filter feature by adding a search text box. Take a look at this animation to see it in action:

The new 'header filter search' can help your end-users save even more time when searching through a large number of records.

Easier Exporting API

Another improvement in the next release is that we've moved the export functionality from the ASPxGridViewExporter to ASPxGridView class. Now you can export the the Grid using a single line of code: grid.ExportTo...

This change also helped us to create export commands for the ToolBar and Context Menu. We've updated all our export demos by using toolbar export items. You can see an example of this by downloading v17.2 beta today or wait till the official v17.2 release when we'll update our online demos too.

Adaptive Popup Dialogs

And last but not least is another great adaptive feature.

Starting with v17.2, we now use the Popup Control's Adaptive feature for all of the GridView's inner popup controls: HeaderFilter, EditForm, and FilterBuilder. This feature will make using the excellent DevExpress ASP.NET GridView control better on mobile devices.

For example, here's the ASPxGridView's PopupEditForm on a desktop browser:

When you view the same PopupEditForm on a mobile device, the new adaptive dialog will look like this:

The new feature is enabled by default but you can customize it using the Grid.SettingsPopup.EditForm.SettingsAdaptivity.Mode property.

You can test these new features today by downloading the DXperience v17.2 Beta that is available in your download center (for existing customers).

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

Easily Add DevExtreme ASP.NET MVC Controls to .NET Core Visual Studio Projects (Coming Soon in 17.2)

$
0
0

The DevExtreme MVC Controls work great with the ASP.NET Core 2.0 framework but what if you've got an existing project?

To help you get started with using DevExtreme MVC Controls in ASP.NET Core 2.0 projects, we've upgraded "Add DevExtreme to the Project" option in the upcoming v17.2 release.

Context Menu - Single Click

This tool, long familiar to our ASP.NET customers, is now available for ASP.NET Core projects, too. Right-click on your Visual Studio 2017 project and select the menu option:

Then you'll see a confirmation dialog. Select 'Yes' to run the tool.

Once it starts, the tool will help you to include the necessary references, scripts, styles, and also modify the important project files such as Startup.cs and NuGet.config. You can still do this manually but this tool saves you a ton of time.

When the tool is done, it'll display the following 'Readme page' which details the changes made and also recommends that you complete the last small but important step:

IMPORTANT: Complete the conversion

There is one final important step you need to complete after running this tool. The goal of this tool is to make enough changes to enable using DevExtreme MVC Controls in your .NET Core projects. However, we didn't want to modify your _Layout.cshtml file, more on this below.

The final step requires you to switch to use a new file which we add to the project called: _DevExtremeLayout.cshtml. This file contains the references that are needed in the head section (and elsewhere) to use DevExtreme MVC Controls in your existing project.

Unlike ASP.NET MVC 5 projects (which we refer to as "classic MVC"), in .NET Core there are no bundles. Instead, there is now a hierarchy of <environment>, <script>, and <link> tag helpers that are used. This gives developers more flexibility, however, for automated tools, it can complicate your process.

We understand that in existing projects the _Layout.cshtml and the corresponding sections of it can be highly customized. Therefore, we don’t try to parse and patch it. Instead we provide two alternatives to complete adding DevExtreme to your project:

  1. Either switch to the ready-to-use new layout _DevExtremeLayout.cshtml (which is the same as the one used in projects created from DevExtreme ASP.NET MVC Project Templates)

  2. -OR- modify your existing layout by following the recommendations from the mentioned Readme page

I want to stress, that the tool's primary purpose is to add DevExtreme to your existing projects. If you create a new project then please use our DevExtreme Project templates instead as they have everything setup already. They're available in the Web, .NET Core, and DevExtreme sections of the 'New Project' dialog.

Watch the webinar

I recommend watching this recent webinar which goes over the process of using the updated tool:

Try it now

You can test these new features today by downloading the DXperience v17.2 Beta that is available in your download center (for existing customers).


What do you think about the DevExtreme MVC Controls in ASP.NET Core 2.0? Drop me a line below.

Email: mharry@devexpress.com

Twitter: @mehulharry

HTML5 JavaScript Scheduler Improvements (v17.2)

$
0
0

Check out the new features of the DevExtreme HTML5 Scheduler widget that are coming in the v17.2 release. These features improve the Scheduler appearance and also help you to customize both appointments and views.

Display Several Days, Weeks and Months

Different tasks may require different planning periods. For example, training sessions require semesters, agile software development - iterations, etc. With the upcoming release, we've added a capability to display a custom period on a view by specifying an intervalCount option.

This option is available as a part of the view config. For example, here we set the interval for two work weeks:

$("#scheduler").dxScheduler({
    // …
    views: [
    {
        name: "2 Work Weeks",
        type: "workWeek",
        intervalCount: 2
    }]
});

Indicate the current time

Another feature in v17.2 for the Scheduler widget helps you to distinguish between past and future appointments, as well as tasks. The Scheduler will now provide a specific indicator that highlights the current day and time on views with the time scale. Note that the indicator changes its position with the interval that's specified in the indicatorUpdateInterval option.

The indicator is visible by default. You can hide it by setting the showCurrentTimeIndicator option to false.

Additionally, you can apply shading to cover the timetable up to the current time by assigning true to the shadeUntilCurrentTime option.

Limit number of full-sized appointments per cell

Previously, the Scheduler could show only two full-sized appointments in a cell, while collapsing others. This approach was not flexible and also didn't allow for showing more appointments on wider screen displays.

With v17.2, you can change the number of full-sized appointments per cell using the new maxAppointmentsPerCell option. This allows you to specify a strict limit on displayed appointments, calculate it automatically, or even remove the limitation. On exceeding the limit, appointments no longer become collapsed; instead, they are removed to an appointment collector, from which you can easily drag appointments back to the timetable.

Now, appointments in the appointment collector's drop-down list do not have an Edit button because a click on an appointment opens the edit form. Use the dropDownAppointmentTemplate option to customize these appointments.

Cell Size Customization

With v17.2, you can easily customize cell sizes keeping all elements aligned. Simply specify the desired cell width and height using the dx-scheduler-cell-sizes-horizontal and dx-scheduler-cell-sizes-vertical CSS classes.

Angular, ASP.NET MVC/Core, & More!

Note that all these new features are available on all the frameworks we support: Angular, jQuery, Knockout, ASP.NET MVC, and .NET Core.

Try it now

The new features of our dxScheduler widget are included in the v17.2 pre-release that is available via npm right now. Please note that this pre-release may contain some bugs and is not intended to be used in production:

npm install devextreme@17.2.2-pre-beta

Learn more about DevExtreme's pre-releases in this blog post.


What do you think about the DevExtreme Scheduler's improvements in the next release? Drop me a line below.

Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET TreeList Enhancements (Coming soon in v17.2)

$
0
0

Check out these great enhancements the DevExpress ASP.NET TreeList is getting in the next major release, v17.2.

The DevExpress ASP.NET TreeList and GridView controls are similar in features and API. One of the major features missing in the DevExpress ASP.NET Treelist control was the ability to filter data. So in 2017, we worked hard and think you'll be happy with the results.

Filtering

Starting with the v17.2 release, we are providing filtering support for the DevExpress ASP.NET TreeList control. You'll be able to filter your data in the same manner as you do in the GridView control. Let's dive in and see all the different ways:

1. Search Panel

The DevExpress ASP.NET TreeList allows you to filter data and highlight search results via its integrated Search Panel. It's an easy way to find the data by typing the filter criteria in the search panel editor.

Simply enter the text in the Search Editor and the TreeList will display the records matching your criteria:

2. Data Filter Row

The filter row allows users to filter data by entering text in the editors displayed below individual column headers. Each editor builds a FilterExpression for the corresponding column using typed text and chosen filter operator in FilterRow menu.

You can see it in action here:

3. Header Filter

Another enhancement is HeaderFilter mechanism that displays a dropdown with a list of unique values of the specified column. By selecting one or more values, you'll be able to quickly filter for the matching criteria:

4. Built-in FilterBuilder

We've also integrated the excellent FilterBuilder into the TreeList.

The FilterBuilder is a powerful tool that provides the most flexible approach for filtering data. With FilterBuilder you'll be able to build filter criteria of any complexity with unlimited number of conditions and logical operators.

Unbound Columns

We're also introducing support for Unbound Columns, which allow you to add columns to to the TreeList without needing a data source.

Unbound columns can be populated manually by handling corresponding events or by specifying an UnboundExpression that is used to evaluate the values. You can sort, group, and filter unbound columns in the same way as data-bound columns.

ASP.NET MVC supported

All of these features are also available for the DevExpress ASP.NET MVC TreeList control too.

Try it today

You can test these new features today by downloading the DXperience v17.2 Beta that is available in your download center (for existing customers).

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET Spreadsheet Enhancements - Adaptive Dialogs and more (Coming soon in v17.2)

$
0
0

Check out these enhancements to the DevExpress ASP.NET Spreadsheet control that are coming in the v17.2 release:

Adaptive Dialogs

The Spreadsheet Control's dialogs will all be adaptive. This means that the dialog's content is automatically resized according to the screen resolution. To achieve this, we used the FormLayout and Popup controls in adaptive mode. The upgrades the FormLayout and Popup controls will also be available to you in the coming release. I'll discuss these other controls in a future blog post.

Check out the Spreadsheet's adaptive dialog in action here:

Bookmark navigation

The Spreadsheet Control now gives you the ability to navigate through documents using bookmarks:

For your power Spreadsheet users, they will find this feature handy to easily move around large documents.

Full screen at startup

Now you can display the Spreadsheet Control in full-screen mode on page load simply by setting the server-side property value: FullscreenMode.

ASP.NET MVC supported

All of these features are also available for the DevExpress ASP.NET MVC Spreadsheet control too.

Try it today

You can test these new features today by downloading the DXperience v17.2 Beta that is available in your download center (for existing customers).

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

Web Dashboard Now Supports .NET Core (CTP)

$
0
0

The DevExpress Web Dashboard can now work on the latest .NET Core framework. While this is a pre-release (CTP), we're excited about this news and want to get your feedback.

.NET Core

The .NET Core 2.0 framework provides several benefits such as performance, flexible deployment, and cross-platform support. That means that you can run our Web Dashboard on Windows, macOS, and Linux.

For example, here is the Web Dashboard running on Linux (click image for larger version):

With .NET Core you can create ASP.NET Core Razor Pages, MVC Views and Controllers, Web API, use Docker, and more.

Getting started

To test our Dashboard in .NET Core locally, please download the latest v17.2 today from devexpress.com.

We've also prepared documentation to help you get started using the DevExpress Web Dashboard in ASP.NET Core:

Create an ASP.NET Core Designer application

Project Status

Once again, this is a CTP version. Report any issues, missing functionality, or suggestions as regular Support Center tickets. We'll be happy to review your feedback and optimize the API based on what we hear. This also serves as a reminder that the API is subject to change until we officially release.

In this CTP version, the Web Dashboard control does not support the following features:

  1. OLAP mode
  2. Export
  3. Localization

We'll continue to work on these features for the final release.

Help Us With Survey

Your feedback will help us decide the future direction. Please take a minute to fill out this short five question survey about your plans for ASP.NET Core usage:

.NET Core Survey - surveyjs.com

Are you excited by the DevExpress Web Dashboard now with the ability to run on .NET Core framework? Drop me a line below.

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry


Adaptive Dialogs in DevExpress ASP.NET Controls (v17.2)

$
0
0

In the v17.2 release, we've updated many of our ASP.NET controls to use adaptive dialogs. I talked about this feature in this recent ASP.NET Spreadsheet post.

Adaptive Dialogs

An adaptive dialog will resize its content automatically according to the screen resolution. For example, here's the DevExpress ASP.NET RichEdit's File Open dialog that now supports adaptive behavior:

@import "moz-extension://a217c570-b15e-4d0d-9030-0f881a494515/shadow.css";
1.00«-+»x

To achieve this, we used the FormLayout and Popup controls in adaptive mode. For v17.2, we added the adaptive layout feature to the Popup control. Check out the online demos of these controls here:

We use our smaller controls within our larger controls. So the DevExpress ASP.NET Scheduler, RichEdit, etc. now get the benefits of these smaller controls because we use them for functionality like dialogs.

Which Controls?

These four major controls now make use of adaptive dialogs now with v17.2:

  1. Spreadsheet
  2. Rich Edit
  3. HTML Editor
  4. Scheduler

You can experience these controls in our updated online ASP.NET demos.

ASP.NET MVC supported

The DevExpress ASP.NET MVC versions of these controls also support adaptive dialogs now.

Try it today

You can test these new features today by downloading the DXperience v17.2 Beta that is available in your download center (for existing customers).

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

DevExpress ASP.NET Menu Gets Adaptive - Side Menu Mode (v17.2)

$
0
0

One of the major themes for the DevExpress ASP.NET Controls in the v17.2 release was 'Adaptive' or the ability to resize content automatically according to the screen resolution.

I've talked about the adaptive features of our other controls here:

ASP.NET Menu Adaptive

With the v17.2 release, the DevExpress ASP.NET Menu also gets an Adaptive feature: Side Menu Mode.

The DevExpress Menu control can automatically transform into a vertical side-menu when the horizontal menu doesn't fit completely on the screen.

You can specify the width of the browser which will determine how the horizontal menu will transform into a side menu. To enable this adaptivity mode, set the EnableCollapseToSideMenu property to true. The new adaptive mode can operate with the existing EnableAutoHideRootItems mode too.

Here is an animated gif to show you how it works:

Experience our online ASP.NET Menu demo here: Responsive Menu

ASP.NET MVC supported

The DevExpress ASP.NET MVC version of our Menu also supports adaptive 'Side Menu Mode' too.

Try it today

You can test these new features today by downloading the DXperience v17.2 that is available in your download center (for existing customers).

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

Dashboards: Mobile Layout for the Web (v17.2 CTP)

$
0
0

Now that the DevExpress Dashboard has been out for a few releases, we're seeing a growing demand from our customers for improving the Web Dashboard usage on mobile devices.

Good news! In this v17.2 release, we have experimented with a Mobile layout to make dashboards more user-friendly and interactive on mobile devices, as they are on Desktop browsers. This new mobile layout will be available as a CTP (Community Technology Preview) in the v17.2 release.

This was a challenging task to adapt a Dashboard that has many visual controls on it and shrink it to fit on mobile browsers. There are some difficulties centering around the Dashboard concept itself. For example, in dashboards, a user interacts with multiple connected items at the same time; but that is not possible on smartphone apps because of the small viewing area.

However, we've come up with a good solution. Our new mobile version will attempt to find a balance between usability of the entire dashboard versus viewing and interacting with one particular Dashboard Item.

To see this in action, check out this animation:

Visit our online demo and experience yourself: https://demos.devexpress.com/Preview/Dashboard/

Gallery View

In our mobile layout, we utilize a well-known mobile UI pattern – the Gallery.

The Gallery allows users to slide between dashboard items sequentially for data analysis or jump directly to an item for futher research.

Besides implementing the Gallery, we rethought a concept of the Dashboard Title and Items' toolbars so that they adapt to become mobile-friendly.

How to enable Mobile Layout

You can use mobile layout with any approach – Web Forms, MVC, .NET Core (CTP), or in a native Client-Side Approach. Follow this link to find more info about extensions: How to work with extensions.

To enable the mobile layout, follow the steps below:

  1. Make sure that your HTML page is mobile-friendly by setting the corresponding ViewPort metatag:
<meta name="viewport" content="width=device-width, initial-scale=1">

This meta tag is a common requirement for Mobile Browsers.

  1. Go to the Web Dashboard declaration and register the Mobile Layout extension using the following code snippet:
function onBeforeRender(sender) { 
  var dashboardControl = sender.GetDashboardControl(); 
  dashboardControl.registerExtension(
    new DevExpress.Dashboard.MobileLayoutExtension(dashboardControl)
  );
}

That’s it. Note that a mobile layout does not replace the classic layout; it’s enabled only in certain conditions:

  • The Web Dashboard control is set to the Viewer / ViewerOnly mode
  • The page is open in a mobile browser

Tip: You can use the Device Mode in the Chrome Developer Tools to test mobile views.

Project Status

Once again, this is a CTP version. Report any issues, missing functionality, or suggestions as regular Support Center tickets. We'll be happy to review your feedback and optimize the API based on what we hear. This also serves as a reminder that the API is subject to change until we officially release.

Known limitations

This current version of the Dashboard's mobile layout does not visually indicate a Dashboard Item Group. This means that dashboard items filtering may not work in an obvious way for the end users. To avoid this issue, we recommend that you not show a dashboard with Groups in the Mobile Layout.

We'll continue to work on improving the Dashboard before the final release.

Are you excited by the DevExpress Web Dashboard's Mobile Layout? Drop me a line below.

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

DevExpress ASP.NET Popup Control - Adaptive (17.2)

$
0
0

Starting with the v17.2 release, the DevExpress ASP.NET Popup Control has a new adaptive mode. In this mode, the popup will resize its content automatically according to the screen resolution. This mode provides the best experience for a user on any device, whether it's on the desktop, a tablet, or a phone. You can also configure the maximum and minimum widths to limit the resizing area. This mode supports a fixed header and footer, which will always be displayed regardless of the scroll position.

Check out the AdaptiveLayout demo page that shows how to create adaptive dialogs using the Popup and FormLayout controls:

Mode Switch

The Popup control can also switch modes. You can show the default popup on wider screens and then switch it to adaptive mode on small screens using the PopupControlAdaptivityMode.OnWindowInnerWidth property:

The following video shows how to quickly create an adaptive form using Popup and FormLayout controls:

@import "moz-extension://a217c570-b15e-4d0d-9030-0f881a494515/shadow.css";
1.00«-+»x

ASP.NET MVC supported

The DevExpress ASP.NET MVC version of the Popup control also supports adaptive now.

Try it today

You can test these new features today by downloading the DXperience v17.2 release.

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

Scalability of ASP.NET Office Controls - Azure, Web Gardens, Farms, & Cloud Support (CTP - v17.2)

$
0
0

We are excited to announce that the DevExpress ASP.NET Office controls, Spreadsheet and RichEdit, are getting improved scalability support.

Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth - Wikipedia

Starting with the v2017.2 release, we're providing a Community Technology Preview (CTP) that supports the following excellent features:

  • Web Applications using these controls can be scaled (in/out) easily
  • "Sticky Session" / "Session Affinity" is not required, any load balancing is welcome
  • Microsoft Azure and any cloud computing platforms with IIS are supported
  • Web Farms and Web Gardens are now supported

Scalability issues are not a problem for most customers. If you're hosting your web application on a single server, then you've not faced any scalability issues. However, for those customers using web apps on scalable hardware then they will be happy to hear about the improved support.

What's the problem?

The ASP.NET Spreadsheet and RichEdit controls are large powerful controls that provide rich functionality. When you open and work on a document in these controls, we need to keep track of the state. Things like the document structures, etc.

Previously, the ASP.NET Spreadsheet and RichEdit controls kept their state of opened documents in the web server's memory (RAM). This approach has an advantage for performance because the parsed document structure was in memory and ready to process the user's requests. However, using RAM to keep state makes the web server stateful and therefore not easy to scale (in/out).

Initially, we came up with a solution for Microsoft Azure that implemented smart routing and used the "Sticky Session" / "Session Affinity" mode to route document-specific user requests exactly to that appropriate web server. Unfortunately, this solution was complex to setup and implement. It also required the "Sticky Session" / "Session Affinity" mode which made balancing the application load less effective. And because it was only available for Azure, it didn't solve other customers who hosted on other platforms like Amazon AWS.

A Better Solution

In the v2017.2 release, the ASP.NET Spreadsheet and RichEdit controls now support an important new mode that allows you to store the opened document states in external storage. This will provide great scalability benefits.

The new mode allows you to not have any state between requests and therefore provides for non-stateful web servers with our RichEdit and Spreadsheet controls. This allows you to host on multiple-server solutions like cloud, web farms, web gardens, etc.

So servers that have no state are treated equally and can process any request. This provides several benefits:

  • load balancers can effectively spread the workload among other “stateless” web server instances
  • another great benefit of external state storage is that your web servers can be rebooted/updated/removed with no additional code required to save (or rescue) the state (scale in)
  • new web servers can also be added on-demand and they start the same as any other web servers in the pool. Therefore they can start participating in the application request processing right away (scale out)

Who is it for?

This new scalability mode and solution is for those who are developing scalable application with DevExpress Office Controls. This new solution allows you to build applications that are hosted on top of cloud computing platforms (with IIS), Microsoft Web Farms, or Web Gardens.

Storage Options

The 'document states' can be stored externally in one of following storage containers:

  • MS SQL Server database
  • Redis in-memory data structure store

We chose the above two because of their popularity. Supporting a storage container requires us to create a special 'Document State Provider' interface. We published two such providers for Microsoft SQL Server and Redis respectively. And it's also possible to develop others providers to support more storage containers.

How to enable it?

To turn on the new feature, set the desired document provider in your project's Global.asax file:

void Application_Start(object sender, EventArgs e) {
    ...
    var provider = new DevExpress.Web.SqlOfficeStateProvider.SqlOfficeStateProvider(connectionString);
    // or
    //var provider = new DevExpress.Web.RedisOfficeStateProvider.RedisOfficeStateProvider(connectionString);
    DevExpress.Web.Office.DocumentManager.StateProvider = provider;
    ...
}

In the sample code above, the connectionString refers to the connection string for your storage.

GitHub Sample

To help you test this, we've created and published a sample repo on GitHub:

https://github.com/DevExpress/aspnet-office-solutions

This repo consist of several solutions and projects:

  • Document state providers:
    • RedisOfficeStateProvider - Redis using document state provider
    • SqlOfficeStateProvider - SQL Server using document state provider
  • New solutions examples for MS Azure (code is the same for Web Farms and Web Gardens):
    • Azure-SqlOfficeStateProvider-Starter - Azure solution example using the SqlOfficeStateProvider
    • Azure-RedisOfficeStateProvider-Starter - Azure solution example using the RedisOfficeStateProvider

In the same repo, you'll also find the previous solution with custom smart routing and Session Affinity:

  • Azure-SessionAffinity-Starter

Learn more details on the repo's Readme file.

Give Us Your Feedback

Your feedback will help us decide the future direction. Please take a minute to fill out this short four question survey about your plans for ASP.NET Core usage:

.NET Core Survey - surveyjs.com

Are you excited by the DevExpress Office Controls support for scalability? Drop me a line below.

Thanks!

Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET AJAX Control Toolkit v18.1.0 - Now Available

$
0
0

It's 2018 and we're delivering another ASP.NET AJAX Control Toolkit release for you that brings several useful bug fixes.

Update Your Version

Please upgrade your ASP.NET AJAX Control Toolkit version to the latest release. You can download our useful installer here:

Or use the Nuget libraries:

ASP.NET AJAX Control Toolkit Nuget packages

Then give us your feedback on GitHub.

Bug Fixes in v18.1.0

All controls

  • Item 369 - Error when installing the toolkit v17.1.1 to Visual Studio 2013

Accordion

  • Item 360 - Accordion does not fire an ItemCommand event on postback

AjaxFileUpload

  • Item 351 - Filename is not encoded on uploading a file with AjaxFileUpload
  • Item 364 - Unsupported characters in AjaxFileUpload Error Message
  • Item 377 - “XML Parsing error: no root element found” in the Firefox browser’s console after uploading a file using AjaxFileUpload

AutoCompleteExtender

  • Item 349 - AutoComplete extender completion list is hidden when CompletionInterval = 0
  • Item 385 - AutoCompleteExtender - The “change” event is raised twice in Chrome and FireFox

CalendarExtender

  • Item 331 - Calendar widget doesn’t work if invalid value typed into associated text field.

CascadingDropDown

  • Item 374 - Child cascading dropdowns do not reset to prompt on parent value change.

ComboBox

  • Item 400 - A dropdown ComboBox list is displayed incorrectly when a textbox has the "position: absolute" style

HtmlEditorExtender

  • Item 344 - Invalid argument error in HtmlEditorExtender

Rating

  • Item 339 - Sys.Extended.Deprecated is undefined in Rating control
  • Item 379 - Rating_Changed event fires twice

Try DevExpress ASP.NET

We’d like to thank you for installing the DevExpress Edition of the AJAX Control Toolkit and look forward to your feedback as you begin using it.

When we took over the fabulous ASP.NET AJAX Control Toolkit, our goal was to reach those web developers who want to use great web user interface controls for their web projects and DevExpress ASP.NET provides that and much more.

Try the free DevExpress 30 day trial.

Email: mharry@devexpress.com

Twitter: @mehulharry


Your Next Great .NET App Starts Here

Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).

DevExpress ASP.NET MVC vs DevExtreme MVC

$
0
0

We at DevExpress offer two major libraries that support Microsoft's ASP.NET MVC framework:

  1. DevExpress ASP.NET MVC Controls
  2. DevExtreme MVC Controls

In this blog post, we'll dive into the two seemingly similar libraries that both offer controls for ASP.NET MVC. We'll look at the differences, similarities, pros, cons, and consequences.

Let's start by looking at server-side versus client-side web development because this choice will be critical in which library will work for you.

Architectural Choices & Consequences

One of the most important concerns for the choice of a web development platform is an architectural one: traditional server-side or client-side UI rendering. It is important because it has many consequences. I recommend reading this section but for those who don't have time, here's a short tldr:

tldr; The choice of server- vs client-rendered UI influences the overall architecture of a software system to such an extent that it is advisable to analyze this concern before making decisions about specific component libraries.

Server-Side

If you use server-rendered UI, this implies you need a server powerful enough to render pages dynamically (per request). Typically this works using template files on the server that describe the pages, with an extension model to insert the dynamic content. Both frameworks use this approach with ASP.NET WebForms using ASPX pages and ASP.NET MVC using Razor files as templates.

While the component models are different between WebForms and MVC, they are both rendered on the server-side .NET environment. This means that the .NET-based data access methods can be used, business logic written in C#, and state kept on the server-side. Even dynamic browser- or user-specific rendering may be performed on the server, perhaps depending on the user locale or permissions queried from a security system.

This model empowers programmers who feel at home in the server environment. However, it can be expensive with ASP.NET WebForms because of the numerous server round trips required for rendering purposes. It also makes it almost impossible to deploy the resulting web application in environments where a server might not be available, such as Electron-based desktop apps or Cordova-based mobile apps. Great care is required to prevent scalability issues because server resources are precious. Also, it's not always easy to add infrastructure, for instance, when the server-side state management has not been structured properly.

There is also a gap to be bridged with this model: for instance it might be required to write certain pieces of code twice, in C# and JavaScript, like those required to perform data validation tasks both for immediate user feedback on the client side and for server-side business logic purposes.

However, if you're building a public facing web-site, server-side rendering is great for SEO (Search Engine Optimization). Because the HTML content is generated on the server, search engines like Google can crawl, index, and cache it. Client-side rendering cannot easily do this without additional work.

Client-Side

With client-rendered UI, a server is not strictly necessary. HTML and JavaScript content finds its way onto the client somehow -- it can be downloaded as static content from a server, but it can also be deployed as an installation package for desktop or mobile targets.

Because the HTML and rendering of those UI elements will now be handled by the client browser, your client-side app mostly needs the data from the server. Typically, you'll need to create web services to provide this data. ASP.NET MVC WebApi may be used to implement such services, which again gives the developer the chance to use .NET-based data access mechanisms, but additional protocols are required, for instance, to query data dynamically from services, and to transfer it back to the client.

Components used by the client to render complex UI are written in JavaScript (or a language that compiles to JavaScript, like TypeScript), and developers usually choose application-level frameworks like Angular or React that help them structure the client-side application, but also require integration with component libraries. This model is reminiscent of simple client/server applications, only using web standard protocols for service communication and data access. It is possible to create full-stack JavaScript-based application systems if the services are written in JavaScript (probably for Node.js), and due to the inherent stateless nature of the services it is usually easy to scale servers as required. Generally, the server-side infrastructure requirements are less complex with this architecture, so that cloud deployments are easy and enable automatic scaling setups.

Client-rendered UI is the architectural model of choice for most modern web/mobile applications and a growing number of desktop ones, including Office 365, Skype, and Microsoft Visual Studio Code. The best recommendation to make this decision is to weigh the pros and cons carefully as they apply to your plans, the expertise of developers on your team, your customer base, and other factors.

This brings us to the major difference between our two MVC set of controls. While both are server-side ASP.NET MVC controls, the DevExtreme MVC Controls will render client-side UI because of they wrap client-side DevExtreme JavaScript controls in ASP.NET MVC controls. On the other hand, the DevExpress ASP.NET MVC controls will render server-side HTML and then deliver this to the client.

Let's now take a look at how these two libraries got started to understand our motivations for creating them.

History

1. DevExpress ASP.NET MVC Controls

In April 2009, Microsoft released ASP.NET MVC and many developers quickly became interested in this interesting new web framework. Many of our customers requested that we provide UI controls for ASP.NET MVC.

At the time, our ASP.NET WebForms library provided solid, stable, and feature-rich controls. So we made the decision to take the API, features, and rendering of our ASP.NET WebForms controls and provide them as native MVC controls. This approach had the benefit of saving time and delivering you a solid set of controls with plenty of features.

In 2010, we introduced the DevExpress ASP.NET MVC Controls as a beta with only five controls. Then, for the next seven years, with each release we continued to grow the controls, features, and performance. Today, the DevExpress MVC set of controls is solid and has over 65+ controls.

Around the same time, JavaScript was also gaining popularity with web developers...

2. DevExtreme MVC Controls

Since the late 2000s, JavaScript's popularity has continued to rise. And serveral years ago, web development shifted decidedly towards client-side JavaScript-based technologies like jQuery, Node.js, Angular, Backbone, React, etc. With good reason because the client-side development model provides benefits. Many of our existing web customers asked us to provide JavaScript controls that rendered exclusively on the client-side.

So in 2011, we tasked an independent group of our developers to build a fully client-side set of JavaScript controls that are similar in features to our server-side controls. After a year of development, the DevExtreme library was born in 2012. We've continued to develop this client-side library since then to provide more controls, features, stability, and support for other client-side frameworks. Then, around 2014, some of our web customers expressed a need for a set of MVC controls that used the client-rendering approach. So we decided to wrap the client-side DevExtreme JavaScript controls as native server-side MVC controls.

In June 2016, the DevExtreme MVC Controls were then introduced as a Community Technology Preview (CTP). Now, after several releases where the team has worked hard to improve the DevExtreme MVC Controls, they provide over 65+ controls, features, and great integration with ASP.NET MVC (and ASP.NET Core).

What's right for you?

While the architectural considerations should help push most projects in their preferred direction, it is also possible to compare our libraries on the basis of specific technical merits. The following overview may not be exhaustive - please feel free to ask about topics you feel are missing and we will extend the post.

Recently, we've gotten questions from developers asking:

  • What do you recommend for my scenario?
  • What are the main differences between the two products?

To help you decide, please read the following four sections that compare both of these libraries strengths and weakness:

1. What's Included & Missing

On first glance, it would appear that both libraries have about 65+ set of MVC controls and they provide the key controls like Data Grid, Charts, Editors, Navigation, etc. However, not all controls are available in both libraries and this can be a key deciding factor. For example, if you need Spreadsheet, Ribbon, or RichEdit controls then those will only be available in the DevExpress ASP.NET MVC Controls Suite.

Here's a breakdown of which controls are available in each library:


DevExpress ASP.NET MVC Controls (Server-Side)DevExtreme MVC Controls (Client-Side)
Grid
PivotGrid
TreeList, TreeView
Scheduler
Navigation Controls
Editor Controls
Charts & Gauges
Forms
Reporting Suite
RichEdit
Spreadsheet
HTML Editor
Ribbon
FileManager
CardView
Vertical Grid
Docking Suite
Spell Checker
ActionSheet, ScrollView, SlideOut
Bar, Circular, Linear Gauge
Map, TreeMap, VectorMap
RangeSelector
Bullet
Sparkline
FilterBuilderIntegrated into other controls
Box, ResponsiveBox
Toast

2. Rendering Pros/Cons

The DevExpress ASP.NET MVC Controls provide server-side rendering.

  • Pros: Solid with (many more) years of releases. More powerful controls available.
  • Cons: Windows IIS servers hosting. Callbacks, however, data is submitted via native forms, MVC Forms, or MVC Ajax Forms and can be accessed on a controller's action.

The DevExtreme MVC Controls provide client-side rendering.

  • Pros: They emit semantic markup that is rendered by the client browser. User interaction is faster. Tighter integration with ASP.NET MVC framework.
  • Cons: For interactivity and run-time customization, you'll have to deal with the core JavaScript widgets.

A. Performance

The DevExtreme MVC controls have some minor advantages in terms of performance due to their client-side rendering. Mainly, the user interaction will feel more responsive.

For example, when grouping rows in the DevExtreme MVC Data Grid, you'll find that it will only retrieve the data for the rows that it needs to update to show the grouped layout. In the browser tools image below, we can see that DevExtreme MVC Grid is only getting JSON for the data rows from the server and the Grid will render and update the UI accordingly:

However, the DevExpress ASP.NET MVC GridView will do a partial page update. Meaning that it will retrieve the HTML for the new grouping layout from the server and then deliver those to the client and render them in place. A partial page update looks like the following when sent across the request/response chain:

Callbacks require additional server effort to re-rendering these HTML snippets for (potentially) large numbers of clients and therefore increase the data volume. However, on a fast connection, you'll likely not notice a major difference in speed.

B. Semantic HTML Render

As mentioned, the DevExtreme MVC controls provide semantic markup when rendered (click image for larger version):

The larger DevExpress ASP.NET MVC controls like the Grid uses a Table based layout for rendering. However, the navigation controls (pager, menu, navbar, etc) have semantic rendering that are based on lists, divs, etc.:

Both of these rendering approaches are compliant with HTML5 standards.

3. Data Binding

The DevExpress ASP.NET MVC Extensions are server-side controls and therefore, they can easily bind to any server-side .NET data layer. However, client-side binding is not supported in these server-side controls.

The DevExtreme MVC Controls provide various ways of binding data-aware controls on the client side. These controls also provide a server-side data layer that allows you to bind on server-side as well. This mechanism doesn't change the architectural considerations about data binding, it merely provides web services for data access automatically, based on existing server-side data sources.

4. .NET Core support

Both libraries support the .NET Framework 4+ and the same set of browsers.

However, the DevExtreme MVC Controls also support ASP.NET Core 1.0.1 and later (including 1.1, 2.0+), while the DevExpress ASP.NET MVC controls do not.

While not part of this comparison, the new DevExpress ASP.NET Bootstrap Core controls exclusively support the ASP.NET Core framework.

Use Together

Keep in mind that if you choose classic full framework ASP.NET MVC (not ASP.NET Core) then you could use both of our MVC controls together to complement each other. For example, you can use the DevExpress ASP.NET MVC Spreadsheet and DevExtreme MVC Grid in the same ASP.NET MVC project.

Both of these MVC libraries are also offered in the DevExpress ASP.NET Subscription too!

The Choice is Yours

To recap, both of MVC control suites offer you many great UI controls and they can also be used together.

However, if you need to choose between them then I'll offer my observations as a the Web Program Manager who's interacted with many developers:

  • Devs who prefer client-side rendering typically choose the DevExtreme MVC Controls
  • Fans of C# and server-side rendering typically choose the DevExpress ASP.NET MVC Controls

Hopefully, the information above will help you choose. If not, then please leave a comment below on how I can help.


Email: mharry@devexpress.com

Twitter: @mehulharry


DevExtreme Localization Adds Spanish and Brazilian Portuguese Languages (v17.2.5)

$
0
0

DevExtreme provides an easy way to localize UI widgets. It uses the localization module to load translations of specific captions/messages such as 'Back', 'Cancel', 'Select', 'Loading', 'Search', and others to the corresponding languages. The DevExtreme locale extensions are provided by separate ready-to-use predefined dictionaries with our installation. These dictionaries include all the captions, titles, and messages that are used in DevExtreme UI widgets.

With the v17.2.5 minor release, DevExtreme now provides you the first community localizations for Spanish (es) and Brazilian Portuguese (pt-BR). This now make six languages that DevExtreme Localization provides messages for:

  1. English (en)
  2. German (de)
  3. Japanese (ja)
  4. Russian (ru)
  5. Spanish (es)
  6. Brazilian Portugues (pt-BR)

To localize dates, numbers, and currencies, you can use third-party libraries - Intl or Globalize. In addition DevExtreme allows you use Globalize library to localize messages. Learn more about Localization by reading this helpful blog post.

GitHub Contribution

In April 2017, we moved the DevExtreme library to GitHub which provides many benefits like access to pre-releases and sprints. However, it also means that our code is available to view and contribute to!

In fact, these two new translations were provided by one GitHub community member. I'd like to thank GitHub user: @pedrofurtado for these contributions. I'd also like to thank users perrich, Laupe, and jdvjdv82 for their contributions too. Their contributions of French and Czech localizations are under review now and we'd like your help with these too.

Help Us Translate

We need your help to translate more languages.

Specifically, we have two incomplete translations: French and Czech.

Here's how to help:

  1. Read our Contribution Guide (https://github.com/DevExpress/DevExtreme/blob/17_2/CONTRIBUTING.md) and Section 5 of the License Agreement (https://github.com/DevExpress/DevExtreme/blob/17_2/LICENSE.md#5-submission-of-contributions)
  2. Fork the DevExtreme repository.
  3. Commit your translation to /js/localization/messages/ folder in your fork. We recommend you use the latest development branch (currently 18.1).
  4. Create a pull request - Our engineers will check it, merge it and cherry-pick to previous versions.

We'll include these two new localizations in a future minor DevExtreme release (v17.1.10) too.

Are you using DevExtreme with a different localization?

Drop me a line below. Or better yet, post a screenshot link of your DevExtreme enabled website. Thanks!


Email: mharry@devexpress.com

Twitter: @mehulharry

Bootstrap 4 Support - (v17.2.5)

$
0
0

It’s literally taken us years to do it, but Bootstrap 4 has finally arrived! - Bootstrap Blog

Last week, the Bootstrap team officially released Bootstrap 4 and I'm happy to say that the excellent DevExpress Bootstrap controls for ASP.NET WebForms and ASP.NET Core support this latest Bootstrap release.

I recommend reading the blog post to see what's new and test the new examples. There's also a helpful migrating to v4 guide.

Download Latest Version

The v17.2.5 minor release is now available and it features updated the project templates for our Bootstrap Controls. Download and update your installations.

DevExtreme Support

The DevExtreme team is currently working on updating the DevExtreme themes and the ThemeBuilder tool to support Bootstrap 4. Therefore, you'll see official DevExtreme support for Bootstrap 4 in the upcoming v18.1 major release.

The DevExtreme Reactive controls will have support for Bootstrap 4 in the coming weeks. You can track this pull request for full updates.

Classic ASP.NET/MVC

The classic DevExpress ASP.NET controls that support ASP.NET WebForms and MVC can be used with Bootstrap (up to version 3). And the team is looking into supporting Bootstrap v4 in a future release. However, as I've written before, when using the Bootstrap framework, it's better to use the DevExpress Bootstrap Controls which were specifically written for the Bootstrap framework.


Email: mharry@devexpress.com

Twitter: @mehulharry

Watch: Getting Started with DevExtreme MVC Controls

Upgrade to jQuery v3.x - DevExpress Controls

$
0
0

On January 18th, 2018, two moderate security vulnerabilities in jQuery were discovered (CVE-2016-10707, CVE-2015-9251):

These vulnerabilities are specific for jQuery versions older than v3.x and we consider them to be relatively low in severity because:

  • CVE-2016-10707 - does not affect jQuery v1.x/2.x nor jQuery v3.x. It’s a transient issue which existed in a specific pre-release build

  • CVE-2015-9251 - While this vulnerability could “expose your site to XSS attacks”, the pre-conditions to this are not common. The app must connect to 3rd party hosts and those hosts need to be hacked/misconfigured

However, if you've not upgraded to jQuery v3.x yet, we encourage you to for two main reasons:

  1. jQuery v1.x and v2.x are officially at end-of-life
  2. To patch your website of these recent vulnerabilities

In this post, I'll discuss which DevExpress controls use jQuery, how to update them, and our future plans.

DevExpress Plans

The DevExpress ASP.NET (WebForms, MVC, and Bootstrap) controls use jQuery v1.1.x. (We embed jQuery libraries delivered in our assemblies only if Embedding Third-Party Libraries is enabled).

Prior to v17.2, jQuery was obligatory for DevExtreme projects. Since v17.2, it's optional but still widely used by lots of DevExtreme users.

We plan to update to jQuery v3.x for past minor releases and upcoming major releases. Switching to a different jQuery version could lead to a breaking change so we are performing serveral tests before we update to jQuery v3.x.

The DevExtreme MVC controls will be upgraded to use jQuery v3.x in the following releases: v17.1.10, v17.2.6 (coming soon), and the next major release v18.1.

The DevExpress ASP.NET MVC controls' project templates will be upgraded to jQuery v3.x in the upcoming v17.1.10 and v17.2.6 minor releases. Then, in the v18.1 major release, we'll update all ASP.NET controls (WebForms, MVC, and Bootstrap) to use/reference jQuery v3.x.

However, we recognize that many developers use jQuery independently from our controls and to you, I would recommend upgrading jQuery too (with proper testing).

Upgrade jQuery

The v17.2.6 minor release will be available in a couple of weeks and I recommend that you install that for the easiest way to upgrade to jQuery v3.x.

You can upgrade your website that uses the DevExpress ASP.NET controls, DevExtreme MVC Controls, or DevExtreme client-side controls today because they both support jQuery v3.x.

The jQuery team has provided an excellent upgrade guide:

https://jquery.com/upgrade-guide/3.0/

Because there have been major changes in jQuery from v1.9/2.0 to 3.x, they've created a helpful jQuery Migrate Plugin:

For my own sites and blogs, I’ve used jQuery Migrate to identify problem areas (and they were few and far between, generally to do with methods that had been deprecated). jQuery Migrate does two things: it logs problems to the console (so you can see what needs changing), and it also adds back the deprecated stuff. In other words, the JS on one’s site still works and you get an indication of what to change in order to upgrade. - Julian Bucknall, DevExpress CTO

Note: For the client-side DevExtreme controls, you can also upgrade to jQuery v3.x or you can change the underlying client-side framework. However, this is a costly suggestion and one that you're not likely to do unless you're starting a new project. In which case, consider using Angular or React (which do not rely on jQuery).

If you run in to any issues then please contact our support team and they can help you.

Thanks!


Email: mharry@devexpress.com

Twitter: @mehulharry

IE 9/10 (And Old Android Browsers) Support Ending in DevExtreme - v18.1

$
0
0

In the next major release of DevExpress (v18.1), we are dropping support for Internet Explorer (IE) 9 and 10 in DevExtreme and dependent products. The following subset of products will be affected:

  • DevExtreme
  • XAF Web & Mobile
  • The following ASP.NET controls and their MVC extensions (these controls are built with DevExtreme):
    • ASPxQueryBuilder
    • ASPxWebDocumentViewer
    • ASPxReportDesigner
    • ASPxDashboard
    • ASPxDashboardViewer

We wanted to drop support in 2017 but we understand that there are a small group of customers who still need IE 9/10. This is why we've been prolonging our support for IE9/10 in other ASP.NET controls for a while.

In a few months when v18.1 is released, DevExtreme controls (client-side and MVC) will no longer support IE 9/10. I recommend upgrading to the latest versions of IE, however, Microsoft recommends that you switch to Microsoft Edge. Of course, there's plenty of other great browers available like Chrome, FireFox, etc.

Microsoft does not support IE9 and IE10

Microsoft has stopped supporting IE9 and IE10 since January 12, 2016. It officially claims that:

Beginning January 12, 2016, only the most current version of Internet Explorer available for a supported operating system will receive technical supports and security updates. Internet Explorer 11 is the last version of Internet Explorer, and will continue to receive security updates, compatibility fixes, and technical support on Windows 7, Windows 8.1, and Windows 10.

For us at DevExpress, it's costly to support older browsers for testing compatibility and patching older versions for support. However, there are two main concerns:

  • We can not take advantage of modern web technologies (and approaches). That means we ca not deliver the best possible performance, user, and developer experience with DevExpress products. That especially matters for modern client-side JavaScript applications that require modern browser features.
  • Using older browsers puts you and your organization at risk for security vulnerabilities.

That's why we've made the decision to remove explicit support for IE9 and IE10 in the mentioned subset of products and we strongly encourage you to do the same, if you have not already done so.

Browser Usage Share

According to the world-wide browser usage statistics the IE versions older that 11 share just about 0.1% of users.

Old Built-in Android Browsers

An excellent feature that we want to utilize for DevExtreme is CSS Flexbox Layout. Unfortunately, it is not supported in the old built-in Android browsers (up to Android 4.3.x). Therefore, will stop supporting old Android browsers in v18.1 as well. Be aware, this might affect those who are developing hybrid mobile apps for Android.

Feedback

I would love to hear your feedback on this decision.

Will this affect you?

Drop me a line below or email me.

Thanks!


Email: mharry@devexpress.com

Twitter: @mehulharry

Viewing all 398 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>