Tuesday, June 06, 2006

ASP.NET Ajax Toolkit Comparison

I have been working on an assignment where I will be recommending an Ajax Toolkit for ASP.NET 1.1. Some client requirements that are influencing the decision are

· The ASP.NET 1.1 Ajax implementation will be a stop-gap solution until .NET Framework 2.0 is rolled out.

· An ASP.NET 1.1 implementation is required because business projects have requirements that can be met with Ajax functionality, and business projects are scheduled to be delivered before .NET Framework 2.0 is rolled out.

· ASP.NET 2.0 implementation for asynchronous functionality will be Microsoft’s Atlas toolkit

I have already formed an opinion before I found the work of Daniel Zeiss who has put together a very detailed matrix for comparing Ajax toolkits. I had done something similar, but with fewer vendors. The good thing is that after reading Daniel’s comparison, I was even more comfortable with recommending Anthem.NET for the implementation.

I reviewed Ajax.Net Pro, Anthem.NET, and Telerik as potential stop gap solutions until Atlas can be implemented. Here are my comments on each toolkit.

· Ajax.NET Pro – This toolkit seems to be widely used with a significant user base. If you need more evidence, subscribe to the newsgroup, and you inbox will be flooded. My complaint is that the project is so active that I think it is too unstable with many builds per week. In addition, the lack of server control support and execution outside the regular ASP.NET page / control lifecycle make development with this toolkit somewhat unnatural. This toolkit also requires the developer to write a lot of JavaScript code to implement the simplest functionality.

· Anthem.NET – Anthem.NET offers a suite of ASP.NET server control that inherits from the ASP.NET web controls. Anthem.NET honors ViewState and the ASP.NET page and control lifecycle. Therefore, development with toolkit conforms to common ASP.NET development practices and habits. There seems to be a slight concession with regards to bandwidth when compared to Ajax.NET Pro, but I will concede some bandwidth for shorter development cycle. Developing with this toolkit allows the developer to write server-side code in c# rather than writing a lot of JavaScript code. This toolkit also seems to be the most consistent with ATLAS (which is the long-term implementation for my client). The Anthem.NET project supports .NET Framework 1.1 and 2.0, and uses a conditional compilation value to build the appropriate framework version.

· Telerik – Offers a suite of controls, but really looks to be overkill for a stop-gap solution that will be replaced by Atlas within 6 months.

So, Anthem.NET is my recommendation for the interim Ajax toolkit solution.

By the way, I used Fiddler to capture HTTP traffic for each Ajax implementation when I wanted to understand more detail about what was going on under the hood. This is a really cool tool that should be useful to any web developer, and one that I have been using very successfully. It is much simpler to use than some other more advanced packet sniffers such as packetyzer or etherreal. From my experience, the trace is difficult to understand when too many network protocols are captured and creating a filter to only capture HTTP traffic was more involved than I wanted it to be. So, when debugging my ASP.NET applications, Fiddler gets the job done in a fraction of the time