BrowserHawk 10.0
Sophisticated Browser Detection and Logging
October 30, 2009
asp:review
BrowserHawk 10.0
Sophisticated Browser Detection and Logging
By Steven A. Smith
Browser and browser feature detection have been requiredin many Web applications since the early Netscape versus Internet Explorer daysof the 1990s. While it is possible to use custom logic to detect USER_AGENTstrings or the Browser object in ASP.NET, it is difficult to keep suchtechniques current with the latest versions of various browsers. Additionally,with such an approach, one cannot detect how a user s browser or system isactually configured, such as whether certain plug-ins are installed. Forreal-world applications that simply must work on a variety of browsers,BrowserHawk offers a solution to this problem.
As the developer of a large community Web site (http://ASPAlliance.com) and an advertisingnetwork that supports the .NET developer community (http://LakeQuincy.com), I have usedBrowserHawk for many years. The latest version, 10.0, continues to offer thecore functionality on which I ve come to rely, while adding some interestingnew performance monitoring features. Specifically, BrowserHawk s new Page LoadTime (PLT) feature offers a way to measure real user-experienced page loadtimes. This information is critical for ensuring Web pages are loading quickly,especially because most users will not tolerate much of a delay before givingup and abandoning a site.
At the Core
BrowserHawk s core function is to detect the user sbrowser and system configuration. This provides Web developers with an easy wayto optimize their site accordingly. BrowserHawk is capable of detecting morethan one hundred browser and system settings, some of which are shown in Figure1. Common uses of BrowserHawk include detecting the presence of a Flash player,detecting the user s connection speed, and detecting whether JavaScript isenabled. Using this information, a page could be written to deliver rich videovia a Flash player to users with Flash and a broadband connection, whileoffering other users alternative content, such as static images or a link todownload-required software.
Figure 1: BrowserHawk s Editorallows browser definition data to be inspected and updated.
In addition to detecting browser settings within thecontext of a page request, BrowserHawk also offers logging capabilities thatprovide analytics not possible with traditional Web analytics software. A userID or session ID can also be associated with this logged data. This is veryuseful for troubleshooting Web site errors reported by an end user, becausesupport personnel can pull up a detailed profile of the user s browser andsystem configuration. This information makes it far easier to reproduce anissue.
For this review, I downloaded a copy of BrowserHawk 10.0from cyScape s Web site and ran the installation executable. The wizard walkedme through the set-up procedure, including setting up some Web servicesrequired for the (optional) reporting piece of the product. An evaluation keywas e-mailed to me and is required as part of the set up (alternately I couldrequest one via BrowserHawk s Web site). As part of the set up, I configuredBrowserHawk to automatically retrieve updated browser definition files fromBrowserHawk s Web site, ensuring my server would always have the latestsettings. At the conclusion of the set up, I launched the installed samples onmy local Web server; they ran as expected. One sample displays the most popularsettings, as shown in Figure 2.
Figure 2: BrowserHawk shows the mostpopular settings detected in one of their samples installed with the product.
In general, BrowserHawk s detection techniques happenalmost instantly, without affecting perceived page load times. Some of theExtended Properties require interaction with the user s browser, and can have anoticeable effect on page load time, depending on which properties are beingdetected. The extensive documentation covers these considerations in detail. Typically,the user s settings are only detected once, after which they are cached,eliminating any delay imposed by the browser feature detection for subsequentrequests from that user.
One thing that sets BrowserHawk apart from many othercomponents with which I ve worked is the maturity of the product, asdemonstrated by its stability. In the years that I ve been using the product,it has very rarely required any debugging on my part; when it has (in responseto Microsoft updates to IIS or Windows, typically), the support from cyScapehas been fast and effective.
Page Load Time Detection
Page Load Time (PLT) detection is the biggest new featurein the 10.0 release of BrowserHawk. It is remarkable because it enables loggingof actual users load times, as opposed to simulating load times using loadtesting tools powered by bots. The benefits of this approach should be obvious:real data from real users over real networks, no need to set up and configurenumerous bots to simulate user behavior, and the ability to correlateperformance data with other user and site metrics. PLT currently supports IE 6+and FireFox 1.0+, as well as other Gecko-based browsers released since February2006. It automatically disables itself on unsupported browsers.
Setting up PLT involves adding a few lines of code to eachpage that you would like to track (or just to your master page or header usercontrol or include file if you want to track many pages in your site). Oncethis is configured, the response time data is recorded in the configureddatabase as pages are requested. This is achieved via a separate call from theclient to a Web service configured for tracking this data, and because itoccurs after the page has been loaded, it should be generally transparent tothe end user. The actual data recorded depends on what you configure in thecode you add to each page, but typically includes the latency, page load time,intra page load time, hittype , and the User ID or Session ID you assign, ifdesired. See http://www.cyscape.com/products/bhawk/page-load-time.aspxfor more information.
Optionally, the captured statistics can be displayed on apage by specifying HTML elements with specified IDs, such as plt_latency. Thesewill be updated with the measured data within the client page, without anyadditional calls to Web services or server resources. By turning this featureon for certain roles, or displaying these metrics in comments on every page, itcan be very easy to check the actual load time for any given live page at run time.
Conclusion
BrowserHawk from cyScape is a very mature, robust, andfeature-complete browser analysis tool. It is the leader in the marketplace andprovides a simple, maintenance-free approach for detecting each user s browserand system configuration and ensuring your minimum system requirements for thesite are met by each visitor. It also provides analytics and unique loggingfeatures to help organizations derive more value from their site. BrowserHawkintegrates with a .NET-based Web site in just minutes, and is verystraightforward to install and get started. A fully functional evaluation isavailable from the cyScape Web site.
Steven A. Smith (http://aspadvice.com/blogs/ssmith)is a Microsoft Regional Director, ASP.NET MVP, INETA Speaker, and ASPInsider.He has written two books on ASP.NET and runs one of the most popular .NETdevelopment communities, http://ASPAlliance.com.Steven and his wife Michelle run Lake Quincy Media, http://lakequincy.com, which manages sponsorsand advertising on more than 60 .NET developer Web sites.
Rating:
Web Site: http://www.cyscape.com/products/bhawk/
Price: Startsat US$399
About the Author
You May Also Like