ASP.NET VERSIONS: 1.0 | 1.1
Free Controls on the Web
Copious Complimentary Controls Abound on the Internet If You Know Where to Look
By Steve C. Orr
There are hundreds of high-quality third-party controls out there that you can use to make development easier. Most of the best ones cost a significant amount of money (although they often are worth it). However, there are some exceptions to the rule yes, there are fine controls available that are completely free of charge.
Why are they free? The reasons vary. In many cases, the developers are simply generous individuals. In other cases, a company may give away some controls for free to get you interested in other products they sell. No matter what the reasons are, you benefit. To that end, I ve compiled a list of free controls for your perusal and experimentation.
Menus & Navigation
A good menu/navigation system is something that every Web site of significant size needs and yet, amazingly, there isn t any such control included with ASP.NET. Therefore, most Web developers feel forced to build their own, reinventing functionality that has already been built countless times before. You can take a more efficient approach by using one of the fine menu controls available on the Internet. Following is a sampling of a few of the free ones from which to choose.
skmMenu is a standard-looking open-source dropdown menu that would generally be placed near the top of your page. You can configure colors, fonts, and sub-menus via code or bind to an XML file that holds this data. It has thorough documentation online and off and plenty of code samples.
Titanium Soft provides a free dropdown menu control, as well. Although the documentation is not as thorough as skmMenu, the menus appear to be slightly more polished visually, so they might be worth the extra experimentation. The source code is also available for free download, so you can beef up the functionality in case it doesn t initially meet your needs.
Timothy Humphrey has been generous enough to provide a fairly deluxe dropdown menu too, with detailed documentation and examples available to help you get ramped up quickly. It s configurable via XML files, and is available free of charge through a standard GNU general public license. He also provides some other interesting controls, such as a tab control and tree control.
Dommelen Slide Menu is a nice option if you want a menu on the side of your Web site instead of the top. It makes efficient use of space, while providing a familiar and friendly user interface. The only downside is the sparse documentation. There also is an interesting slide menu bar available for free.
obout Inc. s Slide Menu presents a user interface similar to the Dommelen Slide Menu, and ups the ante by providing plenty of online documentation and intuitive sample code that demonstrates the various ways the menu can be customized. Although the free basic version appears to be quite functional, there is a Pro version available for purchase that provides extra functionality, such as binding to an XML file.
Figure 1: obout provides a rich Slide Menu control free of charge that you can use to implement navigation for your Web site.
I don t mean to put down the standard ASP.NET DataGrid control it is, after all, light years ahead of any grid control that Web developers had available to them in the past. However, there is room for improvement. For starters, the standard DataGrid is very server-based, requiring postbacks to perform even the most basic functions. This makes the performance a lot weaker than it could be if the functionality were moved to the client side. Here are a couple of free grid controls that move sorting and paging to the client side, where it (arguably) should be for optimal performance in most situations.
The XGrid control by Carlos Aguilar Mares is another fine example of client-side grid functionality implemented as an Internet Explorer Behavior. It supports XML islands, row selection, and reloading the grid content without having to reload the rest of the page. It s all handled automatically; you don t need to know anything about XML or client-side code. The source code is freely available, and documentation and code samples are plentiful.
The SuperDataGrid by Superexperts shies away from the client-side functionality that is so tightly bound to Internet Explorer, and moves back toward the more widely compatible server-side functionality. It extends the standard ASP.NET DataGrid control and adds built-in functionality for paging, sorting, editing, and caching so you don t have to dirty your hands with such matters. This quality control was created by Stephen Walther, renowned author of the highly recommended book ASP.NET Unleashed.
I think it s fair to say that every Web site contains at least one textbox. The HTML textbox has been a standard for a long time, and it does its job quite well. Its only flaw is that it is just so plain. It can t display any fancy HTML formatting like people have come to expect from Windows applications. It provides no easy way for users to enter rich text, HTML content, or to restrict the content that users can enter. There are textboxes out there that will do these things, and more and they are merely a download away.
FreeTextBox by John Dyer is compatible with Internet Explorer and Mozilla browsers. The user interface is nearly identical to Microsoft Word, so your users should find it to be quite familiar and intuitive. It s also nearly as functional as Microsoft Word, providing a truly rich environment for users to enter nicely formatted documents.
Figure 2: FreeTextBox allows your users to enter richly formatted documentation and is ideal for content management systems.
htmlArea is another great WYSIWYG text editing control available to allow users rich text entry. InteractiveTools.com has generously provided this control free of charge under a simple BSD open-source license. Although they don t provide support for the control, they do provide a free forum on their Web site that appears to be full of plenty of answers to common questions, as well as thorough online documentation. If you have the luxury of dictating that your users have Internet Explorer 5.0 or above, then this is an easy to use control that will likely be a valuable resource in your toolbox.
Rich Text Editor by Export Technologies is another fine example of a rich textbox Web control that is compatible with Internet Explorer. The control, documentation, and sample code are available for free; however, the source code is not. There are several styles available programmatically and declaratively that let you customize the look and feel of the control.
Input Mask Control by Assisted Solutions is a great solution for limiting user input to certain types of values. From the user s perspective it works similarly to the classic VB6 masked edit control, so many users will find it to be quite familiar. Using Input Mask Control you can limit input to phone numbers, Social Security Numbers, ZIP codes, dates, times, and even a Canadian Social Insurance Number. Although the control is very simple to use, its functionality is also fairly limited. The masks are preset, so you can t enter your own customized masked formats, and the source code doesn t appear to be available, so you can t add them manually either.
15 Seconds provides VB.NET source code for a masked edit control that you can customize to your heart s content. The associated article provides all you need to know about the control and how to add your own masks.
FTP (File Transfer Protocol)
Alex Kwok has been gracious enough to provide a free component for handling FTP transfers because the current implementation of .NET has a mysterious hole where this functionality should be. This FTP client appears to have all the basic functionality you d expect, such as uploading and downloading files, listing directories, and deleting and renaming files. A healthy dose of sample code is also available.
GotDotNet.com provides another great example of an FTP client component. It allows you to upload, download, manage directories, and perform most other basic file operations. The VB.NET source code is freely available and well written. Sample code for using the control is also included in the download. An online forum lists many discussion topics about the component in case you d like to learn more about the inner workings and how to extend it.
Polls & Voting
Everybody likes to have the freedom to express their opinion. Online polls can be a fun reason for users to regularly return to your Web site. Online polls can also provide valuable feedback about the way your users think and feel. This information can then be used to mold your site into something they like even better. Creating a basic voting control isn t difficult, but creating a truly flexible and reusable control with a solid design takes more time than most developers have available. So save your valuable time and use one of these fine controls instead.
NetPolls from Votations.com is a flexible voting control that asks only that you register with their Web site. You can configure an unlimited number of questions in the form of radio buttons, checkboxes, and/or dropdown lists. It sports a fully customizable layout, and can be database driven. It s easy to get started with the control, and design time support is superb. The n-tier architecture is completely documented online.
Figure 3: Votation s NetPolls control is flexible, easy to use, database driven, and looks sharp.
Web wizard Scott Mitchell created a Content Rater control that will gather valuable feedback from users and faithfully store this information in a SQL Server database. The free C# source code is explained in detail, so you can easily extend this user control in case its already impressive functionality isn t enough to satisfy your requirements. You might start by converting it to a custom control so it will be more easily reusable across projects.
Figure 4: Scott Mitchell s Content Rater control can be a useful addition to nearly any kind of Web site.
Saravana Kumar has provided a nice, basic custom Web control that should take care of most MessageBox needs. You can display a basic alert message with an OK button, or you can display a confirmation message with OK and Cancel buttons. You can display the message when the form loads in the browser, or when the user hits the Submit button. You can also choose to execute custom client-side scripts upon user confirmation.
Figure 5: Mono Software s Dialog component provides a way to display standard-looking dialog boxes that are flexible and easy to use.
Fancy Buttons & Image Generation
Image buttons can really add pizzazz to a Web site, but the maintenance can be a real pain. Every time you add a new page you need new buttons, and creating them can get time-consuming and tedious. Put an end to this misery and keep the pizzazz by using one of the following controls.
Art Buttons from Progressive Consulting Technologies is an intriguing component that lets you dynamically create beautiful image buttons of various colors and styles. The final output is quite attractive, although slightly inconsistent from my testing. Theme packs are available for free download to expand the button style choices. Even though the documentation is sparse, there is some sample code with which you can play. I d say this component is worth taking a look at if you d like to save some time with your image-button generation.
Gavin Joyce released an ImageLabel control that will take any text and convert it to an attractive-looking image. You can control all kinds of properties, such as fonts, colors, sizes, borders, and shadows. The results look attractive and professional and are a fine addition to any Web site. The control is free, and the source code for it is available for US$40. An available online forum provides support.
Once again, Web wizard Scott Mitchell comes through for us and provides another fine component that acts as a Rounded Corners Panel control. You d think putting rounded corners on a box would be a relatively easy thing to accomplish in ASP.NET, but it wasn t until this Web control came along. The code to accomplish this is complex, but it is available to you for free and it s explained well (with lots of code samples). There are quite a few options available for adjusting the look and feel of the panel, including headers, borders, colors and fonts.
Can t Be Done Software (now part of Aspose Software) has provided a dazzling library of Web Effects that you can add to your Web site to give it real flair. Instead of a static, boring background, you can create animated backgrounds that look more like screensavers than wallpaper. Additionally, you can create dazzling cursor animations, with stars and stripes circling around the mouse cursor, and other effects that are better seen than described. I encourage you to view the live demos on their Web site to see what I m talking about.
Want to add a little Flash to your page? Well, Flashlight by NetBrick Inc. provides a quick and easy way to include Flash objects in your Web page, as well as any other component that uses the standard
Components that Defy Categorization
SharpZipLib is an open source project that enables you to implement file compression functionality using several of the most standard formats. The C# source code is well written and the online forum provides lots of Q&A.
.NET Communication Library is provided by ComponentSpot.com to handle NNTP needs. Although Outlook Express is a good enough newsreader for most folks, you can create your own usenet software with this open source component. ComponentSpot.com also provides several other networking components that you ll be interested in browsing if you re into that kind of thing.
Written in pure C#, FreeSMTP is a component by Quiksoft for creating and sending e-mails. Using this component you can send e-mails with as little as one line of code. There are no dependencies (other than the .NET Framework, of course) and it provides functionality that the standard System.Web.Main class doesn t, such as progress monitoring, file logging, and HTML messages with alternate body text.
PdfCreator by Serdar Dirican is a component that allows you to visually export content to a PDF document. You can design the document from within Visual Studio. The impressively complex C# source code is available for download, but you ll need to remember to import the System.Windows.Forms.dll to get it to work with ASP.NET Web applications.
ID3Util by Ambientware is an MP3 Tag Parser component that allows you to extract track information from MP3 files. The open source VB.NET code is a mere download away.
There are several Web sites out there that provide entire libraries of Web controls for you to browse. Many of the controls are free, and most of them at least provide free demos. When you ve got some time on your hands, I suggest you dig into these fine Web sites and mine the gold that is contained within.
In case you missed it, Microsoft released several free Web controls shortly after the release of ASP.NET. The download is quick and easy, and provides several controls that make fine additions to any Web developer s toolbox. Their TreeView control is one of my favorites, although there are also nice implementations of a Toolbar, Tabstrip, and Multipage control. As you d expect from Microsoft, the documentation is thorough, and there are plenty of examples.
You may have noticed that GotDotNet.com hosts several of the controls I ve listed in this article, and it has plenty more interesting controls and code samples that you may want to browse as well, such as ComboBoxes, Barcode Generators, Report Writers, and much more.
CodeProject.com provides dozens of open source Web controls, such as Schedule Controls, Master Page solutions, Cookie Encryption, and more.
SourceForge.net is the world s largest open source development Web site. It provides thousands of projects, although most of them aren t .NET, so you ll have to sift through to find the ones that suit you. Luckily, you can do searches and filters based on language. This site contains .NET projects for RSS news aggregators, SMTP, Bar Graphs, Wiki, etc.
If you don t know about http://www.asp.net by now, it s time you learn. The Control Gallery lists hundreds of Web controls, including Charting Controls, Navigation Controls, Image Libraries, and much more. Even though not all the controls are free, this Web site definitely deserves to be saved in your IE Favorites because of the sheer volume of useful information contained within.
MetaBuilders, headed by cohort Andy Smith, provides more than two dozen completely free high-quality Web controls. There are controls for practically every need you ll ever come across, such as a Slide Menu, a deluxe ComboBox, a Scrolling Panel (which retains its scroll position between postbacks), and an intriguing Master Pages system, just to name a few. The C# source code is freely available, as well, so you can learn from the master and build on his creations.
Carlos Aguilar Mares provides several nice free controls on his Web site, such as a client-side DataGrid (mentioned earlier), a WebChart control for creating charts and graphs, and an ExcelWriter component for exporting content to Excel. There are several other controls you may find useful, too; I recommend you take a look.
Excentrics World provides a dozen free Web controls that will likely come in handy at various points in your development, including (but not limited to) a Masked Textbox, Numeric Textbox, and Calendar Popup. Although the controls are free, the source code can be purchased for US$75.
411ASP.net provides links to hundreds of ASP.NET controls for Charts, File Management, Content Management, Site Statistics, and oh so much more. They aren t all free, but the variety is quite pleasing.
I d like to formally thank the authors of every control described in this article. I d also like to thank the authors of all other free components for providing so much for us all. Many of the listed sites provide links for donations, and I encourage you to give to them in much the same way they ve given to us.
That said, the control authors listed in this article are under no obligation to continue giving away their creations for free, and some may have removed them or started charging for them before you read this article. So enjoy them while you can, because great new controls appear and disappear on the Web almost daily.
If you ve written any controls of your own that you d like to share with the world, send them along and I ll see what I can do to publicize them and ensure they get put to good use by developers everywhere. It can be a good way to get your name in front of the public eye and enhance your career opportunities.
Steve C. Orr is an MCSD and a Microsoft MVP in ASP.NET. He s been developing software solutions for leading companies in the Seattle area for more than a decade. When he s not busy designing software systems or writing about it, he can often be found loitering at local user groups and habitually lurking in the ASP.NET newsgroup. Find out more about him at http://Steve.Orr.net or e-mail him at mailto:[email protected].