Using Visual Studio 2017 RC with DevExpress: some caution needed

As I posted yesterday, the newly published DevExpress Universal v16.1.8 supports the Release Candidate for Visual Studio 2017. VS2017 RC is a pretty stable release; however, you should be careful: this is still a beta and you may encounter issues as you experiment with it together with our controls, frameworks, and tools.

CAUTION SPEED BUMPAs a brief example, here’s an issue that’s simple to appreciate: VS2017 RC does not include an offline help viewer
VS2017 RC Support: The IDE doesn't include an offline Help Viewer, CHM and PDF options are available as offline documentation

Apart from this one, these are the issues we’ve identified so far (and be aware that these issues only occur with the VS2017 RC build, earlier IDE versions are fine). Some of them have been reported to Microsoft, and with some of them we’re investigating various workarounds.

LINQ to SQL related issues:

The Project Wizard's "Generate Sample Data" functionality requires LINQ to SQL components to generate data context from DBML data model. Visual Studio 2017 installation doesn't enable the necessary modules by default:
VS2017 RC Support: ASP.NET WebForms/MVC Project Wizard - "Generate Sample Data" option on the "Choose Layout" tab is disabled

The LINQ to SQL option in the WinForms and WPF Data Source Configuration Wizards requires the corresponding Visual Studio modules, which are not installed by default:
VS2017 RC Support: Availability of "LINQ to SQL" option in WinForms and WPF Data Source Configuration Wizards depends on Visual Studio configuration


Because of changes in the IVsProject.AddItem method implementation in VS 2017, a null reference exception is thrown in the DevExtreme design dll:
VS2017 RC Support: "Multi-Channel Application" template - NullReferenceException is thrown during project generation

There seems to have been a change in the folder structure in VS2017 RC, which causes compile errors. We need more time to investigate:  
VS2017 RC Support: "WCF OData Service" template - compile errors in generated projects


XPO uses Visual Studio's Modeling SDK as the basis for the UML editor, but this is not yet shipped as part of VS2017 RC:
VS2017 RC Support: Persistent class visual designer is not available


The Model Editor does not load at first; the “fix” at the moment is to just try again:
VS2017 RC Support: Model Editor does not load on first attempt


Several issues here. We need more time to investigate.

VS2017 RC Support: "g2x2" template produces incorrect results

VS2017 RC Support: "Add Parameter" refactoring incorrectly resolves argument type

VS2017 RC Support: Test Runner doesn't run xUnit tests in a .NET core app

VS2017 RC Support: Test Runner doesn't run unit tests created with Visual Studio


Not particularly associated with VS2017 RC per se, but instead to do with UAP (Universal APP Platform) 5.2.2. Something to do with non-generic collections, perhaps? Anyway, it’s been reported to Microsoft:
VS2017 RC Support: BadImageFormatException is thrown in visual designer if XAML contains certain DevExpress controls


Of course, if you do run into any other issues with VS2017 RC, please contact our support team. They’ll be happy to investigate and help.

DevExpress Universal v16.1.8 supports Visual Studio 2017 RC

Earlier this morning we released v16.1.8 of DevExpress Universal. Normally such a minor release would not necessitate a blog post – after all, minor releases are about bug fixes and performance enhancements and not by definition about new features – but this time we wanted to highlight some fresh functionality that coincides with an important announcement by Microsoft at their Connect(); conference in New York.

That announcement? Microsoft have released the Release Candidate of Visual Studio 2017. VS2017 has numerous new features and enhancements, too many to detail here, but one of them is kind of important from our viewpoint: they’ve changed the installation procedure for not only Visual Studio itself (you can install only what you want – biggest change: no need to install .NET support if you’re not developing for that run-time), but also of external components, libraries and plug-ins as well. To help you test out this new IDE with your favorite component and tools library, we’ve added VS2017 RC support to our installer.

So, hurry over to the Download Center, download DevExpress Universal 16.1.8, install into VS2017 RC, and enjoy!

DevExpress Universal v16.1: Breaking Changes

It must be a truism by now, almost certainly proclaimed by Arthur C Clarke, that Any sufficiently advanced software has breaking changes in a major release. Ours, regrettably perhaps, is no exception. 

In this post, I’d like to emphasize the protocols we have for breaking changes and releases. I am embarrassed to say that we have, to put it mildly, not been very diligent at following them of late, for which I apologize on behalf of DevExpress. Rest assured that over the past few months we have been putting into place some stronger policies with our dev teams about how we expose breaking changes, how we try to avoid them, and how we publicize them.

Fixing software...In essence: breaking changes will be limited to major versions only, as much as we are able. That’s point one. We are essentially saying: here’s a new release with some great new features but in order to provide them we had to refactor the infrastructure (our data classes are a strong example of what I mean), change the API, or modify the behavior somewhere. Changes due to some API being modified or retired or refactored will trigger “deprecated” warnings in your code for at least one major release, preferably two. So, as an example, if the FooBar control’s ShowMe property is being deprecated for a new Show() method in v16.1, then the property should be marked as obsolete in v16.1 and v16.2 (and still work as before) and will disappear in v17.1. We recognize that some customers do not automatically upgrade to a major version straightaway (probably due to breaking changes, sigh), but need some time to evaluate and test whether the upgrade is worth applying or not. I personally do not recommend skipping more than one major version. (In brief: Turn on warnings! Test, test, and test again!)

