Off the peg components

 By Tim Anderson

Why build it yourself when you can buy it ready-made? Tim Anderson finds out what you can find in the marketplace.

HardCopy Issue: 45 | Found In: Development | Published: 01/09/2009 | Last Revision: 07/07/2010

The advantage of using third-party components in your applications is simple but compelling. A component provides a chunk of pre-built, tested and documented code that you do not have to write yourself. There is an immediate productivity gain, and in many cases the user gets more feature-rich software than if you hand-roll all your code. The Developer Express grids, for example, available for both Windows and Web applications, have a drag-and-drop sorting and grouping feature which gives users an easy way to make sense of their data, but which would be a considerable challenge to code from scratch. Another way to look at this is that most developers would rather spend their time on the unique aspects of their application which add business value, rather than on reinventing the wheel by coding common functionality such as grids, progress bars, date pickers, tabbed forms or other such features. There are a couple of downsides. One concern is that you may add new bugs which are in the third-party code and so harder to troubleshoot because you didn’t write it. “ It’s a valid concern,” admits Peter Lindsey, Managing Director of Infragistics Europe, though he adds, “there are bugs in all tools. One of the complaints that is sometimes registered with Microsoft is that they are slow in fixing bugs in Visual Studio or in the components that come with it.” Another perspective is that custom code written for a specific application may also contain bugs. In theory, third-party code that has multiple users and a strong quality process of its own may actually be more reliable, though a balancing factor is that a third-party component often has more features than you need, increasing both its size and the likelihood of defects. Still, the most popular components are proven and well supported. Most vendors also offer full source code as an option so that you can trace into the code if necessary, as well as having a fallback if anything were to happen to the vendor.

The evolving market

The first major commercial market for components grew up around Visual Basic, originally with VBX controls and then with ActiveX. Today’s equivalent is a .NET control for Windows Forms or WPF (Windows Presentation Foundation), and these remain important. “Will rich client computing die out? We don’t think that’s going to happen real soon,” says Lindsey. “Some of the reasons are the capabilities of a rich client in terms of performance, graphics, storage and so on. It will continue to have a place, particularly for in-house applications in large institutions.” That said, there is a clear trend towards Web development rather than Windows clients, and the component vendors are responding with new product lines. ASP.NET is a well-supported platform, and components are now emerging for ASP.NET MVC, a new leaner framework from Microsoft based on the Model-View-Controller architectural pattern. Telerik has Extensions for ASP.NET MVC now available as a Community Tech Preview. There is also increasing support for AJAX, a technique which uses client-side JavaScript for smoother and richer Web pages. Another emerging area is Silverlight, the browser plug-in which runs on Mac and Windows and supports a cut-down version of the .NET Framework. Vendors with Silverlight components include ComponentOne, Dart, Developer Express, Infragistics and Telerik. SharePoint is also a growing component platform. SharePoint is built on ASP.NET, but there are some special considerations for SharePoint deployment. Companies such as Infragistics and Telerik have SharePoint-specific suites. The component market is not exclusively for Microsoft platforms, although they do seem to dominate. Why is that? “It’s a more known environment for component development, “ says Lindsey. “The fact that Microsoft controls the whole stack becomes an advantage, whereas in the Java world you have a number of JEE vendors, you then have frameworks sitting on top of those, then frameworks on top of those. “We do offer a NetAdvantage JSF [JavaServer Faces], but it becomes apparent in support that the number of layers below that JSF framework are many and varied. It’s more difficult to develop a component industry that is robust.”

The Windows 7 factor

rich text control for siliverlight
This Silverlight rich text control plugs a significant gap in Microsoft’s browser plug-in.

2009 is the year of Windows 7, and although companies are never quick to adopt new versions of Windows, the signs are that take-up for Windows 7 will be more rapid than usual thanks to its warm reception by early adopters. “Windows 7 will be very important as it will ensure that more PCs are ready to run WPF,” says Lindsey. “Although we’ve had a set of controls for WPF for more than two years, the perception that WPF is associated with Vista meant that many customers running Windows XP thought they were excluded. Getting Silverlight onto people’s desktops will be enhanced by Windows 7.” But will existing controls run on Windows 7? The good news is that internally the new operating system is similar to Vista, so applications that run well on Vista should mostly continue to work. Applications designed for Windows XP, by contrast, may well need some tweaking to run nicely on Windows 7. So let’s look more closely at some of the components available.

Aspose

Aspose is a file-format specialist with products for .NET, Java and SQL Server Reporting Services (SSRS). If your Web or desktop application needs to process or generate documents for Microsoft Office or other popular formats, the Aspose class libraries enable you to do so without having to install the Office suite itself, and the Java editions extend this ability to non-Microsoft platforms.

Component technologies

The components described in this article generally fall into one of several standard types.

