Dundas Gauge for .NET 1.5 is the latest version of Dundas’s Gauge component for .NET. It comes in two flavours--for Windows Forms and for ASP.NET. I had the occasion to review them both and would like to share my impressions with you.
Evaluation copies for both Windows Forms and ASP.NET versions of the component can be downloaded from the website of the vendor. Registration is required, and the username and password to be used during the installation is emailed 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 (emailed to you once you have registered on the Dundas site) need to be entered.
Loading up for the First Time
If you now check your VS.NET Toolbox, you might be surprised to find that instead of the half-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 (named 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.
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 for .NET comes with three types of gauges: Circular, Linear, and Numeric Indicators. And each type has a gallery of templates from which the developer can choose. Once this is done, you can then customise almost every aspect of the gauge, starting from UI-related features like size, shape, frame type, and colour schemes, to functional aspects like adding ranges, state indicators, input source, dampening, snapping, and history depth. 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 five 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 graphic designer could come up with functional and visually appealing gauges with a minimum of effort.
Figures 2 through 6 show sample gauges created while experimenting with the Gauge Wizard.
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 of the gauge controls in the form of property pages. 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 rather 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 first page of the Wizard.
With such a large selection of controls, and literally scores of options to customize each one of them, it can be a bit difficult to explore the capabilities of each control. This is where the Gauge samples application is 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 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 enable a developer to get productive quickly.
In fact, I would recommend the samples as a good starting point for anyone new to the Dundas Gauge for .NET component.
Save and 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 customizable, 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 the container, and the pointers, frames, and any ranges of the gauges. The Complete option saves all the UI elements, including any custom images you may 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, select which file to load the template from, and indicate whether to load appearance only or the complete gauge from the template.
Figure 8 - Load Template Wizard
Using this feature, you can have a graphic 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 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 multiple 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.
Another cool feature of Dundas Gauge for .NET is its ability to store and “play back” 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 analysed 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 analyse historical values, say in analysing the load on an application over a set time period.
As I said at the outset, the Dundas Gauge component come in two flavours, Windows Forms controls and ASP.NET web controls. Until now I have used the Windows Forms controls as the basis of my review, but the functionality exposed by the web controls is more or less the same.
For the ASP.NET web controls version, one cool 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 the Windows Forms version, the ASP.NET version of the component comes with a 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.
Dundas Gauge for .NET is a sophisticated and flexible component and has several features that make the developer’s task less painful. The 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 “play back” the variations in a 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 product support only a couple of times (which probably reflects well on the quality of the product), but on each occasion I received 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 History Depth and Snapping) 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 feature, which is a great time saver even in its present form, would be even more useful if it could be made applicable to individual gauges in a container, rather than to the entire container as it is 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.
After having worked with the Dundas Gauge for .NET component over the past couple of months or so, the overall impression I have formed 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.