As part of this effort, we are revamping how we report breaking changes. Prior to this, I’m afraid we could be a little too terse with the descriptions in our breaking changes list. This was bad in a couple of ways: first, it sometimes wasn’t at all obvious how to fix your code, and second, it increased the workload on our support team as the inevitable questions came in. So, from now on, you should see more complete details in our entries for the breaking changes page.

I’ll expand on this by stating that we should formally publicize the changes somehow, rather than just sweeping them under the metaphorical carpet in a page that is hard to find. This could either be by email (although I would guess that the majority of recipients would not read it or even complain about spam) or as a blog post like this. Personally speaking, I would rather a blog post: it’s stays up and can be found in the future, it can be updated to expose more details if needed, it’s more conversational.

Point two is that we recognize that bug fixes we provide in minor releases may also break code. A bug fix is, in and of itself, a breaking change, albeit a revision to repair unwanted behavior. However, we shall do our utmost in those situations to (a) minimize the impact and breadth of these required changes, and (b) to publicize them to our customers. Our overall aim is to make updating to the next minor release as uneventful as possible; after all, the biggest reason to update is to fix bugs that you may (or may not yet) have encountered.

Point three is that undocumented classes, interfaces, methods, and properties are fair game. Please try not to use undocumented identifiers in your code. Assume they will change at a moment’s notice. If the support team supply a workaround that uses undocumented identifiers, we shall be putting a strong warning in the post that the workaround may break when the official fix is provided.

Without further ado, here is the full list of breaking changes for Universal v16.1. You will see some that are API changes and that will possibly break your code, and some that are behavioral in nature (for example, the iOS theme in ASP.NET has changed) and should please your users. Note that this list is still being updated as far as details go – although we’ve released the beta, the release is still a week or so away – but you should not see any new changes being reported.

I and my fellow members of the management team are interested in hearing your views on breaking changes. If you have feedback or comments, please comment here (we shall all see it) or email me at and I will circulate the responses among the team. As always, thank you for choosing DevExpress.

DevExpress Universal v16.1: Webinar schedule

Given the recent blogging on these community pages, you may naturally have already come to the conclusion that Universal v16.1 is getting close to release. You are not far wrong: the finishing touches are being applied, the latest tests are being run, the final documentation is being written. The code is ready to beta if you are a Universal customer. Time then for some webinars to show you what’s new, how it looks, and how it works.

If you visit our webinars page (it’s easy to remember:, you’ll see that we have set up four:

6-Jun-2016, 10am Pacific. v16.1: What’s New for Windows Developers. Join Paul Usher and me to learn about the new products and features shipping inside our updated WinForms and WPF Subscriptions.

7-Jun-2016, 10am Pacific. v16.1: What’s New for ASP.NET Developers. Join Mehul Harry and Don Wibier and learn about the new products and features shipping inside our updated ASP.NET Subscription.

8-Jun-2016, 10am Pacific. v16.1: What's New for Reporting and Dashboards. Paul and I again, demonstrating all the new features DevExpress will introduce across the Reporting and Dashboard platforms.

9-Jun-2016, 10am Pacific. v16.1: What's New for HTML5 and Mobile. Mehul and Don review the newest products and features shipping inside DevExtreme v16.1.

There’s plenty of time to register, but remember it’s first come, first served. Spaces are limited so my advice is to register early to make sure of your seat. See you online in June!

DevExpress VCL Subscription supports RAD Studio 10.1 Berlin

We recently released v15.2.5 of the DevExpress VCL Subscription to our subscribers. There were a couple of hidden new features in there, and I wonder how many people spotted them before reading this official announcement.

The first new feature was support for RAD Studio 10.1 Berlin, which was released a day or so ago. So if you have already installed RAD Studio Berlin (or are about to), you can immediately download v15.2.5, install it, and be productive in moments.

The second new feature is a new control, the Tile Bar Control. We were so pleased with the way this control turned out that we decided to publish it as part of a minor version so you could use it immediately in your applications, rather than having you wait for v16.1. So, what is a Tile Bar Control? Basically, the Tile Bar implements a tile-based menu. It consists of equal-sized tiles arranged in a single row.

DevExpress VCL Tile Bar Control

Furthermore any tile can have a dropdown associated with it. In this case, the tile displays a dropdown button on the side. In the image above the Products and Customers have this dropdown. Here’s the result of clicking the button:

DevExpress VCL Tile Bar Control: dropdown

As can be deduced from looking at the images, the Tile Bar control is fully touch-capable.

To show how to use this new Tile Bar, we’ve added a new demo application: the Touch-enabled Hybrid sample application.

Please download v15.2.5, install into RAD Studio 10.1 Berlin, and take a look at this new control. Let us know what you think.

More Posts