The most common complaint I typically have with the ASP.NET AJAX books I review is that they simply don’t cover JavaScript in enough detail. JavaScript represents half of the nouns in the AJAX acronym, and all of those relevant to ASP.NET AJAX.

For that reason, when I read a book that only contains a few pages about remedial JavaScript and then jumps directly into using UpdatePanels and Timers, I don’t recommend it to you.

However, I was very impressed when I began reading Adam Calderon and Joel Rumerman‘s recent book, Advanced ASP.NET AJAX Server Controls.

Building a solid foundation

The book starts out with a primer on JavaScript fundamentals and its primitive datatypes. Basic but important things like how setTimeout and setInterval work, how to implement try/catch blocks in JavaScript, and some brass tacks about JSON arrays.

Without wasting any time, the book quickly transitions to more advanced topics such as variable scoping, object oriented JavaScript, and then into the specific client-side functionality of the ASP.NET AJAX framework. Everything from using the ASP.NET AJAX Enum class to how to overcome the tricky issue of maintaining scope in event handler callbacks is covered.

How that foundation applies to ASP.NET AJAX

Following a natural progression, the book moves on to ASP.NET AJAX’s client-side topics. First components, and then on to the Sys.Application class. Between those two chapters, you will learn just about anything you could possibly desire about elegantly applying ASP.NET AJAX on the client-side. These chapters pick up where most online information ends.

Have you ever wondered how to make your own client-side controls that can be instantiated via the $create command? By this point in the book, you will know.

Adding server controls and partial postbacks to the mix

Having established this base of client-side knowledge, the book moves into territory of how to encapsulate that JavaScript functionality in server controls.

For example, ASP.NET 3.5’s ScriptControl class and its underlying IScriptControl interface are described in excellent detail. If you’ve previously emitted complex JavaScript on the server-side by using a StringBuilder, you’ll love how much cleaner this approach is.

Localization is given first class treatment, with an entire chapter devoted to the topic. This is a particular focus that I’m a bit weak on, and I found the chapter to be very enlightening. I expect that I’ll be referencing back to it often in the future.

Continuing the theme of moving from lower to higher level concepts, this section of the book is concluded with a chapter about working with partial postbacks. If you’re creating a server control with functionality that must persist throughout the trials and tribulations of the UpdatePanel, there are unique issues that you will have to work around, and this chapter shows you how to addresses them.


What would an AJAX control be without a method for client-server communication?

WCF services, page methods, and HTTP Handlers are given roughly equal attention in this section of the book. Because WCF services and HTTP Handlers generally seem to be underused, the clear, practical explanation of how to use them is valuable.

Going further, Chapter 9 goes into detail about ASP.NET AJAX’s built-in services to simplify asynchronous authentication and access to role/profile information. The chapter also explains how to wire up all of the preceding communication methods, via web.config edits.


Advanced ASP.NET AJAX Server Controls is absolutely packed with information about intermediate to advanced level ASP.NET AJAX development. While the book is ostensibly focused on developing server controls, I believe that the material is applicable to most intermediate+ ASP.NET AJAX development.

As alluded to in the introduction, I especially approve of the thorough JavaScript primer. Too many books expect that you know these things at the outset. Yet, the truth is that many ASP.NET developers do need help with the more advanced JavaScript concepts, since they are so foreign coming from a static language such as C# or VB.

The flow and pacing of the book makes for good reading cover-to-cover, but it is also organized well for continuing reference. I can definitely see myself referencing a few sections of the book in the future myself.

If you plan on building server controls that work with ASP.NET AJAX or just want to gain a deeper understanding of this aspect of the framework, this book is for you. I highly recommend it.

Free copies up for grabs

As previously alluded to, I have a few copies of this book to give away.

The contest is going to be a little more involved than the last one, but I think it’s going to be a lot of fun. We’re going to create an open source ASP.NET AJAX server control on CodePlex, and free copies of the book are going to go to three of you based on various aspects of participation (not limited exclusively to coding contributions).

To be fair to the people still on vacation this week, I’m going to wait until early next week to officially kick it off.

However, I’ll give you a hint for now: System.Web.Security.Membership.