Documentation
Step-by-step instructions on how to develop a sidebar gadget are available at:
- http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx
- http://microsoftgadgets.com/Build/SidebarTutorial.zip
- http://msdn2.microsoft.com/en-us/library/ms723694.aspx
- http://msdn.microsoft.com/msdnmag/issues/07/08/sidebar/default.aspx
Reference documentation is available at http://msdn2.microsoft.com/en-us/library/bb508511.aspx
Implementation
I am always trying to start this type of RAD development from an existing example. The sample that you build in http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx is a good starting point.
In our final gadget, the html is simply a div which is filled by Javascript code when the gadget loads:
- The Javascript event handlers are hooked as described in http://msdn.microsoft.com/msdnmag/issues/07/08/sidebar/default.aspx
- On page load we do one of three options:
- If running on Windows 64 bits, we display a message because Flash does not support 64-bit systems.
- If connection is offline, we display a message
- Otherwise, we display the applet
The recommended approach to test a 64-bit platform is to use the System.Machine.processorArchitecture property but this always returns [Object error] on my 64-bit DELL Precision M65. So I have used System.Environment.getEnvironmentVariable("PROCESSOR_ARCHITECTURE") which seems to work consistently over the few Vista computers that I have tested.
There is apparently no function in the framework to check if the network connection is online, so I have used the same approach used in the Google Desktop Gadget.
I have only experienced one hitch in the implementation: the Flash applet catches the mouse events before the Sidebar. As a consequence, the gadget toolbar at the top right of the gadget is never displayed, which prevents from closing or moving the gadget. The workaround I have found is to add an image at the top of the Flash applet, so that when the mouse goes over this image, the gadget toolbar is displayed.
Packaging
You can package your sidebar gadgets as .zip files or .cab files renamed into .gadget files. I have used the following batch file to produce a proper package from sources located in "D:\Documents\Velodoc Sidebar Gadget\Sources". The batch file should be located in the parent directory:
rem ** remove/create a test gadget folder
rd "%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\Velodoc.gadget\" /s /q
md "%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\Velodoc.gadget\"
rem ** copy all of the files into test area
xcopy .\Sources "%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\Velodoc.gadget\" /y /s /q /EXCLUDE:exclude.txt
%SystemDrive%
cd "%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\Velodoc.gadget\"
"%VS80COMNTOOLS%Bin\cabarc.exe" -r -p n "D:\Documents\Velodoc Sidebar Gadget\Velodoc.gadget" *
pause
Test and debugging
Testing and debugging is relatively easy, considering the logic is in the Flash applet. Simply double click the gadget file to install and test. There is no need to uninstall before a new install, provided the gadget is removed from the Sidebar.
Distribution
Once your gadget is ready, follow the instructions at http://gallery.live.com/submit.aspx to publish it on the Live web site.
No comments:
Post a Comment