VCL: the bridge to the future

ctodx
10 July 2012

Look it’s ridiculously simple. DevExpress started out with VCL user interface controls and, despite everything that has happened in the thirteen-and-a-bit years since, we are still very much in that market: the biggest vendor, with the widest breadth of controls and functionality. Not only that, but we’re just about to publish possibly the best release in years: VCL Subscription 12.1.

Architectural plansLet’s start off with the highly visual. We’ve added a tile control that is inspired by the new Metro look-and-feel of Windows 8. What we’ve found with our WinForms version is that a tiled front page to your application produces a very versatile dashboard-type view. Some of the tiles contain static content and some are “live”, where the content automatically changes through several frames of animation. As a user, your instinct is to “touch” the tile you are interested in, either with a traditional mouse cursor, or, if you have a touch-enabled screen, touching the screen itself. You can rearrange the tiles by dragging and dropping the tiles on the screen. The user experience is very fluid and graceful.

As a developer, you can reinforce the dashboard metaphor by wiring up the click events of the tiles to “drill down” and show more information that is relevant to each particular tile. So, for example, if you are showing total sales in a tile, touching the tile will show a different screen (preferably by sliding it in from the side) that shows more information about the total sales, say using a grid with some charts. The ability for the user to rearrange the tiles into an order that is more relevant to their work empowers them, they become more invested in the application.

Another point I want to emphasize about the tile control is that it is a pure VCL control, written in Delphi. There’s no magic, just the traditional DevExpress pixie dust. That’s why we say the control is “inspired” by Metro’s UI. It’s a chance for you to bridge tomorrow’s inevitable move to Windows 8 and Metro by introducing your users today to the concepts of tiles and how they work. We think they will be delighted.

We realize that a lot of this is brand new, so please check out the Realtor World demo application we provide with VCL Subscription 12.1. You can see the functionality I’m describing and, because it is a demo app, you have the full source code. Open up the project in RAD Studio and browse the source. Better still, use the demo app as a template for your own app: go ahead and delight your users.

On to the next big feature we’ve added to VCL Subscription 12.1. This time it’s not a visual feature, nevertheless it can improve the user experience of your application significantly. I’m talking about Server Mode for the ExpressQuantumGrid.

Given the feedback from some of our customers, an explanation may not be needed but allow me to expand a little on what Server Mode is. Traditionally, the grid has operated like this: when the grid is first displayed, the grid engine fetches all the records from the database. It stores this data in memory and uses it to provide the various user manipulations needed, including paging, sorting and grouping. As you can imagine this initial data fetching can take some appreciable time if there are thousands or millions of records and the memory requirements are massive.

With Server Mode, the grid has been enhanced through the use of some helper classes to fetch only the data needed for the current view. Conceptually (actually, our Server Mode is optimized even more than this basic description illustrates), the grid only fetches the number of records required for the current view. If the user pages down to see the next rows, the grid fetches another set of records right there and then. If the user sorts on a particular column by clicking on it, the grid merely fetches the first few records of the new sort order: the database engine is solely responsible for doing the ordering. In essence, the grid and its new helper classes are crafting SQL statements on the fly to fetch just what is needed for the current grid view.

This then is Server Mode: the initial display of the grid is much faster but each subsequent page display may be slightly slower (since it could require a round-trip to the server), and the memory usage is reduced. Overall though, your users will perceive a much smoother experience.

For 12.1, we are providing support for the big database engines: Microsoft SQL Server, MySQL, Firebird, Interbase, and Oracle. Other databases will be supported in future releases. The current support is for read-only data; read-write capabilities will be forthcoming.

Of course, there are many other new features and changes in 12.1. There’s the new high-speed paint mode for the skins that doubles the speed of painting elements and is more compatible with terminal systems and low-color modes. We’ve improved the performance of the layout control for complex layouts. We’ve added color galleries that can also be used as color editors. We’ve improved the Ribbon control with several new much-requested features. And so much more. You can view the whole What’s New in 12.1 here.

Crystal Ball time

Having produced this new release, let me reveal a little about what we’re planning (or not) for 12.2. Remember, we are resource-constrained with regard to supporting Delphi and C++Builder, and so we have to pick and choose what we want to – and are able to – implement.

First of all, as everyone who uses RAD Studio knows, Embarcadero usually follow an annual cycle for major releases. If this year is no exception, that means XE3 is some three months away. Nothing official has been said about this release yet (apart from JT’s blog post about C++Builder, of which more in a moment), but we can imagine that there’s going to be a lot of news about FireMonkey and support for various platforms. I doubt there will be much about VCL.

If we assume that XE3 is due this half, we’ll need to trim the supported IDEs again: 12.1 will be the last version to support Delphi and C++Builder 2010. I will sound a further note of caution: it’s likely that in 2013 we shall drop support for Delphi 7 and Delphi 2007 (what you might call the “ASCII IDEs”), so that we can concentrate on the latest run-times and environments.

