Monday, July 10, 2006

AJAX and Bungie.net

I recently (well, a few months ago) came upon a problem. I was tasked with improving the bungie.net content system to make things easier on the content editors. The first obvious task was to change the way the top stories were handled back to being in the database like every other kind of news. But in doing so, we had to figure out a way to still allow the editors a high degree of control over the appearence of their content without having to resort to editing HTML code. At the same time, this content system had also handle generic pieces of content on the Halo 3 product information page and allow for the addition of new content and layout without developer intervention. And it all had to be done before E3 (at this point it was 2 months into the future).

So - the problem was that I had to create a way for the editors to create pages without developer intervention, have a high degree of control, and layout had to be able to change too. After some research, I decided that going for AJAX implementions of such systems was the proper step forward. Doing so would allow me to use the Halo 3 product information page as a prototype to see how far I could take it without substantially changing the look and feel of bungie.net.

The problem, though (and the point of this post) - was AJAX itself. I didn't want to write the Javascript directly - dealing with as many browser variations as we do, I didn't have time to do that kind of thing. Besides, I'm more of a C# guy anyway. I looked at Atlas, but Atlas is in Community Preview. I have a production website - that wasn't going to cut it (remember, this is early March).

Thankfully, I found a controls vendor that seemed to have everything I needed with favorable licensing terms: the Telerik r.a.d.Controls. These controls were great and well supported. One of the best things about them is that they hide a lot of the complexity, but do it in a way so that the complex behaviors are still available if you want to program at a lower level. They also recently made everything Atlas-compatible, so I can still use that technology if I so desire. I recommend you check it out if you do this sort of thing.