Dundas Gauge.NET 1.5 Review

Introduction & Installation

Introduction

Dundas Gauge .NET 1.5 is the latest version of Dundas' Gauge component for .NET. It comes in two flavours - for .NET Winforms and ASP.NET. I had the occasion to review them both and would like to share my impressions with you.

Installation

Evaluation copies for both Winforms and ASP.NET version of the component can be downloaded from the Dundas website (www.dundas.com). Registration is required and the user name and password to be used during the installation is mailed to you along with the instructions, so be sure to provide a valid email address while registering.
The installation process itself is smooth and presents no hassles, with a standard Windows installer taking one through the steps. The only variation is a screen where the username and password (mailed to you once you have registered on the Dundas's site) need to be entered.

Loading up for the first time

If you now check your VS.NET Tool box, you might be surprised to see that instead of the half a dozen or so Dundas gauge controls that you might have expected to see, there is only one new control. The reason for this is readily apparent. This control (called the Gauge Container control) acts as a container, in which you can put multiple gauges. These gauges can then be configured using the Gauge Wizard or the property pages of the control.

Gauge Wizard

Figure 1: Gauge Wizard

The Gauge Wizard serves as a tool to add gauges to the container control and configure them. Using the Wizard you can select the type of gauge you want to use. Dundas Gauge .NET comes with three types of gauges - Circular, Linear and Numeric Indicators. And each type has a gallery of templates from which the user can select one. Once this is done, you can then customise almost every aspect of the gauge, starting from UI related features like size, shape, frame type, colour schemes to functional aspects like adding ranges, state indicators, input source, dampening, snapping, history depth etc.

The wizard also allows you to add more gauges to the container (from the Gauges tab) and using the Parent Property, a gauge can be added as a child gauge to another.

The Wizard interface can be a bit intimidating, especially the first few times you use it. But rest assured that the logical grouping of the various options into separate tab pages helps one get used to the interface reasonably quickly and you would be creating professional looking gauges in no time and that too without writing a single line of code. However, it has to be said that adding context sensitive help or a Help button to directly access Help from within the Wizard would reduce the learning curve for a novice user.

Here are some gauges I created, spending on an average less than 5 minutes per gauge. Aesthetic sense is not exactly my strong point; nevertheless, I am quite pleased with the results and am convinced that a talented graphics designer could come up with functional and visually appealing gauges with a minimum of effort.









Figures 2 - 6: Sample gauges created while experimenting with the Gauge Wizard

Property Pages & Samples

Property Pages

Admittedly, the Wizard is a cool way to configure the gauge controls. But for those of us who prefer the standard Windows interface, Dundas has exposed the properties exposed by the gauges in the form of property pages for the control. One advantage of using property pages is that the one line description for the selected property provided at the bottom of the property page is very helpful, especially when one is new to the control. This is one feature one would like to see added to the Wizard interface as well. Also property pages cover all the properties that are exposed by the controls as opposed to the Wizard which focuses on the more commonly used properties.

Tip: If you are like me and prefer to add and configure the gauges using the property pages than the Wizard, then you can stop the wizard from showing up every time you drop a Gauge Container on the form by unchecking the Auto Run Wizard checkbox on the Wizard home page.

Samples

With such a large selection of controls, and literally scores of options to customise each one of them, it can be a bit difficult to explore the capabilities of each control. This is where the Gauge samples application comes useful. This application has a folder tree window with folders for major areas of the application and nodes which contain more information on specific features and/or performing specific tasks. A working demo (with which the user can play around), a brief description and code samples in both C# and VB.NET are provided for each topic. And with more than a hundred topics ranging over fifteen or so major areas, the samples give a comprehensive overview and helpful code snippets that would enable a developer to get productive quickly.

In fact, I would recommend the samples as a good starting point to anyone new to the Dundas Gauge .NET.

Templates

Save & Load Templates

Custom controls help programmers save time (and their employers save money) by providing reusable bits of UI and functionality. However, with controls that are extensively customised (like Dundas Gauge for .NET), a programmer could still spend a considerable amount of time customising an existing template to suit the exact requirements of the application. To save the time and effort spent in redoing this, Dundas Gauge for .NET provides the programmer with a facility to save and load templates. Templates are essentially xml files which hold information about the various properties of the gauge which can be read by the Gauge container to recreate the control exactly as it was originally created.

Figure 7: Save Template Wizard

You can opt to save just the appearance or the complete gauge. The Appearance only option saves the type of the gauges in container, the pointers, frames and any ranges on the gauges. The Complete option saves all the UI elements including any custom images you might have added.

To replicate a gauge, all you have to do is drop a gauge container control on a form, and click the Load template link on the property and select which file to load the template from and whether to load appearance only or the complete gauge from the template.

Figure 8: Load Template Wizard

Using this feature, you can have a graphics designer create a library of controls with the exact look and feel that you want, which the developers can then pick up and use across multiple projects. The potential time savings accrued by the intelligent use of this feature alone could make buying this component a good investment.

As of now, the templates are saved or loaded at the gauge container level, which means that when you save a template you are saving the layout and UI elements of all the gauges in that container. The same applies when loading a template. While this is great news when you want to save the layout of a gauge container having several gauges, saving the template of a particular gauge within a container having multiple gauges, or applying a template to a particular gauge in a container having multi gauges is not possible currently. Dundas is working on a feature that allows saving and loading templates at the gauge level, so I guess we can expect this feature in a future release, hopefully as part of a minor version.

Playback & Web controls

Playback

Another cool feature that Dundas Gauge for .NET has is the ability to store and "play back" the historical values. The data can be retrieved from the history maintained for a gauge or even from a separate data source. And time compression (or expansion) can be applied so that the trends can be analyzed more quickly or specific intervals of interest can be slowed down for in depth analysis.

This feature is extremely useful in applications where it is necessary to analyze the historical values, say in analyzing the load on an application over a set time period.

Web controls

As I said at the outset, the Dundas Gauge controls come in two flavours, WinForms and ASP.NET web controls. Till now I have used the WinForms controls as the basis of my review, but the functionality exposed by the Web Controls is more or less the same.

One cool web controls feature that is worth mentioning is the support for real time streaming. This enables the controls to poll the web server at preset intervals and display up-to-date values without refreshing the entire page. The controls can be rendered as images, flash movies or smart client controls.

Like WinForms control, the Webforms component also comes with samples application that showcases its capabilities, which serves as a good quick start for a developer who wants to become productive with this component in a short span of time.

Summary

Summary

Dundas Gauge for .NET is a sophisticated and flexible component and has several features that make the developer's task less painful.

One feature I liked the most was the facility to Save and Load templates, which can save a lot of time, especially when a standard look and feel is required across various controls in an application or even across applications.

Also, using Real time streaming to update the controls in a web application without posting back or refreshing the page and the ability to "replay" the variations in value are also quite useful. The latter is especially useful in troubleshooting.

And last but certainly not the least is the Product support. I had occasion to use them only a couple of times (which probably reflects well on the quality of the product) but on each occasion I got professional, courteous and helpful service.

However, there are areas that can do with some improvement.

The first one is integrating help into the Gauge Wizard. One would expect a new user to use the Wizard to do most of the configuration and integrating context sensitive help or even one line descriptions to various fields (especially the ones that are unique to this control like, say History Depth, Snapping etc) would be very helpful. In fact I found myself using the property pages instead of the wizard, since they displayed a one line description of each property.

Secondly, the save and load templates which are great time savers even in their present forms would be even more useful if they could be made applicable to individual gauges in a container, rather than to the entire container as they are now.

Also, it would be good idea for Dundas to host a forum for their components where users can interact with the support staff and each other. This would be an excellent resource for both new and advanced users and a great way to keep in touch with the actual users and their requirements.

Conclusion

After having worked with the Dundas Gauge for .NET component suite over the past couple of months or so, the overall impression I have got is that of a powerful and user friendly set of controls that are relatively easy to pick up and use. Not every application needs to present data in gauges, but if you are developing a .NET application that needs to use gauges, then I can recommend Dundas Gauge for .NET as an excellent choice.