more search
  345 USERS ONLINE
Functions
HOMEPAGE
SITE CONTENTS BY YEAR
RESEARCH REPORTS
SEND US FEEDBACK
SUBSCRIBE TO SD
ADVERTISE WITH SD
MY ACCOUNT
LOG OUT
REGISTRATION FAQ
Features
OPEN SOURCE
AGILE PROCESSES
THE SALARY SURVEY
THE JOLT AWARDS
2004 CAREER &
  TRAINING CALENDAR

SD BEST PRACTICES
SD NetSeminars
BUILDING & RELEASING
WINNING PRODUCTS

AGILE DATA MODELING &
THE POWER OF DESIGN

MAXIMIZE WEB SERVICE
PERFORMANCE

HOMELAND SECURITY AND
  OTHER SO-CALLED SOLUTIONS

WEB APPLICATION
  PERFORMANCE

FUTURE OF DATABASES
MDA EXPLAINED
ANTI-PIRACY MEASURES
AGILITY, OBJECTS & UML
 
Departments
CAREER & TRAINING
UML DESIGN CENTER
PROJECT MANAGEMENT
SECURITY
BEYOND OBJECTS
CONFERENCE COVERAGE
PRODUCT REVIEWS
TEST CENTER
Columnists
SCOTT AMBLER
GRADY BOOCH
WARREN KEUFFEL
GREGOR KICZALES
BERTRAND MEYER
CLEMENS SZYPERSKI
ROBERT MARTIN
Newsletters
AGILE MODELING
DEVTALK
PEOPLE & PROJECTS
SECURE START
WEB SERVICES
SUBSCRIBE
SD BEST PRACTICES
SUCCESSFUL INTEGRATION:
  PUTTING IT ALL TOGETHER

Writers
AUTHOR GUIDELINES
EDITORIAL CALENDAR
AUTHOR BIOGRAPHIES
Forums
HOME
CAREER CENTER
HOT TOPICS
INTERFACE
MODELING AND DESIGN
OFFSHORE OUTSOURCING
PROJECT MANAGEMENT
READER REVIEWS
TESTING & Q.A.
WEB SERVICES
Vendors
EDITORIAL CALENDAR
POSTED PRESS RELEASES
MEDIA KITS
ADVERTISING CONTACTS
DEVELOPING WITH COMPONENTS





project and process management
Software Development
July 2004 Charting New Meaning

Creating professional charts that respond well to wide ranges of data is no easy task. Fortunately, some great .NET charting engines are now available for many applications.

By Dennis Adams

In his landmark book The Visual Display of Quantitative Information (Graphics Press reprint edition, 1992), Edward Tufte devotes an entire chapter to “chartjunk.” Quoth the graph-master: “The interior decoration of graphics generates a lot of ink that does not tell the viewer anything new.” Substitute “pixels” for “ink,” and this statement applies to computer-generated charts and graphics that can be drawn faster than they can be discarded.

Whether your design specification included charting from the beginning or users screamed for it at the eleventh hour, it’s worth looking at third-party charting engines simply to benefit from the years of refinement that produced layout and drawing engines. Making a simple chart is a snap, but professional charts that respond well to wide ranges of data are no easy task. Fortunately, some great .NET charting engines are now available for a raft of applications.

The Criteria

Architectural Trade-offs be shifted between the server and the client. For example, the charting engine on the server can do all of the work, turning data into charts rendered as bitmap images, which can be drawn by any graphical browser. Alternatively, an on-demand downloaded browser plug-in can accept data from the server and render it directly on the client. This allows for client-side data zooming and changes to the chart type or color, as well as other manipulations. While these advantages might be worthwhile for intranet or vertical market projects, the disadvantages include browser and platform compatibility issues, and more recently, security concerns about downloaded components. Finally, a hybrid approach is for the server to render the chart in vector form, such as SVG (Scalable Vector Graphics) or Macromedia Flash format, to be rendered on the client. This reduces network bandwidth and offloads some of the work from the server to the clients. For text-only browsers, or to make your charts accessible to people with disabilities (as required by Section 508 of the Rehabilitation Act Amendments), you’ll want the ability to create “alternate text” HTML tags that describe your chart and the values it represents.

Chart Options: Although most products include basic chart types, such as line, bar, pie and XY scatter charts, as well as multiple series to be graphed in the same chart in the same or mixed styles (line over bar, for example), your application may have needs above and beyond the basics, such as customized drawing on the chart or support for very large data sets. An application that calls for a specific kind of chart, such as maps, area charts or 3D surfaces, might narrow your field of choices to a single product.

Populating the Engine: There are nearly as many ways of getting data into a charting engine as there are ways of drawing them. Charting starts with a series—a set of data points with values—that may be populated by setting their properties directly. Often, series can also be populated from a database, either directly or via .NET conventions. Sometimes, a series can be populated from text or XML files. If you already have a specific database in use, make sure the charting engine you’re interested in can talk to it, or you’ll need to write an access function that pumps the data from the database to the charting engine. If you need the chart to update in real time as new data becomes available, make sure your charting engine can handle this possibility.

