The technology’s kind of neat too, so I thought I’d do a quick round-up of what we’re using.
Chat - Tinychat
For the real-time chat, we’re using Tinychat. We took a look at a few technologies (including LiveMeeting and IRC!), but at the end of the day, nothing else was as lightweight and easy to use as Tinychat. I do have a couple gripes (limited size of the window, and an annoying habit of Tweeting on users’ behalves), but it seems to be the best at what it does.
Surveys - PollDaddy
AJAXy Goodness - ASP.NET MVC and JQuery
Our goal in creating the Windows Azure Lounge was to have the flexibility to modify everything during the chat. That includes a list on the sidebar of the Microsoft employees who are present in the chat, the agenda, and surveys that we create on-the-fly based on what we’re hearing. Because the chat window itself is embedded in the application, having users refresh to see changed content wasn’t an option.
These days most web applications I build use ASP.NET MVC, and this was no exception. I used partial views and JQuery script to handle the AJAX here. The most interesting bit was probably a small but important animation that highlights new surveys in yellow as they appear. I’m using output caching to avoid having to build similar lists and HTML over and over, and the timeout on the cache corresponds with the client-side timers on the page that fetch the content.
Getting it Out There - Windows Azure
This was something of a rush job. I spent about a day and a half doing the design and writing the code, and approximately no time deploying it, thanks to Windows Azure. For the few dynamic things we’ll manage before and during the chat (start time, agenda, employee roster, and survey list), I created a simple admin page protected by a password. The data is stored in a single entity in Windows Azure tables.