ActiveX components are based on Microsoft’s COM technology which means they can be used by any Windows development platform that supports COM. In practice, that is almost all of them. Visual ActiveX components are embedded into desktop applications to implement the user interface , while non-visual COM components perform back-end functions and can be called either by desktop or server-based applications.

The .NET Framework is Microsoft’s replacement for ActiveX, and .NET components are now even more popular. As with ActiveX, these can be visual or non-visual. Visual components are designed either for Windows Forms, the older .NET GUI framework; or for Windows Presentation Foundation, the newer GUI framework which is gradually catching on as a replacement. Non-visual .NET libraries can often be used both on the desktop and on the server, such as in an ASP.NET application. Although ActiveX components can be called from a .NET application, it is better to use a true .NET component where possible.

There are also visual ASP.NET components which support the Web Forms model. ASP.NET MVC is a newer framework for Microsoft’s Web platform. SharePoint is built on ASP.NET but also has its own development model based on Web Parts, so it is best to look for specialist components designed for this environment.

The latest version of Visual Studio at the time of writing is 2008, which is widely supported. If you are working with an older version, or you are an early adopter for Visual Studio 2010 when it comes out, then check for compatibility.

Java components are likely to be either generic class libraries that can be used in any Java application, whether on the server or on the client, or components for JSF (JavaServer Faces) Web applications.

Aspose Words supports DOC, OOXML (also known as docx, as found in Office 2007), RTF, HTML, OpenDocument, PDF, XPS and EPUB. Aspose Cells supports Excel, in both classic and newer XLSX formats, as well as tab-delimited and CSV (comma separated values) for universal interoperability. Aspose PDF is for working with Adobe’s Portable Document Format, and can be used in conjunction with other Aspose libraries. Aspose Slides works with PowerPoint content, though Office 2007 pptx is not yet supported. There are other ways to work with Microsoft Office documents, such as by automating Office itself or using Excel Services in Microsoft Office SharePoint 2007. However, automating Office means taking on a major dependency and possibly having to support multiple versions. It is also unsuitable for server applications. Using the Aspose class libraries is more dependable. In addition, Aspose has a range of other components. Aspose Flash for .NET enables you to generate Flash content from .NET applications. You could use this in an ASP.NET application to enable users to view rich content within Web pages. There are also some visual controls, including a barcode reader and generator, an Excel-compatible grid and a Word-compatible editor control. The SSRS rendering extensions are for exporting SQL Server Reports to common Office formats.

Dart

Dart specialises in networking and internet communication components. SNMP (Simple Network Management Protocol) is a standard for monitoring and managing network devices, and PowerSNMP for .NET or ActiveX provides easy discovery of network agents, message handling, and handling MIBs (Management Information Bases). The latest version has improved asynchronous support, works with IPv6, and takes advantage of .NET 2.0 generics. PowerTCP also has .NET and ActiveX versions. This provides support for protocols including SSH (Secure Shell), SFTP (Secure FTP), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), Sockets, SSL (Secure Sockets Layer) and Telnet. Data transferred is often compressed for performance, and Zip compression is also part of the suite. If you are working with cloud computing providers such as Amazon’s Web Services, libraries that wrap standard Internet protocols and which go beyond what is provided by the .NET Framework itself can significantly improve productivity. Dart’s other components include an Ajax suite for ASP.NET, File Upload for ASP.NET with progress reporting, and an Ajax-enabled HTML textbox.

Dundas

Dundas is a data visualisation specialist and supports ASP.NET, Windows Forms, SQL Server Reporting Services and SharePoint.

Dundas screen shot
A Dundas dashboard showing charts, gauges and maps working together.

Dundas Chart supports 37 chart types and comes with a Chart Building Tool and digital dashboards for creating rich chart-based applications. The ASP.NET version is able to use Flash or SVG for animation effects, while a new Silverlight extension integrates with Microsoft’s browser plug-in. Dundas Gauge is a companion to Chart, with the focus on visualising real-time monitoring data. Gauges come in many forms including circular, linear, numeric and miscellaneous shapes that imitate physical gauges. Gauge also has a Silverlight extension. Dundas Map works with AJAX on Web pages, or can be used in Windows Forms applications. It comes with a map library covering the world, the continents and several countries. You can also import maps in the standard ESRI (Environmental Systems Research Institute) format, and the Dundas Web site has links to map resources. Panning and zooming is built-in. There is support for unlimited map layers which you can show or hide under program control.

ComponentOne

ComponentOne iPhone suite screen shot
ComponentOne's iPhone suite is aimed at ASP.NET developers creating Web applications for the Apple iPhone.

