RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Unveiling Windows SideShow : Page 2

Windows SideShow, an auxiliary hardware display, gives users the ability to use PCs even when they are turned off—and developers get to provide the content.

The Technology Behind SideShow
SideShow supports a very wide variety of devices that can be used as aux displays. The current expectation is that most third-party vendors will use devices based on the SPOT operating system (the same OS Microsoft uses in the MSN Watches), which run a very small version of the CLR (Common Language Runtime) known as Tiny CLR. However, aux displays can also be based on even less expensive devices that are less powerful, with very primitive processing and display capabilities. (Such devices could be built into keyboards, for instance, as shown in Figure 4.) On the other end of the spectrum, SideShow devices could be based on Windows CE, or, in the more distant future, even more sophisticated operating systems.

Figure 4. Keyboard SideShow: This concept art shows a keyboard with a simple built-in Windows SideShow-compatible device.
For developers, the actual device and its exact hardware configuration are of secondary importance. In most cases, developers will simply send information to the device in a format known as Simple Content Format or SCF. This format is based on XML and is somewhat similar to a simple version of HTML. In all but the most unusual scenarios, developers will not have to worry about differences in device capabilities, as each device will know how to use the provided content in the most applicable way. Only in cases with very unusual capabilities (such as extremely limited or extremely sophisticated displays) may developers want to create more or less verbose content that gets sent to the device.

Applications can send information to SideShow in an HTML-like content format known as the Simple Content Format (SCF).
Developers can communicate with SideShow devices using the SideShow SDK, which is part of the Windows Vista SDK. (SideShow is a Vista-exclusive technology). The SDK provides all the components needed to interact with devices, as well as device emulators (see Figure 5). Currently, the SideShow SDK is purely COM-based and thus targets C++ and pre-.NET developers. However, it is relatively easy to interop with the COM-based SDK from managed languages such as C# and Visual Basic.NET. Also, Microsoft is well aware of the importance of managed SDKs, so a native .NET version should become available as well. This means that both native and managed developers can easily interact with SideShow devices.

Figure 5. SideShow Emulator: This device emulator is provided as part of the Windows SideShow SDK.
Figure 6. Default Calendar: The default calendar implementation on a Windows SideShow-compatible device.
Figure 7. Mapping Gadget: Mapping gadgets allow users to look up directions without booting up the PC.
A Simple Example
Figure 8. Sample Schedule Bulder: This is the schedule builder Windows Vista example application
SideShow devices support a number of scenarios out of the box. This may include e-mail, calendar (see Figure 6), and map (see Figure 7) scenarios, but details have yet to be announced. There are great opportunities for third-party developers to add similar functionality to their own applications. The example here is a simple session scheduler application for a conference such as PDC, that can send session schedules to SideShow displays. The client application in Figure 8 is a standard Windows application that is noteworthy only because it communicates with SideShow devices through the SideShow API.

This sample application creates an in-memory SCF-formatted string similar to the following:

   <?xml version="1.0" encoding="utf-8" ?> 
     <menu title="Session Schedule" id="1">
       <item target="44115416" menuid="2">1:45pm  
         Windows Vista: Reaching Your Users When Their 
         Machine Is Off, Using Auxiliary Display 
       <item target="61494432" menuid="2">5:00pm 
         Windows Vista Tablet PC: Advances in Creating 
         Tablet Enabled Applications</item>
       <item target="6480969" menuid="2">5:15pm 
         Windows Vista: Developing Power-Aware 
Figure 9. Custom Conference Session Schedule: Content from the custom conference session schedule application displayed on a Windows SideShow-compatible display.
Currently, the application sends this SCF-formatted string to the device using the COM-based API. For managed (.NET) developers, this may sound a little scary, but in reality, it is pretty easy to wrap things in managed code. Microsoft will provide managed samples or a managed API in the Windows Vista timeframe. The resulting display on the SideShow device can be seen in Figure 9.

Note that it is entirely conceivable—even likely—that a single PC will have access to more than one SideShow device.

In short, Microsoft SideShow is a very exciting technology, enabling developers to implement scenarios and allowing users access to PCs in ways that were previously inconceivable or simply cost prohibitive. Actual aux displays are currently hard to come by (a fact that will change by or before Windows Vista ships), but developers can already start targeting this new platform using the Windows Vista SDK and the included emulators.

Markus Egger is president of EPS Software Corporation, located in Houston, Texas. He is also the founder of EPS Software Austria, located in Salzburg. He concentrates on consulting in COM-based, object-oriented development and Internet applications. He is an international author and speaker, and is co-publisher of Component Developer Magazine. He is also the author of "Advanced Object-Oriented Programming with Visual FoxPro," from Hentzenwerke Publishing. For the past several years, Markus has received the Microsoft MVP award. Several applications he has worked on (mostly as project manager) have received Microsoft Excellence Award nominations. He is the author of several tools, such as GenRepoX (public domain), the Fox Extension Classes, and Visual WebBuilder.
Email AuthorEmail Author
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date