I’ll be the first to admit that FireMonkey has come on by leaps and bounds since its not-very-complete release last September, so I dare say it’ll be that much better in XE3. Consequently, we shall be doing some investigations creating controls for it, especially for iOS. At this point in time though, it’s unlikely we shall invest in replicating what we have in VCL for FireMonkey to target, say, the Mac.

With regard to a 64-bit C++Builder that is to be built with Clang/LVVM, I’m going to say we shall treat it with kid gloves. Re-engineering a compiler so fundamentally says “breaking changes” to me, especially given the necessary extensions that are present in the current C++Builder to interface with Delphi. So, fair warning: if the changes are too severe, we shall not support 64-bit C++Builder in 12.2. It took us long enough to support 64-bit Delphi across our entire product line, and this year we don’t have the resources. That doesn’t mean we won’t ever do this (after all, Embarcadero are saying that they’ll switch completely to Clang/LVVM at some point), just that we won’t this year.

For VCL, expect more enhancements to Server Mode, including read/write capabilities. Expect more touch enhancements. Expect some larger scale features. We are of the strong belief that VCL has a lot of life yet, and we shall continue to bridge your current expertise to fit the future. Let’s see what develops!

26 comment(s)
Ali Kolahdoozan 1
Ali Kolahdoozan 1

as

10 July, 2012
Tom Reiertsen
Tom Reiertsen

Hi Julian,

I would personally like to thank all of you at DevExpress for still sticking around in the VCL space, and even continue to deliver new stuff as well. My apps would not be nearly as good if it wasn't for your excellent components.

Kudos!

Best Regards,

Tom Reiertsen

10 July, 2012
Jan Doggen
Jan Doggen

Yes, thanks for the continued VCL products. We are currently in the process of removing a competing component package from our apps, focusing entirely on DevEx.

Also, it looks as if we are just in time converting from  D2007 toXE2 this year ;-)

10 July, 2012
mgm / Thomas Feichtner
mgm / Thomas Feichtner

Please don't drop Delphi 7  - there are so many with this version around.

10 July, 2012
Vladimir Klaus
Vladimir Klaus

Hello Julian,

I'd like to see MS Access support for server mode with read/write access. Do you think about it?

I have subscription so I'd like to see something really interesting (for me). You write you don't have enough resources. OK, I understand very well. But we need excelent/fast/stable application - do you think the skins are good point for investments? I'd like to see better Ribbon Backstage view with MRU items...

Is there any place where to write suggestions?

10 July, 2012
Julian Bucknall (DevExpress)
Julian Bucknall (DevExpress)

All: No, we're not abandoning the VCL space, so I'm happy that you feel the same way.

Gunter: In a month's time, Delphi 7 will be 10 years old. A lot has happened in that time, and I don't want to hinder our ability to provide new functionality and controls because we have to program to the lowest-common denominator: a decade old compiler.

Vladimir: Read/write support is coming in a future release. MS Access is on the list, but to be honest, using MS Access for large numbers of records (Server Mode's main reason) is a little out of the ordinary.

Cheers, Julian

10 July, 2012
Lance Rasmussen
Lance Rasmussen

Thanks for the continued support for VCL Julian.  

I look forward to seeing DevExpress in the Firemonkey world soon!

10 July, 2012
Byron Baynham_1
Byron Baynham_1

Brilliant new functionality. Thanks Julian.

10 July, 2012
Vladimir Klaus
Vladimir Klaus

#MSAccess support - Grid is a liitle bit slow with 20.000 records, when I have 50.000 or more, it's almost impossible edit row without waiting. I have really fast computer, but customers don't. So I hope server support should resolve this long time issue. I don't talk about milions of records :)

11 July, 2012
Mr Price Group Ltd Mr Price Group Ltd
Mr Price Group Ltd Mr Price Group Ltd

Thanks for the continued VCL support. Some really nice features in this update. Well done;-)

Are you'll considering Advantage Database support for the Grid's server mode?

11 July, 2012
Christian Jørgensen
Christian Jørgensen

I also want to join the others: Great and professional controls!

I miss an important control in the portifolio: TdxChart  

Adding it, you could easily beat your competitors by many lengths, and make us happy!

Please continue with the attrative Metro Style controls.

The Firemonkey is an interesting idea, and I understand you dont want to go down the road before Embarcadero proved themselves (they still need to).

If you ever decide to go down the FM road, I hope you will consider to make some tools to migrate from VCL to FM.

11 July, 2012
Michael Thuma
Michael Thuma

Thank you for the ongoing support.

11 July, 2012
William Egge
William Egge

Doesn't anyone get it?  Metro is a touch phone OS, that is why it has tiles and wants you to touch them and has sand-boxing (just like a phone OS).  Guess what the next Microsoft phone OS will be, can you guess?  People seem to look at Metro like it is something so totally new and at the same time they are using their iPhone and iPad and not making the connection.  I don't get why people don't get it.