ComponentOne has individual component suites for seven platforms: Windows Forms, WPF, ASP.NET, Silverlight, iPhone Web applications, Windows Mobile and ActiveX, which you can purchase individually or bundled as Studio Enterprise. There are some common themes running through these various suites, shortening the learning time when you need to migrate from one platform to another. There is also a SharePoint suite, which is not part of Studio Enterprise. This includes a DataGrid, chart and maps. A particular strength of ComponentOne is reporting. This starts with VSView in the classic ActiveX suite, a control which saves a ton of time if you need to generate a report with support for printing and export to RTF (for Word), HTML and PDF. Similar but extended capabilities are in the Windows Forms suite which has C1Report and C1PrintDocument, and further versions of these same controls are in the suite for WPF. Studio for iPhone is aimed at developers working in ASP.NET to create or adapt applications for the small iPhone Web browser. The controls support portrait or landscape view and provide buttons, dialogs, tabs, sliders and pickers with a familiar iPhone look and feel. ComponentOne Chart has over 80 types of 2D and 3D charts. This controls exists for ActiveX, Windows Forms, WPF and ASP.NET (in the form of WebChart), and there are also cut-down chart controls for Silverlight and for Mobile.

Developer Express

Developer Express provides a range of controls for .NET and for Embarcadero’s Delphi. The .NET range covers ASP.NET, Windows Forms and Silverlight, with WPF currently available as a technical preview. You can purchase individual controls, or a bundle of controls packaged as DXperience. DXperience itself comes in four versions: Universal which has all the .NET products; Enterprise which has everything except for a business application framework called ExpressApp; WinForms; and ASP.NET. Developer Express has a subscription model which means you get one year of updates with each product. Source code is available at extra cost. The XtraGrid suite is a Windows Forms suite built around XtraGrid, a grid control with advanced features for grouping, sorting and filtering data at runtime. It has a reputation for above-average flexibility at the expense of above-average complexity. Other .NET controls include ribbon and menu controls that make it possible to imitate the look and feel of Office 2007, and XtraWizard for building your own wizard interfaces, charts and reports. On the ASP.NET side there is an advanced GridView control along with other user interface controls, a Cloud Control for a trendy tag cloud display, and a site map control for generating site maps from XML data. Developer Express is also strong as a component vendor for Delphi and C++Builder. The ExpressQuantumGrid Suite is an advanced grid for Delphi with features including runtime grouping, sorting, and filtering, master-detail support, card views, styling, export and printing support. Other Delphi controls include an Office-style ribbon, calendar controls, data shaping, layout management, spell checking, flow charts and organisation charts.

Infragistics

Infragistics has a large range of components, mainly focused on Microsoft’s .NET platform with coverage of Windows Forms, WPF, ASP.NET (including AJAX) and Silverlight. NetAdvantage for JSF provides components for Java Web applications. There is also a set of icon packs, meeting a common development need. NetAdvantage Icons has over 60,000 images for Web and commerce, 11,000 for Office-style features, 64,000 for Healthcare, 40,000 for business and finance, and 64,000 covering software and computing. The Infragistics NetAdvantage for ASP.NET is oriented towards business applications with a range of specialist data entry controls, grids and tree views, calendaring and scheduling controls. WebChart is a chart control offering more than fifty 2D and 3D chart types. NetAdvantage for Windows Forms puts the emphasis on rich user experience. There is a powerful hierarchical grid, a rich charting control, controls to support printing and print preview, and toolbars including a ribbon-style component. The Application Styling Framework lets you apply CSS-like styles to your Windows Forms application. Another suite supports WPF, including a DataGrid, DataCarousel, data entry controls and a ribbon control. Silverlight is supported with a range of line-of-business controls, including a WebGrid, masked editor and a tree view. Data visualisation is another theme, supported by a WebChart and a WebTagCloud. There is also an Excel control for reading, writing and displaying Excel worksheets entirely within Silverlight.

Telerik

Telerik has a broad range of controls for Microsoft’s .NET platform, covering ASP.NET AJAX, Windows Forms, WPF and Silverlight. Telerik makes a point of supporting the open-source Mono implementation of ASP.NET as well as Microsoft’s platform. The focus is on rich user controls and data visualisation. Telerik also keeps close to the latest developments. It was among the first vendors to support Silverlight and is also ahead of others in supporting ASP.NET MVC. There are five product suites. RadControls for ASP.NET AJAX includes a chart with numerous chart types and Silverlight interoperability, a docking control, a Captcha control for combating spam robots, a grid, a treeview and numerous others. The RadControls for WinForms is a suite of 53 controls including a RibbonBar, GridView, Carousel, and TabStrip. Some of the same themes appear in RadControls for WPF, which has 21 controls. RadControls for Silverlight puts the focus on line-of-business components for Microsoft’s browser plug-in. There is a GridView, DatePicker, TimePicker and an innovative cube for 3D navigation.

Share and Bookmark  

Comments

Be the first to comment about this article...

Leave a comment

You must login to place comments.