Avoiding Chartjunk: No amount of database connectivity will make up for a poorly rendered, hard to read or otherwise inferior chart. While a certain amount of chartjunk—such as shadows, 3D perspective, bitmap or gradient fills, can be expected—it can quickly get out of hand, especially when rendered with a garish color palette. A good charting product has a gallery of presets, with professionally designed color palettes to choose from, so even the non-artists among us can make nice-looking charts. For elegant finishing touches, a good layout engine can avoid label collisions using repositioning or callouts, and will use modern rendering techniques such as anti-aliasing (to eliminate jagged edges and stair-stepped lines) and soft shadows (to make your chart subtly “pop out” from the background). Various chart framing options may be available to help the chart combine with other elements on the page.

Interactivity:In some cases, you may want to make your charts interactive. For example, moving the mouse over a chart element could pop up a tooltip-like window to show the data value, or clicking on an element could “drill down” into a chart or table (or entire Web page) showing the source for that data. If interactive charts are needed, make sure to evaluate packages for their depth and elegance in tagging chart elements at the level you require.

Licensing: Finally, there’s a wide range of licensing options. A vendor may charge per developer, with unlimited royalty-free uses, while another may charge per-server or even server CPU. Depending on the type and size of your deployment, licensing costs could vary widely, so it’s a good idea to look into licensing before making your final decision.

Chart FX for .NET

Software FX has been in the charting business for a number of years, and this shows in many places, such as the visual quality of the charts and the number of chart types available.

As soon as you create a Chart FX object in Visual Studio, the design wizard pops up, allowing you to select the chart type, color palette, legends and labels. The wizard can also be re-launched later to make changes without starting over. Also, samples that have C# and VB .NET source code are provided. An extension that can do geographical and political boundary map charts, or can be set up for other graphical maps, such as airplane seating charts, is also available. Help is integrated into Visual Studio.

Data binding is via direct object API, text file, XML file, databases using ADO.NET, data providers, collections and arrays, or crosstabs. A SOAP/XML-based extension allows clients to connect to data servers for streaming real-time charts.


Good-Lookin’ Graphs
Chart FX generates very nice-looking charts, with good anti-aliasing and layout.
Chart FX generates very nice-looking charts, with good anti-aliasing and layout (see “Good-Lookin’ Graphs”). Annotation objects can be added to any chart, and a wide variety of framing options are available to integrate the chart into your Web page.

Standard PNG and JPEG raster formats, as well as SVG for client-side rendering, are supported. Image maps provide interactivity when using the PNG raster format, with custom URLs per series or per point. For Windows .NET clients, a managed code plug-in component is available that provides full interactivity with the chart, including chart type, 3D rotation, zooming and scrolling, and even “what-if” changing of the data in the data view. The toolbar for this component is configurable, and you can add and remove buttons as needed for your application. These formats can be streamed directly to the client without creating temporary files. With an additional extension download, the Macromedia Flash format can be used, and it also offers drill-down interaction. Software FX has an informative white paper comparing server-side and client-side components on its website. Finally, Software FX embraces accessibility through another downloaded extension that provides the necessary functionality to make Chart FX accessible to people with disabilities, as required by Section 508.

Charting Your Course

While any of these products will satisfy modest charting needs, your application may demand discriminating features like real-time charting, large data sets, specialized chart types or drawing directly on the chart. To make a wise selection, explore the free evaluation versions available on your own data, see which documentation package or technical support program fits your needs and evaluate licensing. But please, don’t let dreaded chartjunk invade your application, or you might just end up in Mr. Tufte’s next book—for all the wrong reasons.

Chart FX 6.2
Software FX
5901 Broken Sound Parkway, Suite 400
Boca Raton, FL 33487
Tel: (800)999-8888
www.softwarefx.com

Pricing Scheme:

Free evaluation is available. A single-copy license, which includes one developer license and one server license (unlimited CPUs), is $2,699, or $2,999 with one year of priority suppport. Additional developer licenses are $899, and additional server licenses are $1,599.

Rating: 4 stars The Rate Sheet
Pros:
  1. Chart FX is a highly evolved and capable charting engine with great-looking output.
  2. The re-entrant wizard for setting chart type, color palette, legends and labels (but no data binding) is very useful.
  3. A number of downloaded extensions add nice additional functionality.
Cons:
  1. The product is a big investment for companies with modest charting needs.
  2. Some chart types are limited in the number of series elements.
  3. The wizard doesn’t help with data binding.

This is an excerpt from the CMP - Software Development Magazine website. To read the entire article, please visit Software Development website.


When he’s not informally testing the performance envelopes of modern street tires or building dangerous projects with his children, Dennis Adams develops state-of-the-art media editing software.
August 2004

Issue Theme:
Application Lifecycle Management
--more--

Subscribe For Free Now!