Windows Vista Sidebar Gadgets - Widget Summit by forrests


									Windows Vista Sidebar Gadgets and Windows Live Gallery
Chris Butler Lead Program Manager

Gadgets (aka widgets)
From Wikipedia:
Light-weight, single-purpose applications that can sit on the user’s desktop or are hosted on a web page.

One name, many places…
Sidebar Gadgets
HTML, enhanced graphics and APIs

Web Gadgets for and Spaces
HTML, APIs for network access

Hardware devices, C++ interaction Sidebar can send data to SideShow device

Windows Vista Sidebar
My “dashboard” of information I need at my fingertips Tools to help me make my work or personal life more efficient Makes my desktop my own

Sidebar and Gadgets Demo

Using Sidebar
Sidebar starts by default
If machine has more than 512 MB of RAM If session is not a remote session Sidebar is present and starts on all SKUs

Three gadgets are shown by default
Slide Show, Clock, Feed Viewer

Does not cover other windows by default

Using gadgets
Gadgets are started via the Gadget Gallery
List of all installed gadgets Double-click, drag to start gadget Searching and more info features

Single gadget can be started multiple times
Settings for each instance are independent

Common gadget UI
UI widget bar on hover
Close, settings, move widgets

Any unused region allows click+drag

Settings dialogs
Optional, provides common dialog look Region for items specific to gadget

Optional, allows more information be shown Controlled interaction for dismissing flyout

Gadget configuration
Drag up and down sidebar Drag off sidebar and around desktop Always on top

Opacity with always on top option on desktop

Sidebar page
Drag from desktop to particular page No dragging between pages

Gadgets included with Windows

Policy configuration
Admins can disable all user gadgets Block installation of user gadgets No allow or deny lists
Signer information is not stored after extraction

Gadgets can be rolled out as any other file
Drop into Shared Gadgets directory

Gadget Development
HTML Basis
.html loaded into MSHTML (COM hosting)

Absolute minimum of changes necessary
Setting body width (~130px, docked) Background PNG with transparency Settings dialog and store

Sidebar gadgets and IE
Rendering and scripting are the same Internet Options and security are separated Status bar, alerts are not present

Gadget HTML visual pop
Background layer with desktop blending
Tags: <g:background> APIs: background.addText(“Some information”) Alpha channels via PNG Layer can have images, text, effects added

HTML content
Must be over fully opaque region

Some effects available in HTML
Also through tags: <g:image> Also APIs: rotation, glow, shadows

Mature graphic library Graphics library only available in Gadgets

Gadget platform security
Gadgets are a similar model to applications Core security principal
Gadget runtime model is application-like Current development model is web-like

Gadgets are hosted in Local Machine Zone of MSHTML Gadgets run with same privileges as current user
Sidebar will not elevate – no UAC prompts

Prompts when downloading are similar to prompts for .exe downloads

Securing your gadgets
Never trust input, never
Always validate and sanitize

Prevent man in the middle attacks Review for common security bugs More information in an article by Michael Howard and David Ross: bb498012.aspx

System APIs
System object injected into HTML script
Information about Gadget and Windows

APIs only available inside Sidebar
ActiveX for all other extensibility


Types of gadgets
Quick information
E.g. clocks, weather, stocks, etc.

Drag and drop targets

E.g. FTP upload, shutdown, etc.

Countdowns E.g. Halo 3 countdown, World Cup scores

E.g. Slide show

Sidebar best practices
Security, security, security Have a good docked and undocked experience Allow footprint minimization Don’t cycle a lot Looks good == feels good

Sidebar questions?

What is Windows Live Gallery?
One-stop-shop to personalize your Windows and Windows Live experiences Getting the right personalization content to the right user Publishing platform for great distribution Lastly, most visited gadget site on the internet today (Nielsen//NetRatings)

Windows Live Gallery demo

Sidebar gadget space today
International: over half are outside of the English language Less about market specific, more about language specific Top content is focused on “traditional” gadget models for at-a-glance information Lots of “end of the tail” content

Download count distribution

Download count distribution

Top gadgets

Submission best practices
Have some friends try it out first…
…especially internationally

Thumbnails are important Load up your description with appropriate keywords Sign your gadgets

Signed vs. unsigned
Signed by a certificate that chains to a root authority Differentiated download warnings

After its accepted
Link to your download page on Windows Live Gallery
Ex.: MSN Weather


Partner tier program
Any user that submits content Hosting and distribution

Community or ecosystem “super stars” Visual marker and featured status possibilities

Contractual relationship with Microsoft Stay tuned!

What’s next for gadgets?
Silverlight and other rich design and interaction possibilities More personal expression along the lines of communication and public profiles More monetization

What’s next for gadgets?
Recommendations are going to be a big deal to get content or… …is the user experience dependent on browse, friend recommendations, email sharing and other marketing methods?
(like the internet)

But wait there is more…
Windows Live Gallery is not just Sidebar client gadgets Also, web gadgets for and Spaces or SideShow gadgets for devices Many other personalization options for Windows and Windows Live users:
Windows Live Messenger Windows Live Toolbar Windows Live Writer And more…

Check it out at!

Additional resources
Sidebar developer resources: aa965850.aspx

MSDN article by Donavon of on how to build a Sidebar gadget: SideBar/default.aspx

Windows Live Gallery developer center:

Additional resources (cont.)
MSDN forums for gadget development default.aspx?ForumGroupID=296&SiteID=1


Thank you!


To top