ComponentArt Web.UI 2007.1 for ASP.NET AJAX
How Suite It Is
By David Mack
Everyone wants to enhance the user experience of their Web site ComponentArt Web.UI 2007.1 for ASP.NET AJAX can definitely help you do just that. This suite of user interface controls provides the flexibility to build responsive client-side interfaces. ComponentArt has developed in WebUI what they call the AJAX Component Model, which eliminates most of the postbacks or callbacks required in typical ASP.NET programming. The suite also works with the existing AJAX technologies, such as UpdatePanel. Using different paradigms, the component model and UpdatePanel both provide ways to eliminate postbacks. Some of the suite s controls include: menu, grid, dialog, tree, calendar, tab strip, and navigation. There are others, but these were the controls I exercised for this review (with the main focus being on the menu, grid, and dialog controls).
The installation was simple and easy to complete. When you purchase a copy you get access to a license manager that will generate your key. This is important, because you ll need that key when you deploy your Web site. If you have your own server, you have more flexibility over how you deploy the WebUI controls. You can install WebUI on your server or you can deploy the license file. If your site is on a shared server you must deploy a license file. Trial-version installations don t get the full suite source code, but you do if you purchase the software. If you get a trial copy, WebUI makes it easy to upgrade to a full-licensed version.
The first thing I do when looking at new software is check how well the software is documented. ComponentArt did an incredible job of documenting this suite of controls. There are helpful examples, several code walkthroughs, and live demos to help you understand the tools. The thing that impressed me was how well the documentation was organized. I was able to quickly drill down to what I was looking for, with little effort. I was also impressed with how much online support there appeared to be for the suite; browsing the community forums showed regular interaction between the customers and ComponentArt staff.
All the controls have a client-side API, as well as a server-side API. This allows you to not only render the control on the client, but also programmatically change it. How you change it and when you change it is totally up to you; it can be done in PageLoad events or when a user presses a button.
I started with the menu control. Using the WebUI client-side API, I was able to programmatically create a fully functional menu. The client-side API was well documented and easy to understand. I was able to create dynamic menus based on which buttons were pressed on my user interface and no postbacks or callbacks were taking place. The client-rendering was smooth, with immediate refreshing. It was quickly evident how the menu functionality alone could enhance the user experience. One thing I do want to point out, however: When you drag and drop a WebUI control onto a Web form, it s not like dropping a server-side control. A server-side control comes with a default style, and you can use the smart tag to adjust how it appears. You don t get that with the WebUI controls. Instead, it relies on CSS for how the controls are displayed so if you aren t familiar with CSS, I recommend a tutorial or two before you start to use this product.
I used the grid control next because it s commonly used on Web forms and I wanted to see what WebUI had done to enhance it. I wasn t disappointed. The nice thing about the grid control is it allowed me to run in three different modes: callback, client side, and server side. The callback mode is ideal when you have a large number of records. The data is only refreshed while paging, and anything that is static is not re-rendered. I created a single-table database with 250K records. Then I programmatically created a grid control on a Web form to load the database. When I browsed the data, the data refreshed nicely and there wasn t any noticeable flickering. I also tried the grid control in client mode . Client mode is optimized for client-side paging, filtering, and sorting. You don t have the postbacks with this method, but be careful how much data you load using this method. The documentation warns you about performance degradation when you return a record set larger than 5000. I first noticed slower rendering when I returned a 5800-row dataset. I was able to programmatically change the grid based on which events were raised, permissions of the user login, and which rows were returned in the dataset. Any changes to the grid persisted until I generated a postback with the server. That s the case with most of the WebUI controls, but not all (for example, the dialog control, discussed below). Also remember that you can use the grid control, but to make it look appealing, you need to be familiar with CSS.
Figure 1: The WebUI grid control in action. No screenshot can illustrate how responsive it truly is.
If you have to support older browsers and you don t want the controls rendered on the client, it s possible to do so with a particular control or the entire suite. That s one of the things that appealed to me; that is, how much you can customize the way the controls are used.
The suite of tools is search-engine-friendly. I was able to verify this by using the suite on a page on my e-commerce site that is regularly indexed by Google. I created a grid control with dummy data in it to verify it was truly being indexed it showed up in the Google index for my site within a week. The WebUI suite also has good cross-browser support and displayed consistently in my testing, regardless of the browser.
There are two other versions of this suite: one for ASP.NET 1.0 and one for ASP.NET 2.0 (when you buy a subscription license you get access to all three versions). The version for ASP.NET 1.0 isn t as powerful in functionality as the ASP.NET 2.0 version or the AJAX version. The ASP.NET 2.0 version should not be confused with the ASP.NET AJAX version, which is the most powerful. The ASP.NET AJAX version does require you to have AJAX installed; if you re deploying your site to a shared hosting environment, make sure they have AJAX installed.
ComponentArt Web.UI 2007.1 for ASP.NET AJAX is a great suite of tools; it provides a great deal of functionality and is well worth the money. It will easily take a few days of playing with the examples and looking at the documentation to get an idea of what the suite is fully capable of performing, but the learning curve isn t too steep.
With the AJAX Component Model I clearly had more control over my individual pages than with standard ASP.NET. Playing with this suite convinced me it s time for me to update my e-commerce site and take advantage of this technology.
David Mack is a Senior Software Engineer for Northrop Grumman-TASC. He has 12 years of development experience. He loves classic cars and enjoys a 10 handicap on the golf course.
Web Site: http://www.componentart.com
Price: Subscription license, US$999