Major speed enhancements in WinForms grid (coming soon in v17.2)

Now that we’ve published the beta for v17.2, it’s time to reveal a major new enhancement for our WinForms grid. After reading this, I’m going to bet you’ll be downloading the installer and trying it out for yourself. Let us know your results!

WinForms. It’s been around since the very first days of .NET. Our first control for the run-time, released before .NET had even come out of beta (2002!), was XtraGrid, and we’ve released numerous other controls and suites for the platform since then. And after 15 years, Microsoft has pretty much frozen new development for WinForms. It’s got that taint of “legacy”.

And yet… People are still writing new thick-client apps for Windows. They have existing successful business apps in daily use that need maintaining and enhancing. Indeed, in every major release we provide new functionality and even new controls for WinForms. It is not going away.

MicrosoftDirectXOne big issue is that, compared to 15 years ago, the monitors and display adapters we use for Windows have become faster and have much higher resolution and WinForms has not kept up. We are now talking about and using 4K screens, so called because they are roughly 4,000 pixels horizontally (the main standard is 3840×2160, which is twice the resolution horizontally and vertically of the 1080p standard, or 4 times the number of pixels). Not only that, but the standard for drawing graphics on the screen has changed: it used to be GDI+ but is now DirectX. One of the big differences between the two is DirectX renders graphics through hardware acceleration, whereas the older GDI+ does not; simply put, DirectX is faster. Poor old WinForms still uses GDI+ under the hood.

Given all this, our WinForms team at DevExpress decided to do an experiment, or a spike in development-speak: could they take one of our more complicated WinForms controls—oh, let’s say that original control we wrote, the good old data grid – and change its rendering code to use DirectX and hardware acceleration instead of the “built-in” WinForms GDI+? Would anyone notice the purported speed improvements?

[…time passes, lots of work is done…]

Well? The result? Wow. To be blunt: this is going to revolutionize WinForms.

A big example: one of the most intensive rendering tasks we can do with the data grid is to scroll the rows in the grid pixel-by-pixel. On one of our hi-res test machines, with GDI+ we get about 22 frames per second. In other words, what’s happening in crude terms is for each frame the code is scrolling the data rows by a pixel and then adding another single row of pixels. Every second on the test machine, we can do that 22 times with GDI+. Just about flicker free. With DirectX? 72 FPS, over three times faster. That’s just butter smooth. Our competition, for the same task, is way behind (which also goes to show how well we’d optimized the grid up to now).

With a scroll by page example (where each frame is a new page), we used to get 25 FPS. With DirectX, 35 FPS.

But that’s not all. In essence, all of this work is done way down in the depths of the grid. The DirectX grid is totally compatible with the old GDI+ grid: all that needs to be done is to set a single option. So, you already have an app with our grid but want that extra rendering speed? Recompile with v17.2, set the option, and you’re away. Get on your users’ Christmas card lists again.

There are some limitations that you should be aware of with this new functionality. The biggest one is that it does not work under Windows versions that are older than 8, with Windows 7 being the biggest example. I’d have to say that, given that the end of extended support for Windows 7 is only 2 years away, is not that big of an issue. For these older operating system versions, if you set the DirectX hardware-acceleration option, it’s simply ignored and you automatically just get standard GDI+ speeds. (Ditto, if there’s some issue with DirectX rendering, there’s an auto-fallback to GDI+).

UPDATE 20-Nov-2017: Windows 7 is now supported!

Next, if you are doing any of your own drawing in the grid by using the window handle for example, it’ll be ignored, but then again it’s bad practice. If, however, you do have some custom draw handlers that use e.Graphics , you must now use the e.Cache.* methods instead. We plan to introduce some special tools and/or modes to catch potential problems with custom draw later.

In v17.2, the only control that will have this enhanced DirectX support will be the aforementioned data grid, XtraGrid. We have plans to upgrade our other major controls in future versions (v18.1, v18.2, and so on). Note that we have our ideas on the order to enhance them (tree list, pivot grid, and so on), but we’d love to hear from you what would be most important to you in your WinForms apps.

DevExpress v17.2 beta has just been released!

Just a quick note to say that the beta for DevExpress v17.2 has just been published. Be the first kid on the block that downloads it and tries it out. Usual caveats: it is a beta, so beware. Things work, sure, but there may be some issues that are still undiscovered or still being worked on. Me, personally, I’d advise to not use it in production yet. We would love to hear from you if you do test it out, via our usual support channels.

For information on What’s New in this beta please check out this page. To download the actual install, log in to the Download Center and have at it!

We shall now kick off the publication of blog posts that discuss the new features and enhancements in this release. so stay tuned.

We’re here at Techorama in Antwerp, are you?

Techorama2017

Just a quick note to say we – John, Don, and I – will be manning our booth at Techorama at the Kinepolis Antwerpen tomorrow and Wednesday, so if you are here, please make sure that you pop over and say hello, discuss your experiences with our products, and get some swag. We are certainly looking forward to meeting you, saying hi to the attendees who don’t know us yet, and having some fun.

And yes, I’m talking about the booth that we’re about to go and set up, which is why I don’t have a picture of it or us yet. Stay tuned!

DevExpress Universal v17.1 released

As usual this close to a release, our Community Site recently has been filled with posts labeled “Coming Soon in v17.1”. Even with the beta being available, I’m sure you’ve been anticipating our first major release of the year, getting ready to crack on with updating your apps and using the new enhancements. Well, wait no more: the teams have completed their testing of the build and it was published to the Download Center around lunchtime, my time. If you have an active subscription, you can go now to our Download Center, log in, and download the latest and greatest.

For what’s new in this release, please go to this page and read all about the enhancements we’ve provided.

This page shows the Resolved Issues introduced in this release. There are a great number, let me tell you, so apologies if it takes a little while to load the page…

For every major release, no matter how hard we try and minimize the impact, the new features and enhancements are bound to cause a few breaking changes. You can read about the v17.1 breaking changes here.

As with every release, we are extremely grateful to everyone who provided feedback on our products, who used and tested the beta and provided information on the issues they found, and, of course, to all our customers who use our products every day. We hope that what we have in v17.1 is going to validate that trust in and appeal of our products.

DevExpress at Microsoft Build 2017, Day 2

If you are a developer that uses Microsoft’s products (Azure, Windows, Visual Studio, VSCode) to any great degree, you will know that this week is the week of the Microsoft Build developers’ conference. And, of course, Developer Express is here with their booth hosted by Amanda; with technical evangelists Paul, Areg, and Mehul, that know their stuff and who are ready to discuss your use of our products, demo our controls and widgets for v17.1; and … me.

DevExpress booth at Bulid 2017

I’m sure that you are keeping abreast of the news coming out from the conference: Azure, the new AI stuff, Windows 10 Fall Creators update, HoloLens and so on, so I won’t repeat it here. Nevertheless, it’s certainly been interesting talking to the attendees that pass by our booth about the issues they see with their apps and projects, and how we can help them resolve them. If you’re here and haven’t come by to say hello yet, we’re right by the truck (if you want to know, it’s for a HoloLens demo), and we’re ready to say hi and give out some swag.

Evangelism at the DevExpress booth at Build

…the technical evangelists: come stump them with your questions!

Amanda at the DevExpress booth at Build

…and Amanda will present you with our swag!

More Posts