One of the perpetual thoughts tumbling in my head revolves around the SharePoint user experience (I had recent posts here and here on this topic). In my opinion, WSS3/MOSS represents an enormous step forward from WSS2/SPS in this area, but there are still significant opportunities for improvement.
Which brings me to the topic of this post. I think one of the ways that the SharePoint user experience can be enhanced is to extend the boundaries of the WSS application beyond the Internet browser.
This post will be a quick walkthrough of a proof-of-concept that I worked on recently to create a Windows Vista gadget that displays information coming from a SharePoint list and uses Silverlight as the presentation mechanism. Functionally, this gadget is similar to a subset of the KPI functionality available in MOSS: it displays a visual indicator (green/yellow/red) based on the number of items in a given list and view. (So why not use the MOSS KPI functionality? I wanted this POC to work with both WSS and MOSS…)
You can see it in use in my Sidebar in the screenshot at right. Each of the two rectangles — one green and one red — is a performance indicator that I’ve specified and whose data is coming from a SharePoint site. There’s not really that much to it: the user specifies the list and view and parameters for displaying colors (more on the settings screen in a second) and the gadget polls the SharePoint list each minute to get current status.
Technically, the procedure that the gadget uses is:
- Executes a WSS web service call against the specified list and view.
- Checks the number of items in the specified view, and determines what color the indicator needs to be.
- Using Silverlight, transitions the color of the indicator, if necessary.
As you can see, there’s nothing very fancy here. However, I think it’s a compelling example of ways to use other components of the Microsoft solution stack to increase the value of the SharePoint platform in particular. The user doesn’t have to be actively using SharePoint — or even using a browser — to benefit from the information that SharePoint is managing.
Aside from the visual indicator on the sidebar, the other user interface portion of the gadget is the settings flyout (at left). This UI allows the user to specify a SharePoint site URL, the name of a list in that site, and the name of a view in that site. Then it allows for parameters to be specified for red (bad) and yellow (warning) thresholds. It infers whether higher values are better or worse depending on the context of the numbers entered. Finally, the gadget makes use of Silverlight to draw the actual indicator and to run animations between colors.
There are certainly a number of enhancements that you could make to even this simple example: use a MOSS KPI list; perform better animations with Silverlight; program "flyout" functionality when the indicator is clicked to allow additional information. There are lots of possibilities.
My intent was not to provide a complete solution, but to get my own juices flowing on the opportunities for increasing the relevance and value of the SharePoint platform for knowledge workers as they interact daily with their computers. Hopefully it can help you out, as well.
I think the combination of technologies demonstrated here offers tremendous potential: SharePoint allows easy access to information via web services; Silverlight provides rich user experiences (in both look/feel and functionality); and the Vista sidebar is an easy-to-develop-for mechanism for always-on presentation to users.
I’ve provided links to the gadget and code below, as well as some resources I found while working on this project.
- Download the gadget
- Download the source for the gadget
- If you’re just getting started with gadget development, start here. (It hasn’t been updated in awhile, but everything I found was still relevant.)
- If you’re just getting started with Silverlight development, start here.
- I also found this blog entry on incorporation of Silverlight into Vista gadgets to be worthwhile.