Web Dashboard: A Portal Home Page with Graphical Reports inside Web Parts
Our client is a software manufacturer that develops comprehensive ERP system. Their busy customers need to monitor fast-paced business operations at a glance. WinMetrics was asked to develop a web dashboard that could display charts, graphs and gages derived from a set of a user-defined database queries. The application that defined the queries was already done for fat clients. We were asked to deliver the reports on the web. The requirements included:
|
Must support the following report types: charts, graphs, gages, spreadsheets and PivotTables.
|
|
For charts, graphs and gages: must optionally display a spreadsheet showing the facts from which the picture was derived.
|
|
Must allow users to customize their home page so that they can see multiple reports at once in a custom tiled layout.
|
|
Must remember home page layout across user sessions.
|
|
Must present a menu of all reports so that any selected report can be displayed on its own page.
|
|
Must be able to change the width and height of each report panel to shrink or enlarge its contents.
|
|
Must authenticate users to determine which features and reports they can see.
|
|
Must support single-signon from another classic ASP application.
|
|
Must allow users to receive login reminders and password reset instructions via email.
|
|
Must log any exceptions to the database and notify the appropriate client support representative via email.
|
|
Must support Firefox as well as MSIE for maximum reach.
|
|
Must use AJAX to minimize screen flicker and clutter.
|
We used DevExpress XtraCharts to Render the Graphics
First and foremost, we a component library that could render charts and graphs on the web. After looking at several vendors, we choose
Devexpress XtraCharts Suite because:
|
Devexpress XtraCharts supports a wide variety of chart formats that can be changed dynamically.
|
|
Devexress' programming model is intuitive. This made is easy for us to programmatically customize XtraCharts design templates developed in VS.NET to specific reports.
|
|
Devexpress controls are very fast.
|
|
Devexpress also provide high-performance grid and pivottable controls for ASP.NET. This allowed us to get everything we needed from one vendor.
|
|
Dexexpress does not charge runtime license fees, just developer license fees.
|
|
Devexpress provides all the source code to their controls. This assured us that the controls could be supported for many years to come.
|
|
Devexpress established an excellent track record of support with us. The tracked all of our suggestions and implemented several in a timely manner.
|
Web Dashboard Challenges
The standard ASP.NET web parts personalization database tables were used store each user's choice of web parts, their allocation to web part zones and their properites. We used web part reflection attributes to remember which report was to appear in each web part.
Here are some of the hurdles we had to overcome on the way to deployment:
|
The reports available to a given user are defined in a database. So, the typical static menu of web part types that appears in the web part catalog zone had to be replaced by our a dynamic menu.
|
|
Each report type had different properties, but there were many instances of each type. We used a different UserControl to support each type and custom editor parts to capture user-defined properties such as height, width and chart type.
|
|
We had to support gauges that were not included in Devexpress XtraCharts and we were forced to incorporate Infragistics WebGauge.
|
|
Moving web parts via drag-and-drop in Firefox browsers was not supported by ASP.NET 2.0 and we had to incorporate the Microsoft.Web.Preview.dll as prescribed by David Barkol
|
|
We started using Telerik's controls in certain instances, but migrated to the AjaxControlToolkit so that we could use standard AJAX UpdatePanels from Microsoft. At the time, Telerik had not integrated with Microsoft's ASP.NET AJAX framework. We suspect that much has changed since then.
|
"Carl is as professional a consultant as you'll find: easy to work with, vast knowledge of an array of products, technically adept, excellent communication skills, and pragmatic. His dedication to cranking code is unparalleled to anyone I've worked with. To say he doesn't miss deadlines is an understatement. Carl seems to take it personally if he can't be as productive as humanly possible every single day. He makes decsions quickly and always has an eye on project completation. He's the guy you want on your team... a true pleasure to work with."
-- |
Aaron Hodges, Chief Software Architect, Streamline Solutions |