Microsoft Gadgets understood

Published on Thursday, September 15, 2005 By Brad Wardell In PDC 2005

Our story so far..

In 2000 Stardock released DesktopX which gave Windows support for desktop objects. These objects could be used to build entire desktops or exported as mini-applications called "widgets".

DesktopX became pretty popular with millions of users downloading it and trying it out.  Unfortunately, most of the content created by developers looked like it was made by developers.  3 years later, a Mac developer released Konfabulator which also created mini-applets.  They wisely included a series of incredibly polished looking widgets that showed off what could be done.  Combined with excellent marketing, Konfabulator became very well known.

In 2005, Stardock released DesktopX 3 which also came in a Pro version that could create gadgets.  Gadgets are like widgets except they don't require the user to download an enabler. The gadget contains the executable code within it it needs to function. 

In July 2005, Yahoo acquired Konfabulator rebranding it Yahoo Widgets.  The question came up, what is DesktopX's future? Why would developers create widgets/gadgets for DesktopX over making them for Konfabulator?

The answer came in September 2005 with Microsoft's announcement of Microsoft Gadgets.  From an end user point of view, Microsoft's gadgets are identical to Stardock's gadgets.  However, under the cover, Microsot's gadgets are different and use what we'll loosely call the shared Gadget specification that I will discuss below.  The bottom line is that by Windows Vista, gadgets are gadgets are gadgets. The reason for developers to target using DesktopX rather than Yahoo Widgets is that DesktopX's gadgets won't require additional downloads and will support Microsoft's gadget technologies.

So what is going to be the shared gadget specification?

1) Exported gadgets can be .EXEs or .GADGET.  But only .GADGET files will be able to be docked on the Windows Sidebar.  We hope for both implementations to work on Stardock ObjectBar (see screenshot above).

2) A .gadget file is a container file (.ZIP or .CAB renamed). 

3) Inside the .gadget file are:

  • A Gadgets.xml file that describes what the gadget is and provides its security settings.
  • A XAML file that describes the visual elements of it
  • A .CS file (or other scripting file) that handles the logic of it
  • A PNG file that acts as the preview/icon for it

A .gadget file is essentially the same in concept as a .dxpack file today except that .dxpacks contain INI, XML, and PNG files.

What will make the next generation gadgets interesting is Avalon (Windows Presentation Foundation).  Vector based, 3D accelerated content.  You will be able to make gadgets through a variety of methods.  Microsoft's "Sparkle" app would be one example.  DesktopX would be another way. How developers make gadgets will likely come down to their own preferences (and cost -- DesktopX Pro is only $69.95).

Stardock plans to write a plugin that will allow existing gadgets to run on the Windows Sidebar.

DesktopX will have a few examples as a gadget development platform in that it is designed specifically for creating this kind of content (desktop content -- .desktops or .gadgets or widgets).  Whereas Sparkle is a generalized platform with the developer having to do more of the work themselves.  To use a paint program analogy, Photoshop is popular partially because it comes with tons of filters and other things that are handy to artists.  The convenience comes in the form of included tools for making the kinds of things people who created gadgets are likely to want to make use of.

The point being is that there won't be a bunch of different types of gadgets specifications.  Our goal is to make DesktopX to be able to create Avalon based gadgets and provide a path for users and developers to take maximum advantage of all the cool new features coming out in Windows Vista.  Of course, this won't happen overnight. Windows Vista is still a ways off.