11 July, 2012
Jim Garrity
Jim Garrity

While you are building the list of databases for Server mode, please add EDBServer from ElevateSoft.

Glad to hear that VCL is alive, well and growing.

11 July, 2012
Luis Madaleno
Luis Madaleno

Thanks Julian. Great news!

The only thing I have to point out is the new ServerMode not using the same existing TableViews.

It would be nice to change existing projects just by moving from TDataSource to TdxServerModeDBXDataSource.

But in my case I use FireBird with FIBPlus controls, and having only the ADO and DBX options is very limiting.

Keep that awesome work!

11 July, 2012
Joao Borges
Joao Borges

Isn't it  possible to have a generic ServerMode component where we could implement DB interaction ourselves ? ... I use NexusDB.

11 July, 2012
GNiessen
GNiessen

I always find it amazing that the same folks that don't want to update from Delphi 7 are wanting to update their components.  I would think they would want to keep everything just the way it is.

I am grateful that there are still good companies developing for Delphi.  I hope you do embrace the FireMoney platform and come out with great looking and time saving components for it.  I am for moving forward.  A migration path is also appreciated.  We do have plenty of existing applications to support.

11 July, 2012
John Tilley
John Tilley

I understand that the VCL controls are now only available in one of the 4 subscription packages. However existing customers of individual controls can renew their subscriptions. This seems to be quite a change from 2011, when you agreed to continue to provide the controls individually - eg Quantum Grid Express.

Is my understanding correct?

I am pleased to see that you continue to support VCL.

12 July, 2012
Julian Bucknall (DevExpress)
Julian Bucknall (DevExpress)

It's another multiple-answer answer!

All those asking for their fave database engine to be supported by Server Mode: we know ;)

Christian: At present our charting is part of the grid, but I can understand the need for separate charting controls. I'd have to say we have no plans for that in VCL right now, but if we continue down the "dashboard route" that the Tile Control opens up, who knows what might happen.

Luis: there's no way we could retrofit the API for Server Mode so that it was a plug-in replacement. If there were, we'd have done it.

Joao: possibly. However, the issue then becomes a tech support nightmare. We'd rather do it ourselves and do it right for everyone.

John: if you own individual suites, you can continue to update them, at least for now. New purchases have to be a Pack or the VCL Subscription. We believe that the best way to use and experience our controls are as a complete product: we want to sell solutions not pieces of them.

Cheers, Julian

12 July, 2012
Dan Beenfeldt
Dan Beenfeldt

Glad you're considering FireMonkey.  Looking towards the future, I'll need to find a way to support Win32 and mobile platforms, and so far FireMonkey seems to be the top contenders.  Even if WinRT becomes the defacto Microsoft desktop and mobile standard, they own so little of the mobile market that it won't work to only target WinRT (not to mention I'm not all that jazzed about yet another slightly incompatible take on WPF).  If FireMonkey can deliver on the platforms, and DevExpress comes through with the components, it would be very compelling for existing C++ and Delphi developers.

12 July, 2012
Luis Madaleno
Luis Madaleno

Thanks Julian,

Since we have your source code, using your DataSources and adapt them to our most dear DB would be easy.

What I don't like is the need for another TableView. This means I can't change my project to use ServerMode since I have >100 forms with grids.

Changing my project to use another DataSource would be easy, but changing the TableView type can't be done.

But I can live without the ServerMode. FireBird + FIBPlus are already very fast.

I have a customer with a 25Gb FireBird DB with millions of records and the grids are fast enough.

The key is to optimize our code as much as we can.

13 July, 2012
David Rosen
David Rosen

I came in to the conversation a little late. After starting playing with the new tile control I think we need more information, documentation ot "how to" items.

I am still studying what we have now, but i really need more explanations.

And I will join all before me with my appreciation for your work.

David

22 July, 2012
Ruediger Kabbasch
Ruediger Kabbasch

Dropping D7 and D2007 in 2013? In this case I think I made a mistake by making a renewal of my subscription.

I understand that you want to use the new possibilities of the latest Delphi versions, but I'm not interested to get into the race of buying/installing a new delphi version every 1 or 2 years just to be able to use the latest version of your components.

23 July, 2012
Sanjay Kanade
Sanjay Kanade

Julian,

I agree with Ruediger. Please DON'T drop support for Delphi 2007. I have no plans to upgrade Delphi to unicode IDEs because there is lot of change involved in the sources related to unicode. And my target customers don't need unicode.

Thanks,

Sanjay

1 November, 2012
Vladimir Ulchenko
Vladimir Ulchenko

I'm with Ruediger and Sanjay and not going to upgrade from bcb2007 because newer versions are close to unusable due to numerous compiler bugs

13 November, 2012
Maziar Navahan
Maziar Navahan

Thnx of support vcl in next

I write own pach for server mode with anydac

Can share it ?

Please more work arround server mode also for treelist

29 November, 2012

Please login or register to post comments.