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.

99 comments:

Anonymous said...

That's pretty cool - I've played Halo 2 literally hundreds of hours - amd now you guys are using telerik products for your community site...

By the way - the newest r.a.d.editor (6.5) supports Opera 9, so no need for the javascript detection. I've blogged on this topic here:

http://blogs.telerik.com/blogs/rumen_stankov/archive/2006/07/13/270.aspx

Cheers,
Rumen Stankov

Anonymous said...

Oops, wrong link:

http://blogs.telerik.com/blogs/rumen_stankov/

James McNellis said...

I'm sure you probably found them when searching for AJAX libraries and such, but if not, the Prototype library is incredible for building just about anything.

http://prototype.conio.net/

We use Prototype at Halo2.Junk.ws to reduce perceived load times on our pages with larger queries.

If nothing else, AJAX is excellent in its potential, and it's cool to hear that Bungie.net is moving in that direction (maybe).

Anonymous said...

So you do have a life outside of B.net. :D

Nice work, and I can only compliment you on what you've done. Thanks. It's appreciated.

Mr Anon.

Anonymous said...

Love your work, Achronos! As a frequent user of Bungie.net, i'm really gratefull for all the stuff you do for us, and before this, i didnt even know you had to code the site yourself! Anyway, sorry about the cat thing, if you ever find who did that... I have friends with guns...

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

Great article! Thanks.

Anonymous said...

Thanks for interesting article.

Anonymous said...

Nice Blog!

Anonymous said...

Thank You! Very interesting article. Do you can write anything else about it?

Anonymous said...

Very interesting site. Blog is very good. I am happy that I think the same!

Anonymous said...

Nice! Nice site! Good resources here. I will bookmark!

Anonymous said...

Excellent website. Good work. Very useful. I will bookmark!

Anonymous said...

I see first time your site guys. I like you :)

Anonymous said...

QjygyR You have a talant! Write more!

Anonymous said...

P3S5fs Magnific!

Anonymous said...

fhpDrG The best blog you have!

Anonymous said...

6qTbCQ actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

Anonymous said...

Hello all!

Anonymous said...

Thanks to author.

Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

Anonymous said...

Magnific!

Anonymous said...

Wonderful blog.

Anonymous said...

Wonderful blog.

Anonymous said...

kidQku write more, thanks.

Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

Anonymous said...

Please write anything else!

Anonymous said...

Good job!

Anonymous said...

Thanks to author.

Anonymous said...

Please write anything else!

Anonymous said...

Wonderful blog.

Anonymous said...

Hello all!

Anonymous said...

Thanks to author.

Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

Anonymous said...

Wonderful blog.

Anonymous said...

Hello all!

Anonymous said...

Good job!

Anonymous said...

Please write anything else!

Anonymous said...

A flashlight is a case for holding dead batteries.

Anonymous said...

Magnific!

Anonymous said...

Energizer Bunny Arrested! Charged with battery.

Anonymous said...

Ever notice how fast Windows runs? Neither did I.

Anonymous said...

Clap on! , Clap off! clap@#&$NO CARRIER

Anonymous said...

Give me ambiguity or give me something else.

Anonymous said...

The gene pool could use a little chlorine.

Anonymous said...

If ignorance is bliss, you must be orgasmic.

Anonymous said...

Give me ambiguity or give me something else.

Anonymous said...

When there's a will, I want to be in it.

Anonymous said...

What is a free gift ? Aren't all gifts free?

Anonymous said...

Ever notice how fast Windows runs? Neither did I.

Anonymous said...

Lottery: A tax on people who are bad at math.

Anonymous said...

Ever notice how fast Windows runs? Neither did I.

Anonymous said...

Thanks to author.

Anonymous said...

I'm not a complete idiot, some parts are missing!

Anonymous said...

Give me ambiguity or give me something else.

Anonymous said...

Clap on! , Clap off! clap@#&$NO CARRIER

Anonymous said...

All generalizations are false, including this one.

Anonymous said...

640K ought to be enough for anybody. - Bill Gates 81

Anonymous said...

640K ought to be enough for anybody. - Bill Gates 81

Anonymous said...

Suicidal twin kills sister by mistake!

Anonymous said...

Ever notice how fast Windows runs? Neither did I.

Anonymous said...

Give me ambiguity or give me something else.

Anonymous said...

Please write anything else!

Anonymous said...

Clap on! , Clap off! clap@#&$NO CARRIER

Anonymous said...

Lottery: A tax on people who are bad at math.

Anonymous said...

When there's a will, I want to be in it.

Anonymous said...

The gene pool could use a little chlorine.

Anonymous said...

What is a free gift ? Aren't all gifts free?

Anonymous said...

Build a watch in 179 easy steps - by C. Forsberg.

Anonymous said...

640K ought to be enough for anybody. - Bill Gates 81

Anonymous said...

Lottery: A tax on people who are bad at math.

Anonymous said...

Build a watch in 179 easy steps - by C. Forsberg.

Anonymous said...

Lottery: A tax on people who are bad at math.

Anonymous said...

Please write anything else!

Anonymous said...

Clap on! , Clap off! clap@#&$NO CARRIER

Anonymous said...

I don't suffer from insanity. I enjoy every minute of it.

Anonymous said...

Beam me aboard, Scotty..... Sure. Will a 2x10 do?

Anonymous said...

All generalizations are false, including this one.

Anonymous said...

Magnific!

Anonymous said...

Energizer Bunny Arrested! Charged with battery.

Anonymous said...

All generalizations are false, including this one.

Anonymous said...

C++ should have been called B

Anonymous said...

When there's a will, I want to be in it.

Anonymous said...

Beam me aboard, Scotty..... Sure. Will a 2x10 do?

Anonymous said...

Clap on! , Clap off! clap@#&$NO CARRIER

Anonymous said...

Suicidal twin kills sister by mistake!

Anonymous said...

Give me ambiguity or give me something else.

Anonymous said...

Friends help you move. Real friends help you move bodies.

Anonymous said...

Thanks to author.

Anonymous said...

The gene pool could use a little chlorine.

Anonymous said...

Its awesome that your a bungie employee in halo3 do you have flaming recon if you do that's awesome well anyway see you on halo3

Anonymous said...

Instal covenant special they are looking difference representing unexcelled concupiscent [url=http://onlineviagrapill.com]buy viagra[/url]. Critique be propinquitous at to the residency badinage, remarkably the breaking typeface lawsuit [url=http://ambiendrug.com]buy ambien[/url]. This jackpot commonly come to pass in support and a showily be produced end as a be revealed forth in the entrants