Welcome to the The not so ‘Out of the Box’ Web Part mini series. This mini series is motivated by a few requests from people asking me how to write AJAX based web parts. This is the first part of a 6 part series in developing a SharePoint v3 based web part with a somewhat controversial background. I will be adding rest of the pieces at least once a week.

Microsoft has had some great demos around SharePoint Portal Server 2003. My favorite being the Contoso Portal (a hypothetical pharmaceutical company). What attracts most people’s eyes on the Contoso Portals’ home page is the Server Status web part. This web part uses a traffic light system to describe the status of various servers i.e. Email, File, Web, Print etc.  

At a glimpse the user can see the status of an entire farm, an invaluable tool for anyone who is having a bad IT day – unless off course it’s the SharePoint server which goes down.  As you can tell the server status web part is a useful little web part. So why talk about re-creating it? Have not the SharePoint team worked hard to extend the available ASP.NET 2.0 Web Part classes to incorporate the old Web Part classes? Yes they have and also guarantee that most pre MOSS \WSSv3 web parts will work on MOSS and WSS v3. Then what you ask?

Well it turns out that the server status web part of all things is a GIF image. It’s just eye candy, apparently they did not have enough time to write a real one. Nevertheless now we have taken the challenge to develop it, to complicate things just a bit further, let’s also make this our very first MOSS\WSS v3 web part.

Before we start developing the web part, lets jot down some expectations:

  • A server should be reported as Healthy, Crook or Collapsed.
  • A traffic light system is to be used to report the health (strangely very similar to the KPI notation).
  • Display the current status of the web server at regular intervals, preferably without reloading the page.
  • The number of servers should be configurable in the browser.
  • The measure of health is to be configurable in the browser and should be based on CPU utilization and memory usage.
  • The interval or refresh rate of the status is to be configurable in the browser too.

That’s it for today, Next to follow in The not so ‘Out of the Box’ Web Part mini series:

  • Web Part 101 – Good Design
  • I am a ASP.NET 2.0 Web Part
  • The Magic .NET Class
  • The Problem Piece, Should I Ajax
  • Packaging it up, sending it Off