<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-313256340675437050</id><updated>2009-07-02T17:27:55.530-07:00</updated><title type="text">Windows 7/Vista Sidebar Gadgets</title><subtitle type="html">Tutorial with HTML, CSS, and JavaScript: Popular articles, blogs ,screencast, and demo videos - Rajesh Lal</subtitle><link rel="alternate" type="text/html" href="http://www.innovatewithgadgets.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://feeds.feedburner.com/innovatewithgadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/innovatewithgadgets" type="application/atom+xml" /><feedburner:emailServiceId>innovatewithgadgets</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/innovatewithgadgets" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.addtoany.com/?linkname=Windows%207%2FVista%20Sidebar%20Gadgets&amp;linkurl=http%3A%2F%2Ffeeds.feedburner.com%2Finnovatewithgadgets&amp;type=feed" src="http://www.addtoany.com/addfr-b.gif">Add to Any Feed Reader</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-2833130458949260866</id><published>2009-03-16T16:26:00.000-07:00</published><updated>2009-05-28T22:27:03.625-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title type="text">Web Reference in Creating Vista Gadget Book</title><content type="html">Here is the list of Web references used in the "Creating Vista Gadget book"&lt;br /&gt; &lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 1&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Create Channel Definition Format (CDF)&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa768024.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa768024.aspx&lt;/a&gt;    &lt;br /&gt;&lt;br /&gt;Weather Gadget source of information&lt;br /&gt;&lt;a href="http://weather.msn.com"&gt;http://weather.msn.com&lt;/a&gt;   &lt;br /&gt;&lt;br /&gt;Windows Live Gadgets&lt;br /&gt;&lt;a href="http://microsoftgadgets.com/livesdk/index"&gt;http://microsoftgadgets.com/livesdk/index&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yahoo Widgets(Konfabulator)&lt;br /&gt;&lt;a href="http://widgets.yahoo.com"&gt;http://widgets.yahoo.com &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apple Dashboard Widget&lt;br /&gt;&lt;a href="http://www.apple.com/downloads/dashboard"&gt;http://www.apple.com/downloads/dashboard&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google Desktop Gadget&lt;br /&gt;&lt;a href="http://desktop.google.com"&gt;http://desktop.google.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;DesktopX Widget&lt;br /&gt;&lt;a href="http://www.stardock.com/products/desktopx"&gt;http://www.stardock.com/products/desktopx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Samurize Widgets&lt;br /&gt;&lt;a href="http://www.samurize.com"&gt;http://www.samurize.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;KlipFolio Widgets&lt;br /&gt;&lt;a href="http://www.klipfolio.com"&gt;http://www.klipfolio.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apollo Widgets&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/air"&gt;http://labs.adobe.com/technologies/air&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AveDesk Widgets&lt;br /&gt;&lt;a href="http://www.avedesk.org"&gt;http://www.avedesk.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Opera Widgets&lt;br /&gt;&lt;a href="http://widgets.opera.com"&gt;http://widgets.opera.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CHAPTER 2&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Tutorial on CSS and HTML&lt;br /&gt;&lt;a href="http://www.w3.org/Style/Examples/011/firstcss"&gt;http://www.w3.org/Style/Examples/011/firstcss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;DOM Level 1 specification&lt;br /&gt;&lt;a href="http://www.w3.org/TR/REC-DOM-Level-1"&gt;http://www.w3.org/TR/REC-DOM-Level-1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Article on reusing MSHTML component&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb508516.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb508516.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Information on HTML Application&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms536496.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms536496.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Windows Sidebar Object Reference&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa965853(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa965853(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;addshadow and other gadget protocol methods&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa359356(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa359356(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Widgets 1.0 W3C working draft&lt;br /&gt;&lt;a href="http://www.w3.org/TR/widgets"&gt;http://www.w3.org/TR/widgets&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CHAPTER 3&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Soapbox Video Gadget&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/gadgets/SoapBoxGadget.aspx"&gt;http://www.codeproject.com/KB/gadgets/SoapBoxGadget.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Use of Microsoft Copyright content&lt;br /&gt;&lt;a href="https://www.microsoft.com/about/legal/permissions/default.mspx"&gt;https://www.microsoft.com/about/legal/permissions/default.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Colors and contrast effects&lt;br /&gt;&lt;a href="http://www.colorsontheweb.com"&gt;http://www.colorsontheweb.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft design and dimension guidelines&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa511443.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa511443.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;HTML and CSS Design Example&lt;br /&gt;&lt;a href="http://www.w3.org/Style/Examples/011/firstcss"&gt;http://www.w3.org/Style/Examples/011/firstcss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 5&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;RSS information at the Harvard website&lt;br /&gt;&lt;a href="http://cyber.law.harvard.edu/rss/rss.html"&gt;http://cyber.law.harvard.edu/rss/rss.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;About Atom syndication format&lt;br /&gt;&lt;a href="http://tools.ietf.org/html/rfc4287"&gt;http://tools.ietf.org/html/rfc4287&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visual Studio Express editions Free downloads&lt;br /&gt;&lt;a href="http://www.microsoft.com/express/download"&gt;http://www.microsoft.com/express/download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JavaScript Object Notation(JSON)&lt;br /&gt;&lt;a href="http://www.json.org"&gt;http://www.json.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 8&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Windows Vista User Experience Guidelines&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa511258.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa511258.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Windows Script Host&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/at5ydy31.aspx"&gt;http://msdn2.microsoft.com/en-us/library/at5ydy31.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Script Debugger for Windows NT 4.0 and Later&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads"&gt;http://www.microsoft.com/downloads&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Firefox plug-in for debugging&lt;br /&gt;&lt;a href="http://www.codejacked.com/debugging-javascript-with-firefox"&gt;http://www.codejacked.com/debugging-javascript-with-firefox&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft Cabinet Software Development Kit (Tool for creating a vcab file)&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/310618"&gt;http://support.microsoft.com/kb/310618&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;VeriSign public timestamp dll&lt;br /&gt;&lt;a href="http://timestamp.verisign.com/scripts/timstamp.dll"&gt;http://timestamp.verisign.com/scripts/timstamp.dll&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 9&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Sitemeter&lt;br /&gt;&lt;a href="http://sitemeter.com"&gt;http://sitemeter.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Internet Explorer Developer Toolbar&lt;br /&gt;&lt;a href="http://www.microsoft.com/Downloads"&gt;http://www.microsoft.com/Downloads&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Child node attributes in HTML document&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms537445.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms537445.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;W3C DOM Level 1 specification&lt;br /&gt;&lt;a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/"&gt;http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 10&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;WMI Tasks for Scripts and Applications&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa394585.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa394585.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WMI Code Creator&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2cc30a64-ea15-4661-8da4-55bbc145c30e"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=2cc30a64-ea15-4661-8da4-55bbc145c30e&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Identifier for Visual Studio project&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/hb23x61k(VS.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/hb23x61k(VS.80).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 11&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;br /&gt;SHOUTcast Internet radio&lt;br /&gt;&lt;a href="http://www.shoutcast.com/"&gt;http://www.shoutcast.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Real Player download&lt;br /&gt;&lt;a href="http://www.real.com/player"&gt;http://www.real.com/player&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Object Model reference for Scripting&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd563945(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd563945(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;YouTube RSS Feeds&lt;br /&gt;&lt;a href="http://www.youtube.com/rssls"&gt;http://www.youtube.com/rssls&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 12&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Download Silverlight Plug-in&lt;br /&gt;&lt;a href="http://www.microsoft.com/silverlight/downloads.aspx"&gt;http://www.microsoft.com/silverlight/downloads.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;XAMLPad download link&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms742398.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms742398.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-----------------------------------------&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 13&lt;/span&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Feeds distribution website&lt;br /&gt;&lt;a href="http://feeds.feedburner.com"&gt;http://feeds.feedburner.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Information on XMLHTTPRequest object&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms535874(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms535874(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Beginner guide on XML DOM&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa468547.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa468547.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Details on Feed objects visit&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms684749(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms684749(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gadget graphic protocols&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb508512(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb508512(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free Photo editing software Paint.Net&lt;br /&gt;&lt;a href="http://www.getpaint.net"&gt;http://www.getpaint.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft Accessibility Developer Center&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/accessibility/default.aspx"&gt;http://msdn2.microsoft.com/en-us/accessibility/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;list of DHTML events available to an element&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms533051(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms533051(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;W3C initiative Web Content Accessibility Guidelines 2.0&lt;br /&gt;&lt;a href="http://www.w3c.org/TR/WCAG20/"&gt;http://www.w3c.org/TR/WCAG20/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lighthouse for the Blind, an expert in vision disabilities&lt;br /&gt;&lt;a href="http://www.lighthouse.org/accessibility/effective-color-contrast/"&gt;http://www.lighthouse.org/accessibility/effective-color-contrast/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vista Security&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa965881.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa965881.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;User Account Control and WMI&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa826699.aspx"&gt;http://msdn2.microsoft.com/en-gb/library/aa826699.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Inspect Your Gadget (Security related article)&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb498012.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb498012.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simple Gadget Samples for Windows Sidebar&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb735517(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb735517(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JsMin (Online Javascript compressor)&lt;br /&gt;&lt;a href="http://fmarcia.info/jsmin/test.html"&gt;http://fmarcia.info/jsmin/test.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gadget using Microsoft Dynamics&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/gadgets/DynamicsCRMGadget.aspx"&gt;http://www.codeproject.com/KB/gadgets/DynamicsCRMGadget.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Trickofmind Gadget&lt;br /&gt;&lt;a href="http://www.trickofmind.com"&gt;http://www.trickofmind.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-2833130458949260866?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?i=ohVKj79hoEY:-9fKpGRD2uk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?i=ohVKj79hoEY:-9fKpGRD2uk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/innovatewithgadgets?a=ohVKj79hoEY:-9fKpGRD2uk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/innovatewithgadgets?i=ohVKj79hoEY:-9fKpGRD2uk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/ohVKj79hoEY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/2833130458949260866/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=2833130458949260866&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/2833130458949260866" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/2833130458949260866" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/ohVKj79hoEY/web-reference-in-creating-vista-gadget.html" title="Web Reference in Creating Vista Gadget Book" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2009/03/web-reference-in-creating-vista-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-5242870482804713896</id><published>2009-02-19T14:31:00.000-08:00</published><updated>2009-02-19T14:39:48.051-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="user query" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgetbook" /><title type="text">Auto Update for Vista Gadget</title><content type="html">I got this question from a Gadget developer!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);"&gt;"&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;We have an auto-upgrade mechanism in place which gets notified if a new version is available thanks to a Web service.&lt;br /&gt;&lt;br /&gt;Clearly this will alert users to the presence of a new version, and allow them to download it.  However, once downloaded we’d like the old version to be replaced by the new one.  Right now we are finding that the new one appears side-by-side with the old one, and the user has to remove it manually.&lt;br /&gt;&lt;br /&gt;Do you have any ideas about how to prevent this&lt;/span&gt;&lt;/span&gt;?"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you have a similar concern, here is a detail on what needs to be in the new version and what happens when the user download a new version of your existing Gadget.&lt;br /&gt;&lt;br /&gt;To replace the existing gadget with a new version the following needs to be there:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Name of the Gadget should be same.&lt;/li&gt;&lt;li&gt;Gadget configuration file need to be same except for the version number which needs to be greater.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The current gadget must be closed from the sidebar.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;What happens is, when user downloads a gadget in the temp folder, the gadget is renamed to gadget(1).gadget (if old gadget is also there), so technically this becomes a different gadget(rule 1 above). And If the current gadget is in the sidebar the new gadget install itself again(rule 3). Although there is no direct way to close the gadget from the side bar, what you can do is this.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When an upgrade is available. Give an Alert message that:&lt;/li&gt;    a&gt; User need to download the gadget in there desktop&lt;br /&gt; b&gt; They need to close the existing gadget.  before installing the new version&lt;br /&gt;&lt;li&gt;Instead of giving your user a URL of the gadget, redirect them to the upgrade page where you can put step-by-step instructions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The best way of course is to Avoid an Upgrade all together, in my experience very few people go for an upgrade if existing gadget is working.&lt;/li&gt;&lt;/ol&gt;Auto-update is also discussed in the "Appendix A: Tips and Tricks" section of the book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-5242870482804713896?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=moiX6ejD"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=lGBoZb7G"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=3dlS31QK"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=6GJ87j4w"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=6GJ87j4w" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=iEcQia1l"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=j8dDJMon"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=j8dDJMon" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=ul277cRH"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=1W3HornQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=oAO70lrZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=oAO70lrZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/lSTZLLB2GLY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/5242870482804713896/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=5242870482804713896&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5242870482804713896" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5242870482804713896" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/lSTZLLB2GLY/auto-update-for-vista-gadget.html" title="Auto Update for Vista Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2009/02/auto-update-for-vista-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-2794542156569183848</id><published>2009-02-02T14:54:00.000-08:00</published><updated>2009-02-19T15:50:22.164-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="user query" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgetbook" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title type="text">ComicStrip Vista Sidebar Gadget</title><content type="html">One of the most popular demo Gadget in the book is ComicStrip Gadget. I keep getting emails from users all over the world about how to customize it. Note that this gadget is meant for education purpose only. Here is one of the conversation.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/comicstrip.png" /&gt;&lt;br /&gt;&lt;br /&gt;If you are also interested to customize the Gadget Read On.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Problem from Gadget developer&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;First of all let me thank you the very useful ComicStrip gadget. I really enjoy  using it, However I have slight problems with it.These are:&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;When I restart  the PC, the gadget reverts all settings to default, in my case, I only need  Dilbert, Garfield and Calvin &amp;amp; Hobbes strips but when my PC restarts the  gadget always displays all the default strips like Maxine, Chicken and so on. I  cannot figure out what is the problem, I am admin on my PC and I also have full  control rights for the Sidebar directory. I also checked the settings.ini for  gadgets, it has the right settings for ComicStrip. This also happens sometimes  when I just hibernate the PC.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;The other thing: on the settings page Calvin  and Chicken are mixed up, so when I select Calvin, I get Chicken strips and vice  versa.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;Could you please at least give me hints how to resolve this  problem or could you please fix it? I  really enjoy using your superb gadget and  I definitely do not want to switch to an other feed reader sw because the  Sidebar is the most comfortable solution AND simply there is no alternative for  your gadget, it is one of a kind...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Solution &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;The session in sidebar vista gadget is not saved when the computer restarts, so the only way to make the settings persist is set the defaults in the code. ComicStrip gadget is based on MyBlog Gadget which is the core focus of Chapter 4 to Chapter 8 of Creating Vista Gadgets .If you have the book, check the portion where we initialize and set the defaults for the Gadget.&lt;br /&gt;&lt;br /&gt;Here are the steps to change the defaults:&lt;br /&gt;&lt;br /&gt;1. Open the following location in Windows Explorer %userprofile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets\ComicStrip.gadget\code&lt;br /&gt;&lt;br /&gt;2. Open the Gadget.js file in notepad.&lt;br /&gt;&lt;br /&gt;3. Look for the function SetDefaults()&lt;br /&gt;&lt;br /&gt; you will see the following code&lt;br /&gt;&lt;br /&gt;function SetDefaults()&lt;br /&gt;{&lt;br /&gt;System.Gadget.Settings.write("Dilbert",true );  &lt;br /&gt;URLFeedsActive[0] = 1;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Garfield",true );&lt;br /&gt;URLFeedsActive[1] = 1;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Chicken",true );&lt;br /&gt;URLFeedsActive[2] = 1;&lt;br /&gt;&lt;br /&gt;URLFeedsActive[3] = 0;&lt;br /&gt;URLFeedsActive[4] = 0;&lt;br /&gt;URLFeedsActive[5] = 0;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Calvin",true  );&lt;br /&gt;URLFeedsActive[6] = 1;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Maxine",true  );&lt;br /&gt;URLFeedsActive[7] = 1;&lt;br /&gt;&lt;br /&gt;URLFeedsActive[8] = 0;&lt;br /&gt;URLFeedsActive[9] = 0;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Peanuts",true  );&lt;br /&gt;URLFeedsActive[10] = 1;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("BobBetty",true  );&lt;br /&gt;URLFeedsActive[11] = 1;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;SO FOR 11 COMIC STRIPS YOU HAVE 11 SETTINGS&lt;br /&gt;&lt;br /&gt;if you want only dilbert , garfield and calvin your function code should look like the following&lt;br /&gt;&lt;br /&gt;function SetDefaults()&lt;br /&gt;{&lt;br /&gt;System.Gadget.Settings.write("Dilbert",true );  &lt;br /&gt;URLFeedsActive[0] = 1;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Garfield",true );&lt;br /&gt;URLFeedsActive[1] = 1;&lt;br /&gt;&lt;br /&gt;URLFeedsActive[2] = 0;&lt;br /&gt;URLFeedsActive[3] = 0;&lt;br /&gt;URLFeedsActive[4] = 0;&lt;br /&gt;URLFeedsActive[5] = 0;&lt;br /&gt;&lt;br /&gt;System.Gadget.Settings.write("Calvin",true  );&lt;br /&gt;URLFeedsActive[6] = 1;&lt;br /&gt;&lt;br /&gt; URLFeedsActive[7] = 0;&lt;br /&gt; URLFeedsActive[8] = 0;&lt;br /&gt; URLFeedsActive[9] = 0;&lt;br /&gt; URLFeedsActive[10] = 0;&lt;br /&gt; URLFeedsActive[11] = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;4. Make the change in SetDefault function and save Gadget.js file.&lt;br /&gt;&lt;br /&gt;5. Close the gadget from sidebar.&lt;br /&gt;&lt;br /&gt;6. Go to gadget picker window and add the gadget again.&lt;br /&gt;&lt;br /&gt;Hope this helps.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-2794542156569183848?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=zggj9Kg2"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=qmVfM941"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=ZXGXjWJG"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=r9qYWBZC"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=r9qYWBZC" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=ywX4j5Nd"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uqP54uMG"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=uqP54uMG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=NGM6DP3G"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=vo0Wn2L5"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4RsNJHPY"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=4RsNJHPY" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/E3-vJhyYoSM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/2794542156569183848/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=2794542156569183848&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/2794542156569183848" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/2794542156569183848" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/E3-vJhyYoSM/comicstrip-gadget.html" title="ComicStrip Vista Sidebar Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2009/02/comicstrip-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-30645319300900840</id><published>2009-01-29T15:37:00.000-08:00</published><updated>2009-02-19T15:49:50.613-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="user query" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><title type="text">Visual Studio Template for Sidebar Gadget</title><content type="html">The Gadget books comes with a Visual Studio Temopate with all the reusable functionalities. To create a Gadget all you need to do is Install the tempalte and Create New Project as you do in Visual Studio and Select Innovate.Gadget from your templates&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is one of the user email I recieved with a query about installing the template. So if you are having similar issues read on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Problem (user email)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;I would like some clarification on the Gadget Template code so I can make good use of the template if you please. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-style:italic;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;The information on installing this has been a bit confusing. Should I unzip the files and put them in the C:\Users\User_Pin\Documents\Visual Studio 2005\Templates\Project Templates folder, or should I place them under the same directory path’s Visual Web Developer folder? &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-style:italic;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;I have not had any luck  with VS 2005 recognizing this template. Thanks so much for any info…&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Solution&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;For the installing the Visual Studio template, all you need to do is put the gadgetTemplate.zip in the following folder 'My Documents\Visual Studio 2005\Templates\ProjectTemplates' and it should work. Here is the Screen-shot&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/VisualStudioGadgetTemplate2.png" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Once you put the zip file there , Open Visual Studio 2005 and click on File -&gt; New Website and you will see the template in My Templates section. See the screen shot below&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/VisualStudioGadgetTemplate.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The User Reply&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;I didn’t notice that the language, by default on the “New Web Site” came up “Visual Basic”. Once I set it to “Visual C#”, the template appears. That’s funny since. I don’t even have Visual Basic installed, but all is well now. Thanks for the help&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So if you are also trying to use the template you know (now) what kind of issues are there. Take care.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-30645319300900840?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=kVgR4uNw"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=zKaBFIJ6"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=b3dCsP3V"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=FW8mswFQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=FW8mswFQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=EOlDtbth"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=MpHWUvFZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=MpHWUvFZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Maq4VT4J"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=1HbNzFlI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=jEprr7fG"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=jEprr7fG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/r1iosrwN4-4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/30645319300900840/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=30645319300900840&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/30645319300900840" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/30645319300900840" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/r1iosrwN4-4/visual-studio-template-for-sidebar.html" title="Visual Studio Template for Sidebar Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2009/01/visual-studio-template-for-sidebar.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-7481320611732367575</id><published>2009-01-02T23:31:00.000-08:00</published><updated>2009-01-03T00:32:37.968-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="create" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><title type="text">SOAP based Web Service in Vista Sidebar Gadget</title><content type="html">I got the following email the other day from a fellow gadget developer, regarding a problem with a Gadget which access a SOAP based Web Service.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"I bought your book 'Creating Vista Gadgets' and congratulations... It’s a very good book since it gives both technical details and a broader view of the subjects on other areas which engineers usually forget about.&lt;br /&gt;My aim is very simple… I wanted to migrate a small windows application to the vista gadget platform. It’s an astrological quality time meter using the Webservice http://webservices.plaintime.com/Service.asmx?wsdl. Since my knowledge of XML and Javascript is more google based I’m having problems understanding how to code it. Any help is welcome.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Although I could not help him directly, except for telling him that, &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style=""&gt;A SOAP based Web Service can be called inside a gadget similar to an rss feed&lt;/span&gt;. which is thoroughly covered in &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chapter 5 - Chapter 8&lt;/span&gt;. Blog Gadget covers this topic in details. A webservice also return an XML file which then will be required to parse.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sending notes to refer &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chapter 9, &lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;Information Gadget&lt;/span&gt; which uses a &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Text based Web Service&lt;/span&gt; for a Sidebar Gadget, to get some insight and &lt;/li&gt;&lt;li&gt;A link to an article which elaborates a usage of webservice  &lt;span class="Apple-style-span" style=""&gt;http://www.codeproject.com/KB/gadgets/DynamicsCRMGadget.aspx&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;You wll be glad to know that he was finally able to use the Gadget Template in the book for the webservice and with his permission I am sharing his gadget with all of you. The gadget download page:  &lt;a href="http://www.maladilusoes.com/DLTL" target="_blank"&gt;http://www.maladilusoes.com/DLTL&lt;/a&gt;. Here is screenshot of the Gadget: Ontime – Astrology Time Management.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.maladilusoes.com/DLTL" target="_blank"&gt;&lt;br /&gt;&lt;img alt="click to go the gadget download page" src="http://innovatewithgadgets.com/images/ontime.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, what kind of Vista Gadget are you creating ?&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-7481320611732367575?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=aRTNmsaL"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=5PbBv0p5"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Rpn9Icrq"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=5LgxXNTW"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=5LgxXNTW" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=J3BD1riw"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=UiS9KjrF"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=UiS9KjrF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=KQNgSdvA"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Wwe7yRn2"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=YpQZ6mbK"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=YpQZ6mbK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/r_1Dowh641I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/7481320611732367575/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=7481320611732367575&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7481320611732367575" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7481320611732367575" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/r_1Dowh641I/soap-based-web-service-in-vista-sidebar.html" title="SOAP based Web Service in Vista Sidebar Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2009/01/soap-based-web-service-in-vista-sidebar.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-8919074334365162841</id><published>2008-12-11T16:36:00.000-08:00</published><updated>2008-12-28T20:46:27.881-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="news" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><title type="text">The Big Question: Vista Gadgets in Windows 7</title><content type="html">If you are one of those users, who are thinking whether vista gadget will make it to windows 7. Well ! Its official now.&lt;br /&gt;&lt;br /&gt;Vista Gadgets are not only available in Windows 7 but are also integrated in the context menu. Though you won't see the sidebar anymore so you can just drag the widget in your desktop where ever you want. Here is a screenshot submitted by a user with Silverlight Widget (Chapter 12) on Windows 7&lt;br /&gt;&lt;br /&gt;&lt;a href="http://innovatewithgadgets.com/images/Windows7vistagadget.png"&gt;&lt;img title="click to enlarge" src="http://innovatewithgadgets.com/images/Windows7vistagadget.png" width="400" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So your investment on Vista Gadgets are there to stay. Start creating now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-8919074334365162841?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=aqVGyxCh"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=cVBCjCJj"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=q7bFf0Km"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=GcbiKsTE"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=GcbiKsTE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=CDMVbqTj"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=WRUOpKCj"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=WRUOpKCj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=pxBb0XNX"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=izXkpK76"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=pF52EpQc"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=pF52EpQc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/n3BFxu8I1d0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/8919074334365162841/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=8919074334365162841&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8919074334365162841" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8919074334365162841" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/n3BFxu8I1d0/big-question-vista-gadgets-in-windows-7.html" title="The Big Question: Vista Gadgets in Windows 7" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/11/big-question-vista-gadgets-in-windows-7.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-4446186131432242145</id><published>2008-12-07T01:04:00.000-08:00</published><updated>2008-12-07T08:19:36.580-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><title type="text">Uninstall and reinstall a Vista Sidebar Gadget</title><content type="html">A common concern among vista gadget user is, how to reinstall a gadget or uninstall a gadget. A Vista Gadget is not an application so it does not show up in the Add/Remove programs.&lt;br /&gt;&lt;br /&gt;Here are four simple steps to uninstall and reinstall.   &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Uninstall Step 1  -&gt; Close the existing gadget from the sidebar&lt;br /&gt;&lt;img src ="http://innovatewithgadgets.com/images/uninstall-step1.png"&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Uninstall Step 2  -&gt;  Go to the Gadget picker box, Right click the gadget icon and then click uninstall&lt;br /&gt;&lt;img src ="http://innovatewithgadgets.com/images/uninstall-step2.png"&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;To Reinstall a Gadget. First uninstall a gadget and then install the latest version&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Reinstall Step 1  -&gt;  Download and save the latest version to the desktop&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Reinstall Step 2  -&gt;  Double click the gadget in the desktop to re-install.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-4446186131432242145?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AwMECiUO"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=YQOte5oQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Ogmo7BZ6"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=RBZB3P2l"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=RBZB3P2l" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=zrRgjoRf"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AOxRCgk9"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=AOxRCgk9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=HjLcbASr"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Gg6TzGcN"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=HChCsecG"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=HChCsecG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/9H_LMK2vuT4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/4446186131432242145/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=4446186131432242145&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/4446186131432242145" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/4446186131432242145" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/9H_LMK2vuT4/uninstall-and-reinstall-vista-sidebar.html" title="Uninstall and reinstall a Vista Sidebar Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/12/uninstall-and-reinstall-vista-sidebar.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-3931622808231608655</id><published>2008-08-28T10:44:00.000-07:00</published><updated>2008-09-02T16:48:55.026-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><title type="text">SiteMeter Vista Gadget</title><content type="html">I was getting a lot of emails regarding the Sitemeter Windows Vista Gadget, demonstrated in the book (Chapter 9). I wanted to clarify that there are two versions of the Gadget.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;SiterMeter Live Version for public use with multiple websites. This is also announced at &lt;a href="http://weblog.sitemeter.com/2008/06/18/new-sitemeter-windows-vista-gadget/"&gt;SiteMeter website&lt;/a&gt;. The latest gadget can be downloaded &lt;a href="http://csharptricks.com/Projects/Gadgets/SiteMeterLive.Gadget"&gt;here &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed version available in the book. Can be found at the download section of www.innovatewithgadgets.com &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;If you have a PUBLIC account at Sitemeter.com you can download and use the Live version of the Gadget as shown below&lt;br /&gt;&lt;br /&gt;&lt;a title="Click to download the Vista Sidebar Gadget" href="http://csharptricks.com/Projects/Gadgets/SiteMeterLive.Gadget"&gt;&lt;img src="http://innovatewithgadgets.com/images/SitemeterGadget/1-Sitemeter-Vista-Gadget.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are the Steps to add a new website in the Gadget&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Get the Sitemeter Code&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/SitemeterGadget/2-Sitemeter-Code.PNG" /&gt;&lt;br /&gt;&lt;li&gt;Open Settings Page.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Add a Title for your website for example For &lt;strong&gt;http://www.widgets-gadgets.com &lt;/strong&gt;you can have &lt;strong&gt;Web Widgets&lt;/strong&gt;. This is a friendly title to distinguish between multiple websites.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Add the 6 digit code , This is NOT the password for the SiteMeter For example for www.widgets-gadgets.com It is &lt;strong&gt;s41widgets&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/SitemeterGadget/3-Settings.png" /&gt;&lt;br /&gt;&lt;li&gt;Once added, go back to the gadget and when you put your mouse on Title of the Gadget, you will be able to see the Chevrons (forward/backward arrows) Click on the arrow to go to statistics for previous/next website.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/SitemeterGadget/4-TwoCodes.png" /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Done. let me know if you have any questions&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-3931622808231608655?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Ab1Qn25S"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=UCfiIHt9"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=OaU39H0G"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=H0bdg7Xb"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=H0bdg7Xb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=WtVcIjbe"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=IgHJAXge"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=IgHJAXge" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=9NLcjmX7"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=n7G0boYg"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=fx4d8wfp"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=fx4d8wfp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/GtfBuQdkzLY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/3931622808231608655/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=3931622808231608655&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3931622808231608655" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3931622808231608655" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/GtfBuQdkzLY/sitemeter-vista-gadget.html" title="SiteMeter Vista Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/08/sitemeter-vista-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-8028446628193764125</id><published>2008-08-14T17:31:00.000-07:00</published><updated>2008-08-14T17:43:04.421-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="downloads" /><title type="text">Beijing Olympics - Vista Sidebar Gadget</title><content type="html">&lt;br/&gt;&lt;h5&gt;Hungry for Olympics ? &lt;/h5&gt;The Widget-Box Gadget just got widget-ized with Beijing 2008 Olympics.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://csharptricks.com/Projects/Gadgets/WidgetBox.gadget"&gt;&lt;img src="http://innovatewithgadgets.com/images/Olympics-WidgetBox-Sidebar-Gadget.png" border="0"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Get latest updates, news, videos, slideshows from USATODAY, NBC, COMCAST, and more.&lt;br /&gt;&lt;br /&gt;Check out the Gadget at http://widget-box.blogspot.com/&lt;br /&gt;&lt;br /&gt;Download the Gadget &lt;a href="http://csharptricks.com/Projects/Gadgets/WidgetBox.gadget"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-8028446628193764125?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=qsP14H8t"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=sKMej6MP"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=MuxqX3ig"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AjpSXCWI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=AjpSXCWI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=JLmGvBFe"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=BKMMFL1a"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=BKMMFL1a" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=IQxsxGvT"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=3RHjovry"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=pPYWa0o7"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=pPYWa0o7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/p5xTv7Nh0Us" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/8028446628193764125/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=8028446628193764125&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8028446628193764125" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8028446628193764125" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/p5xTv7Nh0Us/beijing-olympics-vista-sidebar-gadget.html" title="Beijing Olympics - Vista Sidebar Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/08/beijing-olympics-vista-sidebar-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-5511569555858299208</id><published>2008-08-02T21:46:00.000-07:00</published><updated>2008-08-04T12:19:32.737-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><category scheme="http://www.blogger.com/atom/ns#" term="Amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title type="text">Amazing Reviews for Creating Vista Gadgets</title><content type="html">The book &lt;em&gt;Creating Vista Gadgets&lt;/em&gt; got some great reviews at Amazon.com, but Amazon's inhouse maintenance (!) has caused disapearance of all of them. I have recieved an email from Amazon.com that they are working on the issue, hopefully they will apear soon.&lt;br /&gt;&lt;br /&gt;If you are looking for &lt;strong&gt;&lt;em&gt;what customers are saying about the book &lt;/em&gt;&lt;/strong&gt;here is the list of reviews along with their Amazon link.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;3 of 3 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img style="vertical-align:bottom" src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Excellent rundown of gadget development, &lt;/strong&gt;June 2, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/AJJ87PG4NX6KC/" target="_blank"&gt;B. Teutsch&lt;/a&gt; (Microsoft)&lt;br /&gt;&lt;br /&gt;This book is a wonderful introduction to the entire process of creating a gadget for the Windows Vista Sidebar. I was a program manager for the Sidebar project, and the information Rajesh sets out is excellent. I would caution readers that this book introduces gadget development from the perspective of someone who is at least somewhat familiar with HTML development practices. As long as you're starting from that baseline, you'll find gadget development using this book to be both simple and comprehensive!&lt;br /&gt;&lt;a href="http://www.amazon.com/review/RKU12HI5BIO7F" target="_blank"&gt;http://www.amazon.com/review/RKU12HI5BIO7F&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;1 of 1 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img style="vertical-align:text-bottom" src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Great book!!! Even for starters with no background. 2 Thumbs up,&lt;/strong&gt; June 13, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A19AKP89W6OUH0/ref=cm_cr_rdp_pdp" target="_blank"&gt;Anand Chauhan "Andy Chauhan"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am a professor teaching Computer Science courses at a University and have reviewed many books. This falls into top 1% of the books that I have reviewed over many years of my teaching. The book presents a great content and a easy to understand style even for starters in this area. I am generally into hard core Linux technologies and have basic understand of Windows systems. However, this book provides sufficient conceptual background to start programming rapidly. The code examples are great to understand the basics of Gadgets. With the book in hand the user can safely assume an easy learning curve. Its a power packed, programing and easy approach to learning Windows Gadgets, and to my understand is the best book it its class. Highly recommended.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/RE304VUE23R99" target="_blank"&gt;http://www.amazon.com/review/RE304VUE23R99&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;4 of 4 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Comprehensive book on Vista Sidebar Gadgets&lt;/strong&gt;, May 30, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A1JSZIWPBFWT9/" target="_blank"&gt;Rama K. Vavilala&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are intending to develop a Vista Sidebar gadget, this is the only book you will ever need. The author goes beyond the JavaScript coding of a sidebar gadget and covers good design practices, architecture and deployment of gadgets. There is even a chapter on business model for sidebar gadgets. The writing style is simple and easy to follow.&lt;br /&gt;&lt;br /&gt;Another nice thing about the book are the examples. Not only do the examples illustrate different types of gadgets, but they also illustrate how different technologies such as ActiveX and SilverLight can be employed for gadget development.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R8CGLW2L948SO" target="_blank"&gt;http://www.amazon.com/review/R8CGLW2L948SO&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;4 of 4 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Everything you need&lt;/strong&gt;, May 27, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A25B909OYMKB4G" target="_blank"&gt;M. Schmidt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you're new to Vista gadget development or even experienced and need a little creativity boost, this is the book to get. Not only does it cover basic gadget development, it'll show you how to mix and match different technologies when creating your gadget. ActiveX, silverlight, .NET, Ajax. It has it all. Some of the gadgets included in the book are worth the price alone.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R1PTX95J2NZM7M" target="_blank"&gt;http://www.amazon.com/review/R1PTX95J2NZM7M&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;5 of 5 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Awesome book about gadgets creation!&lt;/strong&gt;, May 21, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A2V6VAI0MCZJOU/" target="_blank"&gt;Sofia Ipatieva "Web designer, BS."&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've found this book occasionally, but after I've finished it I fall in love with gadgets and widgets. I've read it like a thriller. Thanks to author who guided me in exciting and interesting journey through the magic world of the gadgets. Great book, easy to read and understand, quite useful and it's gave me a lot of new ideas and professional tools. I would recommend this book to all my friends-web designers. Sofia I.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R3C0V3ADXKOA9N" target="_blank"&gt;http://www.amazon.com/review/R3C0V3ADXKOA9N&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;1 of 1 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Great Book, In-depth Analysis and reading material.&lt;/strong&gt;, June 29, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A3CVQJ6UCGU2KI" target="_blank"&gt;Ajay Prasad&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is awesome book with in-depth analysis and great reading material. User friendly explanation that is even good for the starters. The book contains many topics that give detail orientation of learning and implementation. This book has very comprehensive details that explain everything and require no further explanation. 200% worth reading!!!&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R2565F3000FLDY" target="_blank"&gt;http://www.amazon.com/review/R2565F3000FLDY&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;1 of 1 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image003.gif" /&gt;&lt;strong&gt;Your guide to creating Gadgets&lt;/strong&gt;, June 23, 2008&lt;br /&gt;&lt;br /&gt;This book is an awesome guide to creating Vista Gadgets even for novice developers. It provides all the required knowledge to play with and create your own for a multitude of utilities.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R16X3CT9KRS7PF" target="_blank"&gt;http://www.amazon.com/review/R16X3CT9KRS7PF&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;1 of 1 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Not just another boring Technical book...... This one is FUN!&lt;/strong&gt;, June 23, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A2MYPCNDYCFIX3" target="_blank"&gt;Richard T. Kingslan "Consultant for a Major Software Company"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Typically, technical books have a problem of being dry. They lack style, any sense of enjoyment (seriously - you don't read one to stay awake at night...) and are typically read because you either have a problem with the subject at hand, or you've been tossed under the bus by your boss - who promised you could be an expert in three days. And, he told you Monday was the deadline - and it's Friday afternoon.&lt;br /&gt;&lt;br /&gt;Now and then, you come across a book that IS fun, and gives you the opportunity to learn something that can be expanded greatly. Such a book is Rajesh's book on Vista Gadgets. With the technology based in the use of JavaScript, HTML, CSS and Ajax, the skills that you can glean from this book can take you in many directions. The key, however, is learning. And learning something is much more enjoyable and fun when you can see the outcome - and it does something that is, well - cool.&lt;br /&gt;&lt;br /&gt;Gadgets are designed to be little tools to do something useful. They are a way to automate a daily task. To keep an eye on specific processes. A way to while the time away playing Suduko when, of course, you really should be working. Plus, they can be very attractive and add another element to the theme of a given desktop, much as the wallpaper and the colors of the windows create the theme.&lt;br /&gt;&lt;br /&gt;Plus, as mentioned - gadgets can be considered a beginners introduction to Web Parts - those pieces of code that do tasks on web servers and on client browsers - the up and coming Web 2.0. The technology is the same, the scope and the interfaces into the larger project are different.&lt;br /&gt;&lt;br /&gt;It would have been a much more average book if Rajesh had taken a number of projects and walked you through the code on how to develop these - all with code samples, snips of pictures, graphic elements, etc. However, he goes the extra mile by not stopping at the 'Let's build an RSS feed gadget...' (Make no mistake - you only need one of those, and all in all - they're pretty simple...) Rajesh takes it the extra mile by spending time on Patterns, project thoughts, bringing together all of the disparate elements. Call it, if you will, Designing Gadgets. Creating a gadget is not overly hard. Designing one is a bit more of a challenge. Rajesh takes you on the thoughts that need to be sorted out as you go through that process. The upside? You don't stop when you get done with the book. You really DO have all the tools necessary to design and develop your own tools, widgets, automatons and sidebar 'bots'.&lt;br /&gt;&lt;br /&gt;Remember, though - these are supposed to be fun! If you find yourself having too much fun, that C++ book is just to your left. Read it for a while. Come back to this book and you'll see that Rajesh's book is MUCH MORE exciting!&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R1JUFCTRG81OA9" target="_blank"&gt;http://www.amazon.com/review/R1JUFCTRG81OA9&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Excellent source for Gadget development&lt;/strong&gt;, June 20, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A1LG7NDAKZF49J" target="_blank"&gt;Abhijit Jadhav&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This book is an excellent source for creating gadgets for windows vista.I am familiar with HTML development projects and this book provided me with comprehensive details with easy to understand language. I also liked the way Rajesh has illustrated different gadgets in his examples.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R2NPUD7C0POT0L" target="_blank"&gt;http://www.amazon.com/review/R2NPUD7C0POT0L&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;1 of 1 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Amazing Book and the stuff that we need to build gadgets is in here&lt;/strong&gt;, June 11, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A1R6NM5PZPC67C/" target="_blank"&gt;M. Kulkarni "DarthRader"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Book is an excellent guide and must to have if you are looking to create gadgets. Best thing about this book is its straight forward approach for serious application developer.The advanced samples are very handy when it comes to build gadgets real-time. i have already started using tips to build my own gadgets. MUST READ FOR chapter 3, 8,9,10,11,12 to get into gadgets before its too late. Do not miss tips section very handy and useful. MAY THE FORCE BE WITH YOU&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R1FE2TOS2D1YEP" target="_blank"&gt;http://www.amazon.com/review/R1FE2TOS2D1YEP&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;2 of 2 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Anupama Kunchakara, Software Application Engineer&lt;/strong&gt;, June 7, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A2LR3MH5XQ6R6B" target="_blank"&gt;Anupama Kunchakara&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An Excellent book for Gadgets development. There are lot of examples which really are useful to understand the concepts.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R2ZCD2PVJERHFD" target="_blank"&gt;http://www.amazon.com/review/R2ZCD2PVJERHFD&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;3 of 3 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Get deep into Vista Gadgets technology&lt;/strong&gt;, May 31, 2008&lt;br /&gt;&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/AALDFTB74V6PG" target="_blank"&gt;Luigi Bertoneri&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm a developer with more than 10 years of experience. I like the new technology, especially of Windows Vista, Windows Mobile and Windows Embedded. I have created a few gadgets without this book, since the Vista Gadget SDK was a beta. I found myself running into more bugs and problems. I think this book is a great learning tool and an excellent guide, it reports more material gleaned from a few of the tips.&lt;br /&gt;&lt;br /&gt;The thing that many books have in common is that they are boring. Well, this book is different!&lt;br /&gt;&lt;br /&gt;The author, Rajesh Lal, has presented his book, explaining complex matters in a new interesting way, which makes reading his book enjoyable as well as useful. It keeps the theory down to what you need to know to get the job done, without a load of waffle. The author's approach to teaching, is like a friend telling a story. Creating Vista Gadgets will throw a few challenging scenarios at you, you'll go from knowing nothing about gadget to having a strong grasp on the concept.&lt;br /&gt;&lt;br /&gt;Programming delves into more depth in many areas; in HTML, CSS, JavaScript, RSS, Ajax and object-oriented programming.&lt;br /&gt;The book is very well structured in a logical development with 4 sections and all concepts are described with illustrations.&lt;br /&gt;&lt;br /&gt;In the first section Rajesh Lal talks about the history of gadgets and covers all the basics. Afterwards, he goes well in depth with more Vista Gadget samples.&lt;br /&gt;&lt;br /&gt;You can find here all the basic steps required to begin to think your gadget. He provides an overview about using the manifest, the event, how to use resources and the APIs available. The 3rd chapter of the first section, is the chapter I like most, all you need for a killer gadget, the user interface. Around internet you can find a lot of gadgets but only a handful are very useful and cool. Here you can find a good guideline on how to think like a user, the choice to expose, how to do a quick access, the gadget's limits, the refresh, the style and so on. The last chapter of the first section talks about the way to use it in your business, needed for readers more than a noob - a real pearl.&lt;br /&gt;&lt;br /&gt;It's indeed useful to understand how to use you gadget or what to deploy with a deep view around you, it helps you with a lot of case studies with benefits.&lt;br /&gt;&lt;br /&gt;The other three sections are for real developers, explaining the tool you need such as Visual Studio and a step by step procedure to set up the project with some tips. Furthermore, you can find a deeper analysis of topics mentioned in the previous section. Here you can learn using a manifest, settings, the presentation and the DOM and so on. After the first samples and the first smell of the power you have, the author introduces the event and more useful info with some cool samples.&lt;br /&gt;&lt;br /&gt;The 7th chapter is the best of the second section, great must read. I will not explain any further, enjoy reading it.&lt;br /&gt;&lt;br /&gt;The book explains then how to debug a gadget, the debugging tools and how to use them and deploy with CAB or MSI. Section 9 is the last of this chapter, introducing AJAX and providing a lot of information on how to use it for deploying a gadget retrieving information from part of a site and manipulate it to a different view. It covers a lot of the design concept and usability.&lt;br /&gt;&lt;br /&gt;In the last Chapter of the section 3 the author met his goals. He explains how to develop gadgets in different ways, thus adding renewed power to gadget: Silverlight. I have found it very complete, it's effective and useful. This chapter also have a lot of references and the author suggest areas for further research.&lt;br /&gt;&lt;br /&gt;The 4th section, closes the book with a great shot. In "Tips and tricks" You can find some useful hints like avoiding vista security or how to protect your code. In "Extra" the author gives the readers a gadget template for Visual Studio, yes you have read well, a template with three cool gadgets.&lt;br /&gt;&lt;br /&gt;My final assessment: This is one of my absolute favorite books on programming, it's just a lot of fun. This is the first book that would really set you apart. It's very useful, with lots samples with code, it really helps you to improve your skills, thinking like an analyst-programmer. Moreover, it helps developers using some language and writing better code. After reading it, you'll have an arsenal of tools to throw at any programming problems. Getting to work under Vista Gadget with no easy task. The target audience is too widely spread, developers (green and old), architects, business analysts, so this book is great to have in the office or in your bookshelf at home. This book is highly recommended.&lt;br /&gt;&lt;br /&gt;This book also serves as an excellent reference. If you have a question about something you can contact the author for reference agreement here: http://www.amazon.com/gp/pdp/profile/A2OJOGNTJEY2O9.&lt;br /&gt;&lt;br /&gt;I hope this is a comprehensive overview about this book, Creating Vista Gadgets by Rajesh Lal. If you understand a bit of what this book is... order now or buy it immediately, It will repay its cost within hours through saving your wasted time.&lt;br /&gt;&lt;a href="http://www.amazon.com/review/R3UBNFOBLSTXLA" target="_blank"&gt;http://www.amazon.com/review/R3UBNFOBLSTXLA&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;1 of 1 people found the following review helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Amazon-Book-Review-Creating-Vista-Gadgets_files/image001.gif" /&gt;&lt;strong&gt;Gadgets development is interesting now!!&lt;/strong&gt;, June 23, 2008&lt;br /&gt;By &lt;a href="http://www.amazon.com/gp/pdp/profile/A22UJVI5DFKDN1/" target="_blank"&gt;manish saraf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am beginner to Vista gadgets and I found the book to be explanatory with lots of examples. The book explains design, architecture, deployment etc very efficiently. Gadgets development is very interesting for me now. I would definately recommend this book to my web designer friends. &lt;a href="http://www.amazon.com/review/R31QR3B2U52TX6" target="_blank"&gt;http://www.amazon.com/review/R31QR3B2U52TX6&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-5511569555858299208?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=i0N185dt"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4nvgGo5H"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=sNea6Hpe"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=TxZOqb2I"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=TxZOqb2I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=TLSX7HyX"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=CadpyB9H"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=CadpyB9H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=J0ZURlzc"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=N5YOms6T"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=05FZEraa"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=05FZEraa" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/8I2wSpQyUV4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/5511569555858299208/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=5511569555858299208&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5511569555858299208" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5511569555858299208" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/8I2wSpQyUV4/amazing-reviews-for-creating-vista.html" title="Amazing Reviews for Creating Vista Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/08/amazing-reviews-for-creating-vista.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-5707153620625495554</id><published>2008-05-11T22:08:00.000-07:00</published><updated>2008-05-18T12:16:49.053-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><title type="text">Creating Vista Gadget using HTML, CSS, &amp; JavaScript</title><content type="html">If you ever wanted a book on Creating Vista Gadgets, with lots of useful samples. Here is a book on the topic. Click &lt;a href="http://www.innovatewithgadgets.com/2008/04/get-gadget-book.html"&gt;here &lt;/a&gt;to buy the book.&lt;br /&gt;&lt;br /&gt;&lt;a title ="click to buy from amazon" href="http://www.innovatewithgadgets.com/2008/04/get-gadget-book.html"&gt;&lt;img src="http://innovatewithgadgets.com/images/VistaGadgetBook.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;strong&gt;Creating Vista Gadgets: Using HTML, CSS and JavaScript &lt;/strong&gt;with Examples in RSS, Ajax, ActiveX (COM) and Silverlight (&lt;a href="http://www.innovatewithgadgets.com/2008/04/get-gadget-book.html"&gt;Buy from Amazon&lt;/a&gt;)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;releasing on "&lt;em&gt;May 19, 2008&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Table of Content &lt;/strong&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Table-of-Content-Creating-Vista-Sidebar-Gadget.png" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Advanced Gadgets included in the book&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;This book has advanced samples using ActiveX (COM), Ajax, &amp;amp; Microsoft Silverlight. This guide will walk you through the process of designing and developing of each of them.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://innovatewithgadgets.com/images/Extra-Icons.png"/&gt;&lt;br&gt;&lt;br /&gt;&lt;strong&gt;(a) Build a Blog Gadget using RSS /Atom Feed&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;MyBlog Gadget will walk you through a complete gadget development lifecycle using an online RSS/Atom Feed. We see the design patterns and standard practices, common assumptions and then add advanced features to the gadget with multiple feeds and advance page and record management.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(b) Create an Information Gadget with Ajax &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Site Statistics Gadget uses Ajax and a Web API provided by Sitemeter.com to create a unique Information Gadget which mimics the online free service provided by Sitemeter.com. It shows how to do screen scraping and load part of a web page in the Flyout window.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(c) Develop a Utility Gadget using ActiveX COM technology&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Most Recent Used (MRU).Net Projects is a innovative gadget which lists Most Recent Used projects in .Net. It shows projects for Visual Studio 2003, Visual Studio 2005 and Visual Studio 2008. The gadget also shows how to read and enumerate registry data. The gadget also explains how to use advanced features of Windows Power Shell and Windows Management Instrumentation (WMI) in a sidebar Gadget.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(d) Incorporate Internet Radio and YouTube Video in Fun Gadgets &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Learn to create a Radio Gadget based on an online streaming server and Video Gadget using a YouTube Video feed. The gadgets also show how to incorporate windows Media Player as well as Flash Media Player inside a Sidebar gadget. See how to use XMLDOM to read online feed instead of Ajax approach.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(e) Create Cutting edge Sidebar gadget using Microsoft Silverlight &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Silverlight World Clock Gadget shows time for multiple cities of the world. It also gives you an insider view of XAML and Microsoft Silverlight. Know the programming model of Silverlight in gadget development.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(f) Developing a Sidebar Gadget using Microsoft Popfly.NET &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Website Comparison Gadget uses Microsoft Popfly.net to create an innovative gadget which compares the popularity of different websites with the help of services provided by Live Search and Microsoft Bar graph. It shows how to create the mashups in minutes and port it to Sidebar platform.&lt;br /&gt;&lt;br /&gt;I would like to hear any questions/ comments/ suggestions, you may have !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-5707153620625495554?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uVsbkmi2"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=YRGwxiIH"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Dc8Zx1lt"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=CO5G2z9K"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=CO5G2z9K" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=kgMpsNrs"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=wqF93SAS"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=wqF93SAS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=nZ5tUZGu"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=9jWO5YSf"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Ei2CigeU"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=Ei2CigeU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/VelHMOqHT9I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/5707153620625495554/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=5707153620625495554&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5707153620625495554" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5707153620625495554" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/VelHMOqHT9I/creating-vista-gadget-coming-may-2008.html" title="Creating Vista Gadget using HTML, CSS, &amp; JavaScript" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/creating-vista-gadget-coming-may-2008.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-1795611331950220648</id><published>2008-04-29T21:48:00.000-07:00</published><updated>2008-05-06T21:52:32.794-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title type="text">Introduction: Creating Vista Gadgets</title><content type="html">Introduction &lt;em&gt;Creating Vista Gadgets&lt;/em&gt; &lt;a href="http://innovatewithgadgets.com/Extra/Introduction-Creating-Vista-Gadgets.pdf"&gt;download &lt;/a&gt;or read online&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="-707411368" name="-707411368" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="960" width="700"&gt; &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2895750&amp;access_key=key-po7nnvcg5285voclqem&amp;page=1&amp;version=1"&gt; &lt;param name="quality" value="high"&gt; &lt;param name="play" value="true"&gt; &lt;param name="loop" value="true"&gt; &lt;param name="scale" value="showall"&gt; &lt;param name="wmode" value="opaque"&gt; &lt;param name="devicefont" value="false"&gt; &lt;param name="bgcolor" value="#ffffff"&gt; &lt;param name="menu" value="true"&gt; &lt;param name="allowFullScreen" value="true"&gt; &lt;param name="allowScriptAccess" value="always"&gt; &lt;param name="salign" value=""&gt; &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2895750&amp;access_key=key-po7nnvcg5285voclqem&amp;page=1&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="-707411368_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="960" width="700"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:700"&gt;&lt;a href="http://www.scribd.com/doc/2895750/Introduction-Creating-Vista-Gadgets"&gt;Introduction - Creating Vista Gadgets&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a doc&lt;/a&gt;&lt;/div&gt;&lt;div style="display:none"&gt; Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2895750/Introduction-Creating-Vista-Gadgets"&gt;Introduction - Creating Vista Gadgets&lt;/a&gt; &lt;/div&gt;&lt;div style="display:none"&gt; &lt;br /&gt; Creating Vista® Gadgets: Using HTML, CSS and JavaScript with Examples in RSS, AJAX, ActiveX (COM) and Silverlight™ Copyright © 2008 by Sams Publishing All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher. No patent liability is assumed with respect to the use of the information contained herein. Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained herein. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). ISBN-13: 978-0-672-32968-5 ISBN-10: 0-672-32968-9 Library of Congress Cataloging-in-Publication Data Lal, Rajesh. Creating Vista gadgets : using html, css and javascript with examples in rss, ajax, activex (com) and silverlight / Rajesh Lal. p. cm. ISBN 978-0-672-32968-5 (pbk.) 1. Microsoft Windows (Computer file) 2. Operating systems (Computers) 3. User interfaces (Computer systems) I. Title. QA76.76.O63L3546 2008 005.4'46--dc22 2008016280 Printed in the United States of America First Printing April 2008 Associate Publisher Greg Wiegand Acquisitions Editor Loretta Yates Development Editor Todd Brakke Managing Editor Patrick Kanouse Project Editor Jennifer Gallant Copy Editor Margo Catts Indexer Ken Johnson Proofreader Mike Henry Technical Editor Marc Clifton Publishing Coordinator Cindy Teeters Book Designer Anne Jones Trademarks All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. Sams Publishing cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark. Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on an “as is” basis. The author and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book. Bulk Sales Sams Publishing offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales. For more information, please contact U.S. Corporate and Government Sales 1-800-382-3419 corpsales@pearsontechgroup.com For sales outside of the U.S., please contact International Sales international@pearson.com This Book Is Safari Enabled The Safari® Enabled icon on the cover of your favorite technology book means the book is available through Safari Bookshelf. When you buy this book, you get free access to the online edition for 45 days. Safari Bookshelf is an electronic reference library that lets you easily search thousands of technical books, find code samples, download chapters, and access technical information whenever and wherever you need it. To gain 45-day Safari Enabled access to this book: • Go to http://www.informit.com/onlineedition • Complete the brief registration form • Enter the coupon code UWC5-ZPGE-RMIN-P5EG-MSHE If you have difficulty registering on Safari Bookshelf or accessing the online edition, please email customer-service@safaribooksonline.com. the broadest ever worldwide release of a PC operating system, in 2007 Windows Vista opened the door to an era of gadget development. Gadgets, which reside on the Windows Vista Sidebar, are small, lightweight, and can be very useful applications. The Sidebar is a brand new platform for innovation and it gives users a unique way to interact with information. This book is for people who want to create feature-rich and professional-looking Vista Sidebar gadgets. It’s a guide for designers, developers, and anyone else who has a basic knowledge of HTML, CSS, and JavaScript and wants to leverage this new and innovative platform. It’s for anyone who wants to create a gadget for his company, or for a programmer with a great idea to implement on a Sidebar gadget platform, or even for a hobbyist programmer, who wants to try his hand on a gadget platform. This book is intended to give you ideas for what you can do with this new platform and how you can do it. With Introduction What’s in the Book This book starts with a brief background on gadgets, and then gives a broad and clear view of the architecture of gadget development. Gadget design considerations are an important part of this book and they go side by side with almost all the chapters that deal with gadget development. Once you’ve read up on the concept and scope of gadget development, the book helps you create a gadget called MyBlog. During this process the text elaborates on the architecture, design constraints, and implementation details for the gadget and then details some standard practices applicable to all gadget development. The last section deals with more advanced gadget examples that utilize .NET, XML, XHTML, CSS, Ajax, and Microsoft Silverlight. This book is divided into three broad sections. Section 1: The Foundation The four chapters in this first section give a thorough background of Sidebar gadgets. The section explains the types of gadgets, the architecture, and the technology behind the 2 Create Killer Vista Sidebar Gadgets Using HTML, CSS, and Ajax gadget development. The “Approach to Design” chapter helps you know the difference between a merely good-looking gadget and a one that is professional, rich, and worth the space it takes up on the user’s desktop. The last chapter discusses the revenue model of the gadget: what you need to know to sell your gadgets. Section 2: Developing a Gadget This section walks you through the standard development process of a gadget. It details the creation of the basic MyBlog Gadget, which makes use of an RSS/Atom feed. It also goes through best practices with the user interface, design guidelines, and common assumptions. The later chapters improve on the basic gadget based on standard practices and also deal with deploying and distributing a gadget. Section 3: Advanced Samples The section deals with advanced samples. You will be able to create advanced gadgets such as a Site Statistics Gadget, a Radio Gadget, and a YouTube Video Gadget. All the samples follow standard patterns, making it easier to switch between the features and functionality you want, when you want. You will also learn how to use ActiveX COM for creating a utility gadget with a sample .Net Most Recent Used (MRU) Gadget. The final chapter shows you how to create a gadget with Microsoft Silverlight. You will also see how, in just a few minutes, to create a Sidebar gadget with Microsoft Popfly. If you are a relatively new gadget developer, I would suggest you to start with the first section. If you have basic background knowledge of gadgets and you just want to start with the step-by-step practical approach to gadget development, you can directly start with the second section, “Developing a Gadget.” The third section, “Advanced Samples,” is for people who have developed a gadget and want to go beyond the basics of gadget development. Each chapter in the third section is actually an advanced sample dealing with a particular type of gadget in a scenario of its own. Special Features and Notations This book is meant to be a definite, precise, and concrete guide for gadget development. By pruning redundant information and filtering and highlighting the information that is more crucial, we have tried to make it as comprehensive as possible. This book includes various features and conventions that help you get the most out of the book. HTML, CSS, and JavaScript code blocks will be shown as follow Code in HTML, CSS, and JavaScript  Sample single code lines will look like this: Statement one; Statement two; Introduction 3 Other comments will also show up in the code with two backslashes // Comment one // Comment two The book also uses the following boxes for important information: NOTE A Note includes extra information to broaden your understanding of a topic. TIP A Tip provides alternative, shortcuts, or insider information of the topic being discussed. CAUTION A Caution warns you of potential traps and pitfalls. Supporting Website The book has a supporting website where you can download all the codes and gadgets. The website also has blogs I have written on Sidebar gadgets and some of my personal views on gadget development. You are invited to check that site and contact me personally. You will also find errata and most updated information there. Visit www.innovatewithgadgets.com Index A About screen (Settings page, Recent Project Gadgets), 222 accessibility techniques enter key as mouse clicks, 135-137 Flyouts, 137-138 HTML, 73 keyboard access, 72-73 putting focus on gadgets after loading, 135 Settings pages, 137-138 tab controls, adding, 135 theme colors, 73 accessing information (gadget design), 51 Active Desktop feature (Windows XP), 9 ActiveX COM, 38, 214 initializing inside gadgets, 215 Windows Registry, reading settings via, 229-234 ad gadgets benefits of, 82 case study, 81 Added Features check box (Settings page), Site Statistics gadgets, 199 AddFeed function, feed gadgets, 147-148 AddItem function, feed gadgets, 146 addShadow() method, 46, 304-306 Adobe AIR widgets, 25 aesthetics, user interface design, 53 322 Ajax Ajax buildMyContent function, Site Statistics gadgets, 205-210 getData function, 200 getHTMLAjax function, 200-201 getTextAjax function, 190, 200-203 parseData function, 190, 203-204 parseHTML function, 200 parseHTMLAjax function, 201-202 ShowFlyout function, 204-205 Site Statistics gadget API, 188-190 displaying portions of web pages in, 190-194 XMLHTTPRequest object, 188, 192 alpha transparencies, gadget design, 71 Always On Top property, 17 animation, Silverlight World Clock Gadget, 273-274 API (Application Programming Interfaces) Site Statistics gadgets, 187 data retrieval, 200-204 graphs, 204-210 parsing data, 190 pie charts, 204-210 pulling text data, 188-189 Windows Registry, MRU Project Gadgets, 230-231 Apollo widgets. See Adobe AIR widgets Apple, Dashboard widgets, 23 application gadgets, 13, 58 Assert function, debugging gadgets, 164 assumptions feed gadgets caching data, 133 updates, 132 functionality, JavaScript errors, 130-131 Internet connections, 131 memory, 133-134 session management, 133-134 Atom feed gadgets, 91 data storage, 92 feed example, 103 audio (streaming), playing on Radio Gadget, 240 automatic updates, 289 checking for, 290 user notifications, 292-293 version checks via inserted code, 291-292 version information, posting online, 290-291 AveDesk widgets, 25 B background images as wallpaper, 34 gadget design, 68-69 background.png files, 35 behaviors (gadget design) configuring gadgets, 60-61 displaying gadget statuses, 61-62 error messages, 61-62 refreshing gadgets, 61 Service Not Available information, 62-63 warnings, 61-62 blogs. See MyBlog gadget body on load functions, feed gadgets, 104 BuildContent function, 124-125 BuildMyBlog function, feed gadgets, 111 buildMyContent function, Site Statistics gadgets, 205-210 BuildVideoObject function, YouTube Video Gadgets, 251 configuration functions 323 buttons gadget design, 69 icons associated with button types, 163 type values list, 163 buttons parameter (MsgBox function), 165 themes, 268-269 usability, 270 developing animation, 273-274 existing framework integration, 271-272 handleLoad function, 277 logic, 275-280 mouse click events, 279-280 multiple locales, 278-279 SetClock function, 277-278 setting time, 276-277 SilverlightClock.XAML files, 272-273 features of, 264-265 JavaScript, 265-266 XAML, 267-268, 272-276 code security, JavaScript, 313 collection objects, MRU Project Gadgets, 231 color (themes), accessibility techniques, 73 Comic-Strip gadget, 319 common assumptions feed gadgets caching data, 133 updates, 132 functionality, JavaScript errors, 130-131 Internet connections, 131 memory, 133-134 session management, 133-134 common images, display/presentation (design patterns), 128 communities (online), gadgets, 21 comparing gadgets, 26 Comparison Gadgets (Websites), 280 configuration functions, 122 C CAB files creating, 175 deploying gadgets via, 174 buying certificates, 176 signing via certificates, 178 Windows Installer, 180 caching feed gadget data, 133 case studies ad gadgets, 81 free information gadgets, 86 gadget design information, 51-53 gadgets as side products, 83 pull models (gadget revenue models), 77 push models (gadget revenue models), 79 utility gadgets, 85 CDF (Channel Definition Format), 10 ChangeFeed() function, feed gadgets, 144-146 checkForUpdate() function, 291 click events (mouse), Silverlight World Clock Gadget, 279-280 Clock Gadget for Time, 14 Clock Gadgets, 261 designing images, 268-269 layouts, 269-270 How can we make this index more useful? Email us at indexes@samspublishing.com 324 configuring configuring gadget behaviors, 60-61 gadget window, feed gadgets, 156-157 Settings page, feed gadgets, 155 controls, gadget design, 69 converting gadgets, 20 Counter Widget feature (Sitemeter.com website), Site Statistic gadget development, 184 country codes (localization), 302 CPU Meter Gadget, 14 CSS (Cascading Style Sheets), 32 display presentation (design patterns), 129-130 feed gadgets, data presentation in, 108 flyout.css files, 33 gadget.css files, 33 settings.css files, 33 undocked.css files, 33 Currency gadget, 64, 68 customizable design patterns, 116 customizing gadgets, 18 Windows Sidebar, 8 DOM, 166-167 JavaScript, 161, 166-167 Systems Debugger Select window, 169 VBScript, 164-166, 169 WScript, 161-163 deploying gadgets CAB files, 174 buying certificates, 176 signing via certificates, 178 Windows Installer, 180 comparison chart, 180 installation process, 172 installation target folders, 171 packaging, 172-173 design accessibility adding tab controls, 135 enter key as mouse clicks, 135-137 Flyouts, 137-138 HTML, 73 keyboard access, 72-73 putting focus on gadgets after loading, 135 Settings pages, 137-138 theme colors, 73 behaviors D Dashboard widgets (Apple), 23 data applications, gadget development, 9 data storage, feed gadgets, 92 debugger statements, 169 debugging gadgets, 160 debugger statements, 169 Disable Script Debugging option (Internet Explorer), 168 configuring gadgets, 60-61 displaying gadget statuses, 61-62 error messages, 61-62 refreshing gadgets, 61 Service Not Available information, 62-63 warnings, 61-62 customizable patterns, 116 directory structures, 118-119 Disable Script Debugging option 325 display/presentation, 127 common images, 128 standard images, 128 Stylesheets, 129-130 extensible patterns, 117 file structures, 119 image grouping, 118 information, 50 case study, 51-53 easy access of, 51() live data, 51 relevant to individual users, 51 showing enough for further action, 51 showing only revelant information, 54 localization, 118 maintainable patterns, 116 modular file structures, 118 PNG files, 71-72 quality, ensuring, 50 reusable functionality, 120 flyout window, 124-125 gadget window, 122-124 Settings page functions, 125-126 screen space, justifying, 49 standard file/folder layouts, 118-120 styles, 70 text, 70 transparent images, 71 usage patterns application gadgets, 58 fun gadgets, 59 information gadgets, 57 utility gadgets, 58-59 what gadgets aren’t meant for, 60 user interfaces aesthetics, 53 docked page dimensions, 64 flyout page dimensions, 65 guidelines for, 66 relevant information, 54 settings page dimensions, 65 simplicity, 53 standard page dimensions, 64 undocked page dimensions, 65 unobtrusiveness of, 56 visuals, 55 visual themes background images, 68-69 buttons, 69 controls, 69 drag images, 68 icons, 67 titles, 67 Desktop (Google), 23 desktop gadgets Adobe AIR widgets, 25 AveDesk widgets, 25 Dashboard widgets (Apple), 23 Desktop (Google), 23 DesktopX widgets, 24 KlipFolio widgets, 25 Konfabulator (Yahoo widgets), 22 Opera widgets, 26 Samurize widgets, 24 DesktopX widgets, 24 directories feed gadget structures, 95 structures of, 118-119 Disable Script Debugging option (Internet Explorer), 168 How can we make this index more useful? Email us at indexes@samspublishing.com 326 display/presentation display/presentation (design patterns), 127 images, 128 Stylesheets, 129-130 displaying HMTL in flyouts, 193-194 web pages, Site Statistics gadgets, 190-194 docked gadgets feed gadgets, 154-155 page dimensions, 64 YouTube Video Gadget, 258-259 Docked Views, 16 DOM (Document Object Model) debugging gadgets, 166-167 feed gadgets, data presentation in, 109-111 Site Statistic gadgets displaying portions of web pages in, 190-194 parsing data, 190 DOM Level 1 (Document Object Model Level 1), 36 drag images, gadget design, 68 dragicon.png files, 30, 34-35 event.closeAction property, 123 extensible design patterns, 117 features, adding to gadgets, 140 feed gadgets, 91-92, 139 adding features to, 140 advanced framework of, 141 caching data, 133 commonly used fields list, 99-100 core functionality, 104-107 data presentation, 107 CSS, 108 DOM, 109-111 data section, 103 data storage, 92 deploying, 114 framework of, 98 directory structure, 95 image files, 96 required files, 94-96 Gadget.xml manifest files, 98-99 JavaScript functions in, 112-113 Main Gadget window, 104-107 Mini Me option, 154 gadget window configuration, 156-157 Settings page configuration, 155 mouse hover functionality, 152-154 multiple feeds, 142-148 multiple pages, managing, 150-152 removing feeds from, 148-149 Settings page, 100-101 unobtrusive traversing, 152-154 updates to, 132 updating feeds, 148-150 zip files, 113-114 E-F easy access of information (gadget design), 51 effects, 302. See also graphic design enter key as mouse clicks (accessibility techniques), 135-137 enterprise-level applications, gadgets in, 313 Enumerate Registry, MRU Project Gadgets, 231-232 error messages, gadget behaviors, 61-62 event.Action.commit property, 123 Gadget Setup function 327 feed tracking, 294 FeedBurner feed tracking tool, 294 feedchanged function, feed gadgets, 102 feedchanged variable, 123 FeedURL, feed gadgets, 101 File System API System.Environment, 43 System.Network, 43 System.Shell, 42-43 files standard gadget layouts, 118-120 structures of, 119 Flash Media Player, embedding in YouTube Video Gadgets, 250-251 floating state, feed gadgets, 154-155 Floating Views, 16 flyout page dimensions (user interface design), 65 flyout windows, 18, 124-125, 130 flyout-related functions, 124 Flyout.css, 129 flyout.css files, 33 flyout.html files, 30, 32 flyouts accessibility techniques, 137-138 displaying HTML in, 193-194 folders, standard gadget layouts, 118-120 free information gadgets, 85 benefits of, 87 case study, 86 fun gadgets, 14-15, 59 functionality JavaScript errors, 130-131 resuable functionality, 120 flyout window, 124-125 gadget window, 122-124 Settings page functions, 125-126 G Gadget Object Model, 35, 38-39 gadget development, 9 Sidebar Events API, 41 System.Contact API, 45 System.debug API, 45 System.Diagnostic.EventLog API, 45 System.Environment API, 43-44 System.Gadget API, 40 System.Gadget.Settings API, 40-42 System.Machine API, 44 System.MessageStore API, 45 System.Network API, 43 System.Shell API, 42-43 Gadget Picker window, 30 gadget revenue models, 75 ad gadgets benefits of, 82 case study, 81 free information gadgets, 85 benefits of, 87 case study, 86 gadgets as side products, 82 benefits of, 84 case study, 83 pull models, 76 ad gadgets, 81 benefits of, 85 case study, 77 utility gadgets, 84-85 push models, 78 case study, 79 gadgets as side products, 82-84 utility gadgets, 84-85 Gadget Setup function, 122 How can we make this index more useful? Email us at indexes@samspublishing.com 328 gadget window gadget window, 129 configuration functions, 122 feed gadgets, configuring for Mini Me gadgets, 156-157 flyout-related functions, 124 gadget specific functions, 124 settings-related functions, 123 standard functions in, 122 YouTube Video Gadget, 259-260 Gadget.css, 129 gadget.css files, 33 gadget.xml files, 30-32 Gadget.xml manifest files, MyBlog gadget, 98-99 gadgets application gadgets, 13 classifying, 12 comparison chart, 26 competing versions of, 22 converting, 20 core functionality of, 34 customizing, 18 defining, 7 development of, 8-9 development platforms, 21 fun gadgets, 14-15 history of, 9-10 information gadgets, 12 limitations of, 15-16 malware, 37 meeting points between different gadgets, 20 multiple versions of, 8, 22 purposes of, 7 spyware, 37 support for, 87-88 utility gadgets, 14 web resources, online community website, 21 GadgetUndocked.css, 129 gBackground method, 45 getData function, 200 getElementById function, feed gadgets, 109 GetFeed() function, 105, 124, 132 getHTMLAjax function, 200-201 getTextAjax function, 190, 200-203 GIF (Graphics Interchange Format) files, 71-72 gImage method, 45 gimage protocol, 304 globalization internationalization, 299 localization, 299 country codes, 302 gadget example, 300-302 globalUpdateGadgetXML variable, 291 globalUpdateURL variable, 291 Google Desktop, 23 graphic design, 302 gimage protocol, 304 GraphicDemo.gadget, 304-306 g:background protocol, 303-306 g:image protocol, 303 g:text protocol, 303 shadow effects, 309-311 transparent PNG files, 307 GraphicDemo.gadget, 304-306 graphs, Site Statistics gadgets, 204-210 g:background protocol, 303 GraphicDemo.gadget, 304-306 removeElements method, 306 removeObjects method, 306 images 329 g:image protocol, 303 g:text protocol, 303 Sidebar gadgets, 37 web pages applications versus, 37 displaying in Site Statistics gadgets, 192 H handleLoad function, Silverlight World Clock Gadget, 277 Hello World XAML files, Silvelight World Clock Gadget, 268 HideArrows function, feed gadgets, 153 HideFlyout function, 124 hosting web gadgets, 19 hover functionality (mouse), feed gadgets, 152-154 href properties, changing onclick events to, 136 HTML (Hypertext Markup Language) accessibility techniques, 73 applications versus web pages, 37 extracting for display in flyouts, 193-194 feed gadget files, 94-95 flyout.html files, 30-32 getHTMLAjax function, 200-201 main.html files, 30, 32 MSHTML (Microsoft HTML) component, 36-37 parseHTML function, 200 parseHTMLAjax function, Site Statistics gadgets, 201-202 reading, XHR (XMLHttpRequest) object, 295, 297 retrieving via XMLHTTPRequest objects, 192 Settings page, feed gadgets, 100-101 settings.html files, 30-32 I icon.png files, 30, 34-35 icons gadget design, 67 user interface design, 55 images. See also graphic design addShadow method, 46 background images as wallpaper, 34 gadget design, 68-69 background.png files, 35 display/presentation (design patterns), 128 drag images, gadget design, 68 dragicon.png files, 30, 34-35 feed gadgets, 96 gBackground method, 45 GIF files, gadget design, 71-72 gImage method, 45 grouping, gadget design patterns, 118 icon.png files, 30, 34-35 info.gif files, 35 loading.gif files, 35 logo.png files, 30, 34-35 MRU Project Gadgets, 220 PNG files, gadget design, 71 Silverlight World Clock Gadget, 268-269 Site Statistic gadgets, 195-196 transparent images, gadget design, 71 How can we make this index more useful? Email us at indexes@samspublishing.com 330 images user interface design, 55 wallpaper, 34 info.gif files, 35 information gadgets, 57 Site Statistics gadget Added Features check box, 199 API, 187-190, 204-210 Counter Widget feature (Sitemeter.com website), 184 data retrieval, 200-204 design considerations, 195-197 developing, 198-204 displaying portions of web pages in, 190-194 goals of, 183 images, 195-196 integration into existing frameworks, 199 layouts, 196-197 Mini Me version, 199 site summary pages (Sitemeter.com website), 185 themes, 195-196 usability, 197 Weather Gadget, 12 Initialize function, 124 Innovate.Gadget project template (reusable frameworks), 315 Installer (Windows), deploying gadgets via CAB files, 180 installing gadgets for deployment, 172 internationlization, 299 Internet connections, common assumptions of, 131 radio stations, 238-239 Internet Explorer, Disable Script Debugging option, 168 J-K-L JavaScript, 34 ActiveX COM objects, initializing inside gadgets, 215 debugging gadgets, 161, 166-167 errors, gadgets design, 62 functionality, 130-131 feed gadgets, functions in, 112-113 JSON, 105 main.Js files, 30 Settings page, feed gadgets, 101 Silverlight World Clock Gadget creation, 265-266 Site Statistic gadgets, parsing data, 190 Sitemeter.com website, Count Widget feature, 184 JavaScript Compression, 313 JavaScript Obfuscator, 313 JSON (JavaScript Object Notation), 105, 295-297 keyboards, accessibility techniques, 72-73 KlipFolio widgets, 25 Konfabulator (Yahoo widgets), 22 Layer style (Photoshop), 309 layouts files/folders, 118-120 Radio Gadgets, 241 Silverlight World Clock Gadget, 269-270 Site Statistic gadgets, 196-197 YouTube Video Gadget, 252-253 live data, gadget design, 51 Microsoft Silverlight World Clock Gadget 331 Live Gadgets, 19 LoadFeed function, feed gadgets, 146 loading gadgets, putting focus on (accessibility techniques), 135 loading.gif files, 35 LoadSettings function, 101, 125 LoadXML function, 133 localization, 299 country codes, 302 gadget design patterns, 118 gadget example, 300-302 logic, Silverlight World Clock Gadget, 275-280 logo.png files, 30, 34-35 embedding Flash Media Player in, 250-251 video feeds, 249-250 media player functionality, Radio Gadgets, 243-244 PlayRadio function, 247 state changes in, 245-247 memory, common assumptions, 133-134 Message function, debugging gadgets, 164 MessageDialog function, debugging gadgets, 164 MessageJS function, debugging gadgets, 162 Microsoft Feed Manager, reading online data via, 298-299 Microsoft Outlook Gadget, 13 Microsoft Popfly, creating via Sidebar gadgets mashup gadgets, 281-283 Website Comparison Gadgets, 280 Microsoft Silverlight applications features of, 262 origin of, 263 running, 262 Sidebar implementation, 264 Microsoft Silverlight World Clock Gadget, 261, 266 designing images, 268-269 layouts, 269-270 themes, 268-269 usability, 270 developing, 271 animation, 273-274 existing framework integration, 271-272 handleLoad function, 277 logic, 275-280 mouse click events, 279-280 M Main Gadget window, feed gadgets, 104-107 main.html files, 30-32 main.Js files, 30 maintainable design patterns, 116 malware, gadgets as, 37 mashup gadgets, creating, 281-283 media gadgets Radio Gadget designing, 240-242 developing, 243-248 features of, 239-240 Internet radio stations, 238-239 requirements for, 239 Windows Media Player, 244-245 YouTube Video Gadget BuildVideoObject function, 251 designing, 251-253 developing, 255-260 How can we make this index more useful? Email us at indexes@samspublishing.com 332 Microsoft Silverlight World Clock Gadget multiple locales, 278-279 SetClock function, 277-278 setting time, 276-277 SilverlightClock.XAML files, 272-273 features of, 264-265 JavaScript, 265-266 XAML, 267-268, 272-276 Minesweeper Gadget, 59 Mini Me option, feed gadgets, 154 gadget window configuration, 156-157 Settings page configuration, 155 Mini Me versions, Site Statistics gadgets, 199 mini web applications, gadget development, 9 modular file structures, 118 mouse click events enter key as (accessibility techniques), 135-137 Silverlight World Clock Gadget, 279-280 hover functionality, feed gadgets, 152-154 MRU (Most Recent Used) lists, 13 MRU (Most Recent Used) Project Gadgets, 211 ActiveX COM, 214-215 initializing inside gadgets, 215 reading Windows Registry settings, 229-234 developing collection objects, 231 Enumerate Registry, 231-232 framework integration, 222-225 listing Windows Registry items, 225-229 reading Windows Registry, 229-235 RegRead function, 232-233 Windows Registry API, 230-231 goals of, 212 images of, 220 layout of, 220 themes of, 219 usability of, 221 Windows Power Shell, 216 WMI, 216-218, 226-229 MsgBox function buttons parameter, 165 debugging gadgets, 166 prompt parameter, 165 return values of, 166 title parameter, 166 MSHTML (Microsoft HTML) component, 36-37 Multiple Views, 16 MyBlog Gadget, 92, 139 adding features to, 140 advanced framework of, 141 commonly used fields list, 99-100 core functionality, 104-107 data presentation, 107 CSS, 108 DOM, 109-111 data section, 103 deploying, 114 framework of, 98 directory structure, 95 image files, 96 required files, 94-96 Gadget.xml manifest files, 98-99 JavaScript functions in, 112-113 Main Gadget window, 104-107 Mini Me option, 154 gadget window configuration, 156-157 Settings page configuration, 155 parseRSS function 333 mouse hover functionality, 152-154 multiple feeds, 142-148 multiple pages, managing, 150-152 removing feeds from, 148-149 Settings page, 100-101 unobtrusive traversing, 152-154 updating feeds, 148-150 zip files, 113-114 O On Load function, 122 onclick events, changing to href properties, 136 OnDock function, 122 onfocus events, 137 onfocusout events, 137 onkeydown events, 136 onkeypress events, 136 onkeyup events, 136 N NET MRU Project Gadgets, 211 ActiveX COM, 214-215 initializing inside gadgets, 215 reading Windows Registry settings, 229-234 developing collection objects, 231 Enumerate Registry, 231-232 framework integration, 222-225 listing Windows Registry items, 225-229 reading Windows Registry, 234-235 reading Windows Registry settings, 229-234 RegRead function, 232-233 Windows Registry API, 230-231 goals of, 212 images of, 220 layout of, 220 themes of, 219 usability of, 221 Windows Power Shell, 216 WMI, 216-218, 226-229 notifications, gadget updates, 292-293 online data, reading Microsoft Feed Manager, 298-299 Windows RSS platform, 298-299 XHR (XMLHttpRequest) object, 295-297 XML DOM, 297-298 online gadget communities, 21 OnMouseHover function, feed gadgets, 152 OnUndock function, 122 Opacity property, 17 Opera widgets, 26 Outlook Gadget (Microsoft), 13 P packaging gadgets for deployment, 172 parseData function, 190, 203-204 ParseFeed function, 124 debugging gadgets, 162 feed gadgets, 150-151 parseHTML function, 200 parseHTMLAjax function, Site Statistics gadgets, 201-202 parseRSS function, feed gadgets, 109 How can we make this index more useful? Email us at indexes@samspublishing.com 334 Photoshop Photoshop Layer style, 309 shadow effects, 309-311 transparent PNG files, 307 Picture Slideshow Gadget, 56 pie charts, Site Statistics gadgets, 204-210 PlayRadio function, Radio Gadgets, 247 PNG (Portable Network Graphic) files gadget design, 71 transparent files, 307 Popfly, Sidebar gadget creation via mashup gadgets, 281-283 Website Comparison Gadgets, 280 popup function debugging gadgets, 161 syntax of, 162-163 porting mashup gadgets, 283 power supply information, detecting, 44 PowerStatus method (System.Machine API), 44 presentation/display (design patterns), 127 images, 128 Stylesheets, 129-130 prompt parameter (MsgBox function), 165 pull models (gadget revenue models), 76 ad gadgets, 81 case study, 77 utility gadgets, 84-85 push models (gadget revenue models), 78 case study, 79 gadgets as side products, 82 benefits of, 84 case study, 83 Q-R Question function, debugging gadgets, 164 Radio Gadget designing layouts, 241 themes, 240 usability, 242 developing existing framework integration, 243 media player functionality, 243-247 volume functions, 247-248 features of, 239-240 Internet radio stations, 238-239 requirements for, 239 Windows Media Player, advanced optional parameters list, 244-245 reading online data Microsoft Feed Manager, 298-299 Windows RSS platform, 298-299 XHR (XMLHttpRequest) object, 295-297 XML DOM, 297-298 RealPlayer, Internet radio stations, 239 Recent Documents Gadget, 13 Recent Project Gadgets, 222 Recent ProjectX Gadgets, 221 Refresh function, feed gadgets, 146 refreshing gadget behaviors, 61 RegRead function, MRU Project Gadgets, 232-233 relevant information, gadget design, 51, 54 removeElements method, g:background protocol, 306 RemoveFeed function, feed gadgets, 148-149 Settings page 335 removeObjects method, g:background protocol, 306 removing feeds from feed gadgets, 148-149 Reset() function, feed gadgets, 144 Resize() function, 123 reusable functionality, 120 flyout window, 124-125 gadget window configuration functions, 122 flyout-related functions, 124 gadget specific functions, 124 settings-related functions, 123 standard functions in, 122 Settings page, functions of, 125-126 reusble frameworks, 315 revenue models, 75 ad gadgets benefits of, 82 case study, 81 free information gadgets, 85 benefits of, 87 case study, 86 gadgets as side products, 82 benefits of, 84 case study, 83 pull models, 76 ad gadgets, 81 benefits of, 85 case study, 77 utility gadgets, 84-85 push models, 78 case study, 79 gadgets as side products, 82-84 utility gadgets, 84-85 RSS (Really Simple Syndication) feed gadgets, 61, 91 data storage, 92 feed example, 103 RSS Reader gadget, 55, 57 RSS/Atom, reading, 295, 296-299 S Samurize widgets, 24 SaveSettings function, 125-126 SaveXML function, 133-134 scripting, disabling via Disable Script Debugging option (Internet Explorer), 168 security, 312 code, 313 malware, gadgets as, 37 spyware, gadgets as, 37 User Account Control, 312 Windows Live Gallery, 312 SendPlayStateChangeEvents event, Radio Gadget media player functionality, 245 Service Not Available information (gadget behaviors), 62-63 session management, common assumptions, 133-134 SetClock function, Silverlight World Clock Gadget, 277-278 SetGlobalText function, 301 SetInterval function, feed gadgets, 132 Settings Closed function, 123 Settings page accessibility techniques, 137-138 dimensions (user interface design), 65 How can we make this index more useful? Email us at indexes@samspublishing.com 336 Settings page feed gadgets, 100-101 adding multiple feeds, 142, 146-148 configuring for Mini Me gadgets, 155 removing feeds from, 148-149 updating feeds, 148-150 functions of, 125-126 Recent Project Gadgets, 222 Site Statistics gadgets, 199 settings window, 129 settings-related functions, 123 settings.css files, 33, 129 settings.html files, 30-32 SettingsClosing function, 126 Setup function, 104, 123 Setup Size function, 122 shadow effects, creating in Photoshop, 309-311 shadows in images, addShadow method, 46 sharing gadgets, 320 ShellOpen function, reading Windows Registry, 234-235 shortcut keys, sidebar gadget access, 72 ShowArrows function, feed gadgets, 153 ShowFlyout function, 124 feed gadgets, 110 Site Statistics gadgets, 204-205 side products, gadgets as, 82 benefits of, 84 case study, 83 Sidebar (Windows) customizing, 8 gadgets, functions of, 10-11 Silverlight application implementation, 264 Sidebar Events API (Gadget Object Model), 41 Sidebar gadgets, 19-20 accessibility techniques HTML access, 73 keyboard access, 72-73 theme colors, 73 addShadow method, 46 as HTML application, 37 future of, 46 gBackground method, 45 gImage method, 45 Popfly, creating via mashup gadgets, 281-283 Website Comparison Gadgets, 280 widget boxes, 20 Silverlight applications features of, 262 origin of, 263 running, 262 Sidebar implementation, 264 Silverlight World Clock Gadget, 261 designing images, 268-269 layouts, 269-270 themes, 268-269 usability, 270 developing, 271 animation, 273-274 existing framework integration, 271-272 handleLoad function, 277 logic, 275-280 mouse click events, 279-280 multiple locales, 278-279 SetClock function, 277-278 setting time, 276-277 SilverlightClock.XAML files, 272-273 SystemSetup() function 337 features of, 264-265 JavaScript, 265-266 XAML, 267-268, 272-276 simplicity, user interface design, 53 Site Statistics gadget, 183 API, 187 graphs based on, 204- 210 parsing data, 190 pie charts based on, 204-210 pulling text data, 188-189 designing images, 195-196 layouts, 196-197 themes, 195-196 usability, 197 developing, 198 data retrieval, 200-204 integration into existing frameworks, 199 goals of, 183 Mini Me version, 199 Sitemeter.com website Counter Widget feature, 184 site summary pages, 185 web pages, displaying portions of, 190-194 site summary pages (Sitemeter.com website), Site Statistic gadget development, 185 Sitemeter.com website, Site Statistics gadget development API, 187-190 Counter Widget feature, 184 site summary pages, 185 SLQ Server, accessing, 313 Soapbox Video Gadget, gadget design case study, 51-53 sound information, detecting, 44 spyware, gadgets as, 37 standard file/folder layouts, 118-120 standard images, display/presentation (design patterns), 128 standardizing widgets, 47 startUpPage function, feed gadgets, 111 statistics feed tracking, 294 user tracking, 294 statuses, displaying (gadget behaviors), 61-62 Stop function, debugging gadgets, 169 storing data, feed gadgets, 92 streaming audio, playing on Radio Gadget, 240 styles, gadget design, 70 Stylesheets, display/presentation (design patterns), 129-130 support for gadgets, 87-88 System Debugger Select window, debugging gadgets, 169 System.Contact API, 45 System.debug API, 45 System.Diagnostic.EventLog API, 45 System.Environment API, 43-44 System.Gadget API (Gadget Object Model), 40 System.Gadget.onSettingsClosed property, 123 System.Gadget.Settings API (Gadget Object Model), 40-42 System.Machine API, 44 System.MessageStore API, 45 System.Network API, 43 System.Shell API, 42-43 SystemSetup() function, 123 How can we make this index more useful? Email us at indexes@samspublishing.com 338 tab controls T tab controls, accessibility techniques, 135 text. See also graphic design gadget design, 70 reading, XHR (XMLHttpRequest) object, 295-297 TextBoxFeedURL, feed gadgets, 102 themes color, 73 Radio Gadgets, 240 Silverlight World Clock Gadget, 268-269 Site Statistic gadgets, 195-196 time information, detecting, 44 Silverlight World Clock Gadget, setting in, 276-277 title parameter (MsgBox function), 166 titles, gadget design, 67 tracking users, 294 transparent images, gadget design, 71 transparent PNG files, 307 traversing feed gadgets, 152-154 Trick-of-Mind gadget, 319 UpdateFeed function, feed gadgets, 148-150 updates automatic updates, 289 checking for, 290 posting version information online, 290-291 user notifications, 292-293 version checks via inserted code, 291-292 feed gadgets, 132 feeds in feed gadgets, 148-150 URLFeedsCurrentID variable, feed gadgets, 145 usability, designing for Site Statistic gadgets, 197 usage patterns (gadget design) application gadgets, 58 fun gadgets, 59 information gadgets, 57 utility gadgets, 58-59 User Account Control, security, 312 user interfaces, designing aesthetics, 53 docked page dimensions, 64 flyout page dimensions, 65 guidelines for, 66 relevant information, 54 U undocked gadgets feed gadgets, 154-155 page dimensions, 65 YouTube Video Gadget, 258-259 undocked.css files, 33 unobtrusive traversing, feed gadgets, 152-154 updateAvailable variable, 291 settings page dimensions, 65 simplicity, 53 standard page dimensions, 64 undocked page dimensions, 65 unobtrusiveness of, 56 visuals, 55 user notifications, gadget updates, 292-293 user tracking, 294 visual themes 339 utility gadgets, 58-59, 84 benefits of, 85 case study, 85 Clock Gadget for Time, 14 CPU Meter Gadget, 14 MRU Project Gadgets, 211 ActiveX COM, 214-215 reading Windows Registry settings, 229-234 collection objects, 231 Enumerate Registry, 231-232 framework integration, 222-225 goals of, 212 images of, 220 layout of, 220 listing Windows Registry items, 225-229 reading Windows Registry, 234-235 reading Windows Registry settings, 229-234 RegRead function, 232-233 themes of, 219 usability of, 221 Windows Power Shell, 216 Windows Registry API, 230-231 WMI, 216-218 listing Windows Registry MRU items, 226-229 version information, posting online, 290-291 Video Gadgets, 15, 249 BuildVideoObject function, 251 designing layouts, 252-253 themes, 251 usability, 253 developing docked/undocked functionality, 258-259 existing framework integration, 255-256 gadget windows, 259-260 Flash Media Player, embedding in, 250-251 video feeds, 249-250 Visual Studio, MRU Project Gadgets, 211-213 framework integration, 222-225 goals of, 212 images of, 220 layout of, 220 themes of, 219 usability of, 221 Windows Registry listing items, 225-229 reading, 234-235 reading settings, 229-234 visual themes (gadget design) background images, 68-69 buttons, 69 V VBScript, debugging gadgets, 164-166, 169 verisign certificates, buying, 176 version checks via inserted code, 291-292 controls, 69 drag images, 68 icons, 67 titles, 67 How can we make this index more useful? Email us at indexes@samspublishing.com 340 visuals visuals (gadget design) GIF files, 71-72 PNG files, 71 transparent images, 71 user interface design, 55 volume functions, Radio Gadgets, 247-248 Windows Media Player, advanced optional parameters list, 244-245 Windows Power Shell, 216 Windows Registry accessing ActiveX COM, 214-215 Windows Power Shell, 216 WMI, 216-218 listing MRU items from, 225-229 reading settings via ActiveX COM, 229-234 ShellOpen function, 234-235 Visual Studio MRU, viewing, 213 Windows Registry API, MRU Project Gadgets, 230-231 Windows RSS platform, reading online data via, 298-299 Windows Sidebar customizing, 8 gadgets, functions of, 10-11 Windows XP, Active Desktop feature, 9 WMI (Windows Management Instrumentation), 216-218, 226-229 World Clock Gadgets, 261 designing images, 268-269 layouts, 269-270 themes, 268-269 usability, 270 developing, 271 animation, 273-274 existing framework integration, 271-272 handleLoad function, 277 logic, 275-280 mouse click events, 279-280 multiple locales, 278-279 SetClock function, 277-278 W W3C (World Wide Web Consortium), widget standardization, 47 wallpaper, 34 warnings, gadget behaviors, 61-62 Weather Gadget, 12, 19, 61 web gadgets, 19, 22 web pages displaying, Site Statistics gadgets, 190-194 HTML pages, applications versus, 37 Site Statistics gadgets, data retrieval, 200-204 web resources, sharing gadgets, 320 Website Comparison Gadgets, 280 widget boxes, 20 Widget-Box gadget, 317 widgets, standardizing, 47 Windows Cabinet (CAB) files creating, 175 deploying gadgets, 174 buying certificates, 176 signing via certificates, 178 Windows Installer, 180 Windows Installer, deploying gadgets via CAB files, 180 Windows Live Gallery, security, 312 zip files 341 setting time, 276-277 SilverlightClock.XAML files, 272-273 features of, 264-265 JavaScript, 265-266 XAML, 267-268, 272-276 WPF/E (Windows Presentation Foundation/Everywhere). See Silverlight applications, 263 WScript, debugging gadgets, 161-163 Y-Z Yahoo widgets, Konfabulator, 22 YouTube Video Gadget, 249 BuildVideoObject function, 251 designing layouts, 252-253 themes, 251 usability, 253 developing docked/undocked functionality, 258-259 X XAML (eXtensible Application Markup Language) Hello World files, 268 Silverlight World Clock Gadget, 267-268, 272-276 XHR (XMLHttpRequest) object, reading online data via, 295-297 XHTML (Extensible Hypertext Markup Language), reading, 295 XML (Exentensible Markup Language) feed gadget files, 94-95 gadget.xml files, 30-32 Gadget.xml manifest files, MyBlog gadget, 98-99 reading XHR (XMLHttpRequest) object, 295-297 XML DOM, 297-298 XML DOM (Document Object Model), reading online data via, 297-298 XMLHTTPRequest object, 105-107, 298 XMLHTTPRequest objects methods of, 188 properties of, 188 pulling text data, 188 retreiving HTML, 192 existing framework integration, 255-256 gadget windows, 259-260 Flash Media Player, embedding in, 250-251 video feeds, 249-250 zip files deploying gadgets, 173 feed gadgets, 113-114 How can we make this index more useful? Email us at indexes@samspublishing.com &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-1795611331950220648?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=8Rme1D9A"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=xr8viGDK"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=2JZke70P"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=hSFM0zAw"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=hSFM0zAw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uTv1tUkW"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=a6xWCHPK"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=a6xWCHPK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=MhMaOrja"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=3r3eQy3j"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=SjzU2PGx"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=SjzU2PGx" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/ysSZ3qhZvQQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/1795611331950220648/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=1795611331950220648&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/1795611331950220648" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/1795611331950220648" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/ysSZ3qhZvQQ/introduction-creating-vista-gadgets.html" title="Introduction: Creating Vista Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/introduction-creating-vista-gadgets.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-7446769897345785659</id><published>2008-04-26T21:42:00.000-07:00</published><updated>2008-05-06T21:47:07.222-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="table" /><title type="text">Table of Contents : Creating Vista Gadgets</title><content type="html">Table of Contents for &lt;em&gt;Creating Vista Gadgets&lt;/em&gt; &lt;a href="http://innovatewithgadgets.com/Extra/Table-of-Contents-Creating-Vista-Gadgets.pdf"&gt;download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="-674203778" name="-674203778" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="920" width="700"&gt; &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2897656&amp;access_key=key-3c5iw3jcrrna5pq21kz&amp;page=1&amp;version=1"&gt; &lt;param name="quality" value="high"&gt; &lt;param name="play" value="true"&gt; &lt;param name="loop" value="true"&gt; &lt;param name="scale" value="showall"&gt; &lt;param name="wmode" value="opaque"&gt; &lt;param name="devicefont" value="false"&gt; &lt;param name="bgcolor" value="#ffffff"&gt; &lt;param name="menu" value="true"&gt; &lt;param name="allowFullScreen" value="true"&gt; &lt;param name="allowScriptAccess" value="always"&gt; &lt;param name="salign" value=""&gt; &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2897656&amp;access_key=key-3c5iw3jcrrna5pq21kz&amp;page=1&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="-674203778_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="920" width="700"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:700"&gt;&lt;a href="http://www.scribd.com/doc/2897656/Table-of-Contents-Creating-Vista-Gadgets"&gt;Table of Contents - Creating Vista Gadgets&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a doc&lt;/a&gt;&lt;/div&gt;&lt;div style="display:none"&gt; Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2897656/Table-of-Contents-Creating-Vista-Gadgets"&gt;Table of Contents - Creating Vista Gadgets&lt;/a&gt; &lt;/div&gt;&lt;div style="display:none"&gt; &lt;br /&gt;Creating Vista" Gadgets: Using HTML, CSS and JavaScript with Examples in RSS, AJAX, ActiveX (COM) and Silverlight Rajesh Lal Contents at a Glance Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Part I 1 2 3 4 Part II 5 6 7 8 Part III 9 10 11 12 Part IV A B The Foundation Innovate with Windows Vista Sidebar Gadgets The Architecture ........................................7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 An Approach to Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Selling Your Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Developing a Gadget Creating a Simple Gadget with RSS/Atom Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Design Patterns and Standard Practices The MyBlog Gadget Revisited Debugging and Deploying a Gadget Advanced Samples Site Statistics Gadget with AJAX—An Information Gadget Most Recent Used .NET Projects—An Application Gadget Radio Gadget and YouTube Video Gadget—Fun Gadgets A Silverlight World Clock—Utility Gadget Appendices Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 . . . . . . . . . . . . . . . . . . . . . . 183 . . . . . . . . . . . . . . . . . . . . . . 211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 . . . . . . . . . . . . . . . . . . . . . . . 237 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Table of Contents Introduction 1 What’s in the Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Section 1: The Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Section 2: Developing a Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Section 3: Advanced Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Special Features and Notations Supporting Website .............................................................2 ............................................................................3 Part I 1 The Foundation Innovate with Windows Vista Sidebar Gadgets Windows Sidebar 7 Introducing Gadgets and the Vista Sidebar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 .......................................................................8 ..........................................................8 Technology Behind Gadgets Brief History of Gadgets ...............................................................9 Innovate with Gadgets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Types of Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Information Gadgets Utility Gadgets Fun Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Application Gadgets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Gadgets in Depth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 What Gadgets Are Not. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Different Views—The Three Hats of the Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Opacity Level and Always on Top Property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Using Flyout for More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Multiple Platforms for Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Meeting Points for Different Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 The Development Platform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Gadget Ecosystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Other Desktop Gadget/Widget Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Gadget Comparison Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Contents v 2 The Architecture Gadgets Overview 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 The Manifest File gadget.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 User Interface and Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Core Functionality of the Gadget: JavaScript Resources, PNG, and Other Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Technology Behind Gadget Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 MSHTML Component, the Core of the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Standard Web Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Sidebar Gadget as an HTML Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Gadget Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ActiveX Technology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Gadget Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 User Interaction and Sidebar Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 APIs to Access the File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Core Features to Interact with the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Communication and Other APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Sidebar Gadgets: The Road Ahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3 An Approach to Design Design Considerations 49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Putting Information First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Constructing the Right User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Usage Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Gadget Behavior Challenges for the User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Standard Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Gadget Page When Docked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Undocked Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Settings Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Flyout Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Other Interface Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Visual Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Drag Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Background Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Text and Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 vi Creating Vista Gadgets: Using HTML, CSS and JavaScript with Examples in RSS, AJAX, ActiveX (COM) and SilverLight Transparent Images in the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Alpha Transparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Portable Network Graphics File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 GIF File Limitations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 About Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Keyboard Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 General HTML accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Theme Colors and Contrast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4 Selling Your Gadget Pull Model 75 Gadget Revenue Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Push Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 How Gadgets Give You Business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 The Ad Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Gadget as a Side Product. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Utility Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Free Information Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Supporting Your Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Part II 5 Developing a Gadget Creating a Simple Gadget with RSS/Atom Feed Brief Background on Feeds 91 Feed Gadgets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 About the MyBlog Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Basic Framework of the MyBlog Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Required Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 How the MyBlog Gadget Works. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 The Manifest File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Gadget Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Parts of the MyBlog Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 The Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Core Functionality of the Gadget Presenting with CSS and DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Putting It All Together. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Contents vii 6 Design Patterns and Standard Practices 115 Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Maintainable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Customizable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Extensible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Elements of Design Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Standard Layout for Files and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Reusable Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Display and Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Common Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 The Gadget Will Always Work Regular Feed Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Internet Connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Caching of the Feed Data Memory and Session Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Adding Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Putting the Focus on the Gadget when It Is Loaded . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Adding Tab Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 The Enter Key Acting Like a Mouse Click . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Using the onfocus and onfocusout Events for Mouse Hover Effect . . . . . . . . . . 137 Making the Gadget’s Flyout and Settings Page Keyboard Accessible . . . . . . . 137 7 The MyBlog Gadget Revisited Recapping the MyBlog Gadget 139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Taking the MyBlog Gadget to the Next Level. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Adding Multiple Feeds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Managing Multiple Pages in the Gadget Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Unobtrusive Traversing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Docked, Undocked, and Mini Me Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Settings Page Configuration for the Mini Me Version. . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Gadget Window Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 8 Debugging and Deploying a Gadget Debugging Using WScript and VBScript Debugging Tools 159 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Debugging a Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Debugging Using JavaScript and DOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Deploying a Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Gadget Installation Target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Gadget Installation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Gadget Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 viii Creating Vista Gadgets: Using HTML, CSS and JavaScript with Examples in RSS, AJAX, ActiveX (COM) and SilverLight Deployment Using a Cabinet File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 CAB File Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 A Windows Installer (.msi File) or setup.exe Comparison of Deployment Methodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Part III 9 Advanced Samples Site Statistics Gadget with Ajax—An Information Gadget 183 The Goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Background—www.sitemeter.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Site Summary Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Features and Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Application Programming Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Loading a Portion of a Web Page with Ajax and DOM. . . . . . . . . . . . . . . . . . . . . . . . . 190 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Theme and Images of the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Layout of the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Usability of the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Developing the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 . . . . . . . 200 Integrating the Existing Framework Retrieving Data for Site Summary Using API and Online Web Page Graphs and Pie Charts Based on the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 10 Most Recent Used .NET Projects—An Application Gadget 211 Recent .NET Project Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Target of the Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Features and Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 ActiveX COM Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Windows Power Shell and Windows Management Instrumentation. . . . . . . . . . 216 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Theme of the Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Layout of the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Usability of the Gadget Developing the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Integrating the Existing Framework Listing MRU Items from the Registry Reading the Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Contents ix 11 Radio Gadget and YouTube Video Gadget—Fun Gadgets 237 Media Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 The Radio Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Background—Internet Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Features and Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Developing the Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 The YouTube Video Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Background—YouTube Video Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Features and Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Developing the Gadget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12 A Silverlight World Clock—Utility Gadget 261 The Silverlight Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Background—Microsoft Silverlight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Features and Technology Microsoft Silverlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 JavaScript for Creating the Silverlight Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Extensible Application Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Theme and Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Layout of the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Usability of the Gadget Developing the Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Integrating the Existing Framework The XAML File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Silverlight Clock Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Creating a Sidebar Gadget Using Microsoft Popfly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Website Comparison Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Creating a Mashup Using Microsoft Popfly Porting a Mashup to Vista Sidebar as a Gadget Where to Go from Here. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Part IV A Appendices Tips and Tricks Checking for a New Version of the Gadget Tracking Your Users 289 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 Automatic Update and User Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 x Creating Vista Gadgets: Using HTML, CSS and JavaScript with Examples in RSS, AJAX, ActiveX (COM) and SilverLight Reading XML, XHTML, RSS/Atom, Html, Text and JSON Data. . . . . . . . . . . . . . . . . . . . . . 295 The XMLHTTPRequest object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 Microsoft XML DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Windows RSS Platform &amp; Microsoft Feed Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Globalization and Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Localized Gadget Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Locales with Country Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Graphic Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Gadget Protocols for Image and Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Sample Gadget g:Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Creating a Transparent PNG File in Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Creating Outer Edges/Shadow Effects in Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Security and Other Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Protecting Your Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Gadgets in an Enterprise (Accessing SQL Server). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Resources and References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 B Extras 315 Reusable Framework for Creating Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Sample Gadgets Based on the Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 The Widget-Box Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 The Comic-Strip Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 The Trick-of-Mind Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Share Your Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Index 321 About the Author Rajesh Lal is an author, technology evangelist, and solutions engineer specializing in web technologies. He has received numerous awards for his articles on Windows Vista and Sidebar gadgets. He is a frequent contributor to Windows Vista Magazine and Code Project websites. With more than a decade of experience in IT industry in progressive roles from graphic designer, software developer, architect, team lead, and project leader to independent consultant, Rajesh enjoys taking an objective and pragmatic approach to developing applications using Microsoft technology. He has a master’s degree in computer science from Beaumont, Texas, and holds MCSD and MCAD titles. To read his Vista Gadget blog, go to www.innovatewithgadgets.com. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-7446769897345785659?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=502r7Zea"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=avax7024"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uXw5C2Gv"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4BAoWVVu"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=4BAoWVVu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=txqpAAtB"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=bjIrtQu1"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=bjIrtQu1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=BMD2ysVD"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=0oRYalZm"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=3kUXtMZq"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=3kUXtMZq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/B-1lfTNUFZU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/7446769897345785659/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=7446769897345785659&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7446769897345785659" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7446769897345785659" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/B-1lfTNUFZU/table-of-contents-creating-vista.html" title="Table of Contents : Creating Vista Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/table-of-contents-creating-vista.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-8900458112380242890</id><published>2008-04-24T21:35:00.000-07:00</published><updated>2008-05-16T05:19:50.131-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="selling" /><category scheme="http://www.blogger.com/atom/ns#" term="sample chapter" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><title type="text">Sample Chapter : Selling Your Gadget</title><content type="html">Download the Sample Chapter &lt;a href="http://innovatewithgadgets.com/Extra/Chapter-4-Creating-Vista-Gadgets.pdf"&gt;Selling your Gadget&lt;/a&gt; or read online (&lt;a href="http://www.innovatewithgadgets.com/2008/04/selling-your-gadget-chapter-4-creating.html"&gt;HTML version&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;object id="-635364418" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" height="970" width="700" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" name="-635364418"&gt;&lt;param name="_cx" value="18521"&gt;&lt;param name="_cy" value="25665"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2895812&amp;amp;access_key=key-29vdvxsexjyyfk06xhp5&amp;amp;page=1&amp;amp;version=1"&gt;&lt;param name="Src" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2895812&amp;amp;access_key=key-29vdvxsexjyyfk06xhp5&amp;amp;page=1&amp;amp;version=1"&gt;&lt;param name="WMode" value="Opaque"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value="LT"&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="NoScale"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;br /&gt;             &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2895812&amp;access_key=key-29vdvxsexjyyfk06xhp5&amp;page=1&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="-635364418_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="970" width="700"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="FONT-SIZE: 10px; WIDTH: 700px; TEXT-ALIGN: center"&gt;&lt;a href="http://www.scribd.com/doc/2895812/Chapter-4-Creating-Vista-Gadgets"&gt;Chapter 4 Creating Vista Gadgets&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a doc&lt;/a&gt;&lt;/div&gt;&lt;div style="DISPLAY: none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2895812/Chapter-4-Creating-Vista-Gadgets"&gt;Chapter 4 Creating Vista Gadgets&lt;/a&gt; &lt;/div&gt;&lt;div style="DISPLAY: none"&gt;&lt;br /&gt;CHAPTER Selling Your Gadget “Make service your first priority, not success, and success will follow.” —Anonymous 4 IN THIS CHAPTER • Gadget Revenue Model • How Gadgets Give You Business • Supporting Your Gadget Gadget Revenue Model Sidebar gadget development platform is new, but it uses standard web technologies such as HTML, CSS, and JavaScript. These technologies have matured in the last few years and have a large community of developers. Sidebar gadgets have a much shorter development life cycle than regular software: quick development, easy deployment, and almost no maintenance. This makes the Sidebar gadget development platform very attractive for developers. It’s a platform rife with the opportunity to innovate. It’s a new approach for providing quick information and tools. The revenue model of an Internet-based service company depends on one thing: traffic. And Sidebar gadgets have the potential to drive traffic. There will be more than 100 million Windows Vista users in next few years. If your gadget is popular among 1% of them, just imagine your gadget on 1 million users’ desktops. A reference to your website will also drive them directly to your online business portal. How you use this new way of interaction and this new set of customers coming to your website depends on you and your own individual service. A Sidebar gadget is a mini application with the simplicity of a web application and the power of a Windows application. It is a small and lightweight tool. A Sidebar gadget is The 76 CHAPTER 4 Selling Your Gadget not meant to be created as a complete software application, whether sold as a downloadable product or a “try before buy” tool. The revenue model of a Sidebar gadget works best as a free service to drive traffic to your website or as a side product of a bigger application. It is debatable right now whether you can make millions from a Sidebar gadget, but the potential is there and the possibilities are endless. Do the math yourself; assuming that your gadget is popular: • There will be 100 million Windows Vista users in the next year (predicted by Microsoft). • A popular gadget used by 1% of those users means 1 million users. • If 5% of those 1 million users to become customers, you have 20,000 potential customers. • Potential revenue equals 20,000 multiplied by $ x (sales per user). Users will be using the gadget for free; customers are those 5% among the gadget users who go ahead and buy a service from the gadget provider’s website. We discuss this in detail in the later sections. The type of gadget you build depends on which revenue model you want to use to attract potential buyers: • Pull model—A free utility that pulls customers to the website • Push model—A tool that enhances an existing application or service We discuss both these models in the following sections. Pull Model In the pull model, you create new ways to market your online business by distributing a useful Sidebar gadget freely on the Web. The gadget should have a subset of features you want to sell to buyers and it needs to have enough information to keep users interested and eventually convert at least some of them to buyers. Gadgets utilizing the pull model should have a link to the website providing the product or service. TIP There are two keys to creating a successful gadget with the pull model: • Using the gadget platform to create a free innovative service to pull the customers to your website. • Creating a website that sells online service(s) and uses gadgets as a marketing tool by providing free basic services in the form of Sidebar gadgets. Gadget Revenue Model 77 Steps and Different Roles in the Model A pull model needs a series of steps along with the development of sidebar gadgets. Companies that already have an online service or product to sell can also utilize this model. In action, the model follows these general steps, which are also illustrated in Figure 4.1: • You have a website that provides the service(s) and/or product(s) you want to sell. • Choose a subset of the service that you can provide as a basic free service. • Create a Sidebar gadget that delivers this free service to users. • Build a user base. • Drive interested users (potential customers) to the website where more complete services are offered (for a price). 4 Mastercard VISA Web Site providing Service(s) Customers Sidebar Gadget Basic Free Service Users Users FIGURE 4.1 A pull model uses a gadget to drive traffic to the website. The gadget provides a basic service that is available for free to all in a public server. The basic service should be sufficient enough to create user interest in related products and services. Case Study: Rare Book Seller Website TrickofMind, a Fictitious dot-com company with few developers and resources, wants to sell rare puzzle books on the Internet. It has a catalog of books and a payment gateway set up, but what it lacks is users that may become customers. You, as an analyst, have come up with a plan to leverage the Sidebar gadget platform by following these steps: 1. Create a Trick of the Day Sidebar Gadget. This has a puzzle trick every day in the form of an RSS feed. 2. Track your RSS feeds with online tracking tools such as feedburner.com. Appendix A contains a section about tracking RSS feeds. 78 CHAPTER 4 Selling Your Gadget 3. Deploy your Sidebar gadget on a publicly available server, such as http://gallery.live.com, for users to find and download. Don’t forget to add keywords and tags to make it easily searchable. 4. Provide a consistent service to users, such as the trick question every day and also some kind of interaction through the Sidebar gadgets, such as a reply link or a link to the website. 5. Provide a link to the website for users interested in puzzle books. Make your website dynamic, informative, and interesting enough for users to return to on a regular basis. Websites that provide tricks, puzzles, or questions every day already exist, but a Sidebar gadget providing puzzles at your desktop would make yours more usable. A daily trick delivered to your desktop is a very attractive service for puzzle lovers. Gadgets offer a new approach to the old model, “basic free service, paid pro service.” Almost all Internet companies try to use this model to generate traffic and revenue. The model is not new, but the approach utilizing sidebar gadgets is. Every day, millions of users search for a gadget that provides them with a daily dose of their favorite hobby. There are websites providing these daily services, but most of them deliver them by mass emails or online forums. Nobody—at the time of this writing— delivers them to your desktop in the form of a state-of-the-art Sidebar gadget. Use the gadget platform and grab those customers before somebody else does. Check the TrickofMind gadget in Appendix B in the “Extras” section. Push Model The push model relies on enhancing existing service and increasing customer satisfaction. This model works where you already have an online business with a customer base. Use a Sidebar gadget to enhance your customer experience and provide that “extra” service exclusively to your customers. This will not only boost the satisfaction of the existing customers but also act as a great marketing tool for new customers. Use the Sidebar platform to create an add-on service that provides users with quick and ready-to-use information that benefits them. Any information that changes daily and is needed by your customer can be provided as an information gadget. TIP Consider an appropriate authentication method to ensure that only your paying users have access to the gadget’s features. Steps and Different Roles in the Model A push model starts with an existing web service, but an existing customer base is what distinguishes the push model from the pull model. There is lot more potential for marketing in a push model where you already have a customer. Your users are already coming to Gadget Revenue Model 79 your website for frequently updated data or information. The following list, which is illustrated in Figure 4.2, describes the components of a push model: • Existing web application or service • Existing customer base • Ready-to-use information gadget based on an existing service • Gadget deployment in the web portal • Increased satisfaction for the existing customers, relative to the pull model 4 Existing Website with online service(s) Ready-to-use quick information Sidebar gadget Existing customers increased satisfaction FIGURE 4.2 A push model uses the existing customer base. Case Study: Real Estate Web Service Imagine you have a website that displays home rental listings for property managers. Your website receives updates from multiple agents and private sources. Currently, property managers go to the website and filter the results based on their preferences, such as area, price range, and date. The information is dynamic in nature and changes every day. The property managers are always searching for new rental listings, but it’s easy for them to miss some of the listings. As an analyst, you come up with a plan to leverage the push model for Sidebar gadgets. 1. Make global listings available in XML format as RSS feeds, with date and region as parameters. 2. Create a Recent Listing Sidebar gadget that uses settings specific to the rental listing to filter the feed data into a set of top 20 listings. Let the gadget update the feed every hour. 3. Deploy your Sidebar gadget in your web application exclusively for property managers. Here is the list of benefits: • Use of the gadget ensures proper flow of important information. • The gadget makes listings available to property managers without requiring them to go to the website. With multiple instances of the gadget, the property manager can set up different search criteria. 80 CHAPTER 4 Selling Your Gadget • This results in better flow of information, reducing search costs and potential missed listings. • Use of gadgets results in increased satisfaction among property managers. The push model facilitates the property manager in viewing useful information quickly and efficiently. With the power of the Sidebar gadget, the property managers can manage more properties in less time, which increases both their revenue and customer satisfaction. The push model can be used with many online businesses with an existing customer base. Think of this new way of providing features to your customers as something that offers you a significant competitive edge. How Gadgets Give You Business Typically, gadgets are not meant to be sold as individual products. Both push and pull revenue models utilize a Vista Sidebar gadget as a tool to do business more efficiently. The platform provides a unique way to interact with customers. The business model of a gadget is not to sell and make profit out of the gadget itself but rather out of the information, service, or product that the gadget supports. The reason is simple. Sidebar gadgets are based on HTML, CSS, and JavaScript, so the gadget’s source code actually goes with the gadget when you deploy it. The .gadget extension is nothing but a .zip extension in disguise. Anybody with this information can open the source of the HTML file and make changes to it. In addition, thousands of gadgets are freely available online, delivering all kinds of services, which makes it difficult—if not impossible—to sell a gadget. Four kinds of gadgets can generate revenue (see Figure 4.3): • Ad Gadgets, which are gadgets used as advertising tools • Gadgets that are side products for enterprise-level applications • Utility Gadgets, which provide a watered-down version of a utility • Free Information Gadgets, which collect trends and usage statistics Side product Utility Gadget Ad Gadget Revenue News Gadget FIGURE 4.3 These four types of gadgets are all capable of generating revenue. How Gadgets Give You Business 81 The Ad Gadget The Ad Gadget is meant for advertisement of a service. It is based on the pull business model in which you create a free subset of a service, but compel the user to subscribe for an advanced set of features. An Ad Gadget becomes the starting point of an already existing service on the web and helps business in the following ways: • Free basic service in the Sidebar gadget acts as an advertisement for the actual service on the website. • The service on the website can be free, with a revenue model derived from advertisement banners on the website. • The service on the website can be a paid subscription for a Pro Account. Revenue here comes from subscribers. 4 TIP The Ad Gadget is not meant for displaying advertisements but to be used as an advertisement tool for a particular service. Case Study: Site Statistics, Ad Gadget with Pull Model A website statistics provider company such as sitemeter.com shows statistical information about visitors for a particular customer’s website. It gives free information for the last single month. The statistics provider company’s revenue model is based on advertisement banners on the website and paid professional accounts. In addition to offering a free basic service (statistics for last month), what if the organization created a Sidebar gadget for advertising its free service? The information in the gadget would whet users’ appetites, and compel them to visit the website for more detailed statistics. Here is how the pull model works for the Site Statistics Gadget (also see Figure 4.4): • Free basic statistics in the Sidebar gadget pull users to the website. The gadget has a link to the website, which provides detail statistics. Users visit more often through the gadget than they do by actually navigating to the website. • The gadget provides a subset of the free basic service and still pushes users to go to the website for detail statistics. This helps drive in the revenue from banner advertisements on the website. • The gadget helps in driving traffic to the website. It also acts as a tool for marketing the paid subscription for the Pro Account. The revenue model of a paid subscription is strengthened by the presence of the gadget. 82 CHAPTER 4 Selling Your Gadget Paid Subscription to PRO Account Free detailed statistics in Web site Basic Statistics-via Sidebar Gadget FIGURE 4.4 Sidebar. Ad Gadget for Site Statistics provides a subset of free basic service on the Vista The pull model here has two modes of revenue: revenue from advertisements on the website and revenue from the users who come from the link in the Sidebar gadget. Eventually there will also be revenue from users who become subscribers to the Pro Account, an account that provides the detailed annual statistics and other advanced services and that comes with a paid subscription. Benefits of Using an Ad Gadget An Ad Gadget not only provides an advertisement of the web service but also acts as a marketing tool that is freely available in online communities. Following lists the benefits of an Ad Gadget: • Free advertisement of the service through the gadget. • Wide availability (The gadget can be made available in free online communities such as http://gallery.live.com, which gives the service exposure to millions of users.) • Increase in number of users for your service. • More satisfaction among existing paid account holders. Gadget as a Side Product A gadget as an add-on to an enterprise-level application is also a great selling tool. This kind of gadget follows the push model and is targeted toward existing users. Any enterprise-level application, such as a Customer Relationship Management (CRM) or Enterprise Resource Planning (ERP) application, deals with a lot of frequently updated data. Users sometimes find it difficult to filter down data relevant to them for a particular How Gadgets Give You Business 83 scenario. A sidebar gadget providing the ready-to-use data can be very useful in this kind of scenario (see Figure 4.5). Enterprise-level application Displayed in the Sidebar gadget Filtered information Data relevant to the user Users 4 FIGURE 4.5 A Sidebar gadget used as a side product increases both the usability of the main application as well as customer satisfaction. A gadget as a side product becomes a useful tool for existing customers. To enable a gadget for an enterprise-level application, you have to make sure of the following: • First of all, expose required data to be displayed in the gadget in an open XML format (recommended RSS feed format). • Enable a way to authenticate users to display data filtered by the individual user. • Use existing web technologies such as Ajax and SOAP to access secure data from an XML web service. This kind of gadget works as a complementary product to the actual application and is primarily used for displaying user-relevant information, as well as frequently updated data. Case Study: Microsoft CRM Gadget, Gadget as a Side Product Microsoft Dynamics Customer Relationship Management is a powerful enterprise-level application. Its capability to integrate with Microsoft Office applications, Microsoft Outlook, and Blackberry mobile devices makes it a state-of-the-art application. One important feature of the CRM is that it acts as a central repository for all customerrelated data and accounts related to a particular member. Normally a member has to log in to Microsoft Dynamics and access information filtered by different criteria, using a user interface provided by the application, an intranet application, or a website. Creating a gadget that displays the list of accounts and contacts associated with a current member is of immense help. The user no longer has to start Microsoft Dynamics and go to the 84 CHAPTER 4 Selling Your Gadget accounts page to get this information. This is possible because the enterprise application enables gadget development by supporting the following (as illustrated in Figure 4.6): • Microsoft CRM is exposes data through web APIs. • Authentication for the member is possible from the gadget. • The enterprise application provides a web service for accessing data. Web APIs Enable User Login • Expose XML web services • SOAP data exchange • Authentication • Authorization XML Data • Expose core data in XML format • Expose public data as RSS feeds FIGURE 4.6 An enterprise-level application needs to expose data through web APIs and should support the technologies for gadget development. Benefits of Using Gadgets as Side Products A gadget used as a side product compliments the main application. The case study showed how a member of an enterprise-level application can benefit from the use of the gadget. A gadget as a side product increases the usability of the main product by doing the following: • Providing ready-to-use information. • Providing filtered and relevant data. • Displaying data related to the logged-in member. • If you use multiple instance of the gadget, enabling the member to search information with different filters. Utility Gadget A utility gadget normally is a watered-down version of a Windows application, giving access to quick tools and features provided by the operating system. Some utility gadgets provide information on CPU usage or available drive space. This kind of gadget can be used to create revenue within the pull model. How Gadgets Give You Business 85 A utility gadget can be both a basic version of the main application or a side product complementing the application. For example, a basic utility in the form of a gadget can be distributed freely over the Internet, and a more feature-rich application with advanced features can be purchased from your website. If the gadget is popular, it will drive traffic to your website and eventually help sell the application. In the actual implementation, a utility gadget typically is a watered-down version of the full application. This functionality can be exposed as an active component to be called and used by the gadget. In this scenario, the full-featured application exists on the provider’s website and the Sidebar gadget platform is used in the following ways: • A Sidebar gadget with a basic or watered-down version of the application • A gadget that acts as a side product to the application Trial software is quite standard for companies selling products and doing business online. The addition of the sidebar gadget can be a major advertisement for the utility and can be leveraged as a trial version of the software. 4 Case Study: Backup Software Utility Gadget DBKP, a fictitious backup software company, provides robust, reliable, and complete backup software. The company provides a “trial version” of the software implemented as a gadget, providing some basic free services. The company creates a gadget that provides quick access to the application’s popular features, using APIs exposed in a dynamic link library that the application also uses. Benefits of the Utility Gadget The utility gadget can be both a free service for advertisement of the company as well as a side product for the actual application. It provides the following benefits to the company: • The right set of features in a Sidebar gadget can make it instantly popular, resulting in lot of traffic to the website. • The gadget provides quick access to the features of the backup application and makes the application more useful. A utility gadget’s feature set, which is meant for driving users to buy the actual product, has to be carefully chosen so that it drives potential users to purchase the product and become customers. Free Information Gadget A free information gadget, as the name suggests, provides regularly updated information as a free service. In turn it collects usage statistics from the gadget users. This can be thought of as similar to the process of mining web logs, where web logs are analyzed for page usage statistics. Information such as page views, durations on a page, and number of visits are used to make decisions. The only difference is now you are making the data available through the gadget and tracking the RSS feed instead of web pages. 86 CHAPTER 4 Selling Your Gadget The free information gadget’s revenue model is based on the current trend in advertising, which values user choice. That is to say, this revenue model depends greatly on the statistics related to the number of users who views a particular piece of information. Data related to information that was shared a greater number of times or commented or viewed are used for advertisement purposes. For example, a gadget providing video feed can use the statistical information on which video was shared or played the most. The demand for this kind of information becomes the basis of the free information gadget. These gadgets also promote a parent website and help generate revenue from banner advertisements. You’ll find more information on collecting usage statistics from the gadget in Appendix A. A free information gadget can even use live data streaming for things such as broadcasting or podcasting. It can also have built-in advertisements, just like a real radio or video channel. These gadgets take data in the form of an RSS feed from the provider website and display the data, formatted, to the user. The data in the information feed can contain links to pictures, audio, video, or just plain text or HTML. The gadget provides the title and a short description of the information. The user can click on either one to read the information or play the audio or video related to it. This revenue model is based on the usage statistics of the information and also the ad banners in the website. The whole advertisement network is switching toward this trend, which is based on this kind of usage information. To create a free information gadget, follow these steps: 1. Make your data available in the form of an RSS feed. 2. Track the usage of individual items in the feed. 3. Provide a link from the gadget to the actual website. Case Study: NYBC News Gadget, a Free Information Gadget NYBC, a New York broadcast company, provides access to the news from its website but consumers don’t seem to be using the service. It provides a lot of options for users to add their opinions, ask questions, interact with the reporters, and rate and share news with others. The company provides top local news in the form of an RSS feed that is freely available in the website. The data available is in a variety of formats: audio, video, and HTML with pictures. NYBC also provides streaming servers for live commentaries. The customers are local to New York and it has a lot of presence in the newspaper market. What it’s aiming for is an online presence. Supporting Your Gadget 87 The company leverages a Sidebar gadget platform to solve this problem. As an analyst in the company you come up with a News Gadget for New Yorkers. The gadget provides the following: • Frequently updated news in the form of an RSS feed • A radio feature built into the gadget for live streaming • Links to the news website Benefits of the Gadget Having a gadget on your desktop, which gives you regularly updated news in the form of text, audio, and video, is far more attractive than visiting a website to access information. The gadget platform can provide the following benefits in the current scenario: • Subscribers love the easy-to-use gadget for their favorite newspaper. • Online activities will increase because each news item will have a corresponding link to the website. • The RSS feed can be tracked easily for usage information. • The streaming server can also include audio and video advertisements. 4 Supporting Your Gadget Supporting a gadget is similar to supporting any product, but in many ways it is relatively easier. Gadget support is crucial because if you are developing a gadget for revenue, you have to make sure that it works properly. Because no help file comes with the gadget, if you want to include some kind of tutorial, it has to be done in the support page. Remember that gadgets are all about interactivity. A forum dedicated to the gadget is very helpful in acquiring feedback from users in the form of suggestions and new feature requests. As with any software product, you need to provide an upgrade path for new features and services. Support features that can help maintain a gadget include the following: • A link to the support page, which describes the features. • An email link to contact the developer or the company that provides the gadget. • An online forum that provides a mechanism for users to communicate with each other and the developer/company for issues. A link to a forum in the gadget is helpful. • A page dedicated for suggestions, new features, and so on. • Auto-update functionality. Detailed further in Appendix A. Links should be provided in the Settings page to enable the user to visit the corresponding web page. 88 CHAPTER 4 Selling Your Gadget TABLE 4.1 Application Differences Between an Application and a Sidebar Gadget A Sidebar Gadget No help file. A gadget’s settings page can be used to add an email address or website information. Contact information in the form of email address. A support/suggestions page is desirable. A lightweight forum for a discussion board is also helpful. Needs to be upgradeable and needs user’s interaction for upgrade. Contact information in the form of email address. A support/suggestions page is desirable. A lightweight forum or discussion board is also helpful. 320 pixels×240 pixels. Normally has a help file associated with it. Has about a page that contains company or developer information for contact. Products normally have dedicated forums for support and a huge user community. Comes with auto-update functionality. Products normally have dedicated forums for support. Flyout page. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-8900458112380242890?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=R3JxmU6M"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=btJely1V"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=37RGDcIq"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=zwz4YW3J"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=zwz4YW3J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uAJDHDKN"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=hFz5OhZN"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=hFz5OhZN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=9osFcuCd"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=HjhD3evU"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=KE7UsRp4"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=KE7UsRp4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/qb0QNAHpzl8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/8900458112380242890/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=8900458112380242890&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8900458112380242890" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8900458112380242890" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/qb0QNAHpzl8/sample-chapter-selling-your-gadget.html" title="Sample Chapter : Selling Your Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/sample-chapter-selling-your-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-8064553009668728086</id><published>2008-04-22T21:20:00.000-07:00</published><updated>2008-12-25T02:36:28.605-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="downloads" /><title type="text">Downloads for Creating Vista Gadgets</title><content type="html">Downloads for Creating Vista Gadgets&lt;ul&gt;&lt;li&gt; Chapter Downloads&lt;/li&gt;&lt;br /&gt;&lt;ul&gt; &lt;li&gt; &lt;strong&gt;Section I - The Foundation&lt;/strong&gt;&lt;/li&gt;  &lt;li&gt; Innovate with Windows Vista Sidebar Gadgets&lt;/li&gt;  &lt;li&gt; The Architecture&lt;/li&gt;  &lt;li&gt; An Approach to Design&lt;/li&gt;  &lt;li&gt; Selling Your Gadget (free &lt;a href="http://www.innovatewithgadgets.com/2008/04/sample-chapter-selling-your-gadget.html"&gt;chapter&lt;/a&gt; available for download)&lt;/li&gt;  &lt;li&gt; &lt;strong&gt;Section II - Developing a Gadget&lt;/strong&gt;&lt;/li&gt;  &lt;li&gt; Chapter 5: Creating a Simple Gadget with RSS/Atom Feed &lt;a href="http://innovatewithgadgets.com/Extra/Chapter5.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Chapter 6: Design Patterns and Standard Practices &lt;a href="http://innovatewithgadgets.com/Extra/Chapter6.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Chapter 7: The MyBlog Gadget Revisited &lt;a href="http://innovatewithgadgets.com/Extra/Chapter7.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Chapter 8: Debugging and Deploying a Gadget &lt;a href="http://innovatewithgadgets.com/Extra/Chapter8.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; &lt;strong&gt;Section III - Advanced Samples&lt;/strong&gt;&lt;/li&gt;  &lt;li&gt; Chapter 9: Site Statistics Gadget with AJAX—An Information Gadget &lt;a href="http://innovatewithgadgets.com/Extra/Chapter9.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Chapter 10: Most Recent Used .NET Projects—An Application Gadget &lt;a href="http://innovatewithgadgets.com/Extra/Chapter10.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Chapter 11: Radio Gadget and YouTube Video Gadget—Fun Gadgets &lt;a href="http://innovatewithgadgets.com/Extra/Chapter11.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Chapter 12: A Silverlight World Clock—Utility Gadget &lt;a href="http://innovatewithgadgets.com/Extra/Chapter12.zip"&gt;download&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Section IV - Appendices&lt;/strong&gt;&lt;/li&gt;  &lt;li&gt; Appendix A: Tips and Tricks &lt;a href="http://innovatewithgadgets.com/Extra/Chapter13.zip"&gt;download&lt;/a&gt;&lt;/li&gt;  &lt;li&gt; Appendix B: Extras &lt;a href="http://innovatewithgadgets.com/Extra/Chapter14.zip"&gt;download&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Download All Gadgets in the Book &lt;a href="http://innovatewithgadgets.com/Extra/All-Gadgets-in-the-Book.zip"&gt;download&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Download Everything in the book (Source code + Gadgets + Images + Templates) in a single zip file. &lt;a href="http://innovatewithgadgets.com/Extra/Creating-Vista-Gadget.zip"&gt;download&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-8064553009668728086?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=SckYQzYF"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uNgYGYhX"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=O0sTn2lZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=FmzCuBPI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=FmzCuBPI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=JigsFxbW"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=VIaxF9j5"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=VIaxF9j5" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uk7ceFW7"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=FQEdGX9M"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4ZfvYWKO"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=4ZfvYWKO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/sVCSUuOUoWA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/8064553009668728086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=8064553009668728086&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8064553009668728086" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/8064553009668728086" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/sVCSUuOUoWA/downloads.html" title="Downloads for Creating Vista Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/downloads.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-7037182136985588710</id><published>2008-04-22T21:01:00.000-07:00</published><updated>2008-09-05T15:11:05.328-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="author" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><title type="text">Author - Creating Vista Gadgets</title><content type="html">&lt;table width="600" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;b&gt;Contact &lt;/b&gt;&lt;br /&gt;Rajesh Lal&lt;br /&gt;&lt;br /&gt;9334 Hillery Drive Apt # 13102&lt;br /&gt;San Diego California 92126&lt;br /&gt;&lt;br /&gt;Home: +1 858 537-0904&lt;br /&gt;Cell: +1 858 335-3772&lt;br /&gt;Email: connectrajesh [@] hotmail&lt;br /&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;a target="_blank" href="http://innovatewithgadgets.com/images/author2.jpg"&gt;&lt;img border=0 src="http://innovatewithgadgets.com/images/author.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;b&gt;Rajesh Lal&lt;/b&gt; is an author, technology evangelist, and solutions engineer specializing in windows and web technologies. He has received numerous awards for his articles on Windows Vista and Sidebar Gadgets and is a frequent contributor to &lt;em&gt;Windows Vista Magazine &lt;/em&gt;and &lt;em&gt;Code Project &lt;/em&gt;website.&lt;br /&gt;&lt;br /&gt;With over a decade of experience in the IT industry, Rajesh enjoys taking an objective and pragmatic approach to developing applications using Microsoft technology. He has a master’s degree in computer science and holds both MCSD and MCAD titles.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-7037182136985588710?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=t1tUD6Hq"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AYtpPxiy"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=X1fzFtpB"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=PfujiGeL"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=PfujiGeL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AuhgwlNN"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=YrRZM3VI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=YrRZM3VI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=LdLZvz73"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=kBZ0mHT4"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Ot9lwWPM"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=Ot9lwWPM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/jdHdaw-YPwQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/7037182136985588710/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=7037182136985588710&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7037182136985588710" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7037182136985588710" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/jdHdaw-YPwQ/author.html" title="Author - Creating Vista Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/author.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-1768622304625560197</id><published>2008-04-22T04:53:00.000-07:00</published><updated>2009-02-08T19:11:31.956-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="selling" /><category scheme="http://www.blogger.com/atom/ns#" term="sample chapter" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Sidebar" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title type="text">Selling Your Gadget: Chapter 4 Creating Vista Gadgets using HTML, CSS &amp; JavaScript</title><content type="html">&lt;span id="ArticleContent"&gt;&lt;ul class="Download"&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://innovatewithgadgets.com/images/SellingVistaGadgets/Chapter-4-Creating-Vista-Gadgets.zip"&gt;Download Chapter-4-Creating-Vista-Gadgets - 192.78 KB&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.innovatewithgadgets.com/2008/04/sample-chapter-selling-your-gadget.html"&gt;Read .pdf version online&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;h2&gt;Chapter 4: Selling Your Gadget&lt;/h2&gt;&lt;p align="left"&gt;&lt;em&gt;“Make service your first priority, not success, and success will follow.” &lt;/em&gt;--Anonymous&lt;/p&gt;&lt;p align="left"&gt;IN THIS CHAPTER&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Gadget Revenue Model &lt;/li&gt;&lt;li&gt;How Gadgets Give You Business &lt;/li&gt;&lt;li&gt;Supporting Your Gadget &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Gadget Revenue Model&lt;/h2&gt;&lt;p&gt;The Sidebar gadget development platform is new, but it uses standard web technologies such as HTML, CSS, and JavaScript. These technologies have matured in the last few years and have a large community of developers. Sidebar gadgets have a much shorter development life cycle than regular software: quick development, easy deployment, and almost no maintenance. This makes the Sidebar gadget development platform very attractive for developers. It’s a platform rife with the opportunity to innovate. It’s a new approach for providing quick information and tools.&lt;/p&gt;&lt;p&gt;The revenue model of an Internet-based service company depends on one thing: traffic. And Sidebar gadgets have the potential to drive traffic. There will be more than 100 million Windows Vista users in next few years. If your gadget is popular among 1% of them, just imagine your gadget on 1 million users’ desktops. A reference to your&lt;br /&gt;website will also drive them directly to your online business portal. How you use this new way of interaction and this new set of customers coming to your website depends&lt;br /&gt;on you and your own individual service. &lt;/p&gt;&lt;p&gt;A Sidebar gadget is a mini application with the simplicity of a web application and the power of a Windows application. It is a small and lightweight tool. A Sidebar gadget is not meant to be created as a complete software application, whether sold as a downloadable product or a “try before buy” tool. The revenue model of a Sidebar gadget works best as a free service to drive traffic to your website or as a side product of a bigger application.&lt;/p&gt;&lt;p&gt;It is debatable right now whether you can make millions from a Sidebar gadget, but the potential is there and the possibilities are endless. Do the math yourself; assuming that your gadget is popular:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;There will be 100 million Windows Vista users in the next year (predicted by Microsoft). &lt;/li&gt;&lt;li&gt;A popular gadget used by 1% of those users means 1 million users. &lt;/li&gt;&lt;li&gt;If 5% of those 1 million users to become customers, you have 20,000 potential customers. &lt;/li&gt;&lt;li&gt;Potential revenue equals 20,000 multiplied by $ x (sales per user). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;Users&lt;/em&gt; will be using the gadget for free; &lt;em&gt;customers&lt;/em&gt; are those 5% among the gadget users who go ahead and buy a service from the gadget provider’s website. We discuss this in detail in the later sections.&lt;/p&gt;&lt;p align="left"&gt;The type of gadget you build depends on which revenue model you want to use to attract potential buyers:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Pull model&lt;/strong&gt;—A free utility that pulls customers to the website.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Push model&lt;/strong&gt;—A tool that enhances an existing application or service&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We discuss both these models in the following sections.&lt;/p&gt;&lt;h3&gt;Pull Model&lt;/h3&gt;&lt;p&gt;In the pull model, you create new ways to market your online business by distributing a useful Sidebar gadget freely on the Web. The gadget should have a subset of features you want to sell to buyers and it needs to have enough information to keep users interested and eventually convert at least some of them to buyers.&lt;/p&gt;&lt;p&gt;A brief description of how to use the article or code. The class names, the methods and properties, any tricks or tips. Gadgets utilizing the pull model should have a link to the website providing the product or service.&lt;/p&gt;&lt;p&gt;&lt;img height="162" alt="1.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/1.png" width="600" /&gt;&lt;/p&gt;&lt;h4&gt;Steps and Different Roles in the Model&lt;/h4&gt;&lt;p&gt;A pull model needs a series of steps along with the development of sidebar gadgets. Companies that already have an online service or product to sell can also utilize this model. In action, the model follows these general steps, which are also illustrated in Figure 4.1:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You have a website that provides the service(s) and/or product(s) you want to sell. &lt;/li&gt;&lt;li&gt;Choose a subset of the service that you can provide as a basic free service.&lt;/li&gt;&lt;li&gt;Create a Sidebar gadget that delivers this free service to users. &lt;/li&gt;&lt;li&gt;Build a user base.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Drive interested users (potential customers) to the website where more complete services are offered (for a price). &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img alt="04fig01.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/04fig01.png" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;FIGURE 4.1&lt;/strong&gt; &lt;em&gt;A pull model uses a gadget to drive traffic to the website. &lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;The gadget provides a basic service that is available for free to all in a public server. The basic service should be sufficient enough to create user interest in related products and services.&lt;/p&gt;&lt;h4&gt;Case Study: Rare Book Seller &lt;/h4&gt;&lt;p&gt;TrickOfMind, a dot-com company with few developers and resources, wants to sell rare puzzle books on the Internet. It has a catalog of books and a payment gateway set up, but what it lacks is users that may become customers.&lt;/p&gt;&lt;p&gt;You, as an analyst, have come up with a plan to leverage the Sidebar gadget platform by following these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a Trick of the Day Sidebar Gadget. This has a puzzle trick every day in the form of an RSS feed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Track your RSS feeds with online tracking tools such as feedburner.com. Appendix A, “Tips, and Tricks,” contains a section about tracking RSS feeds. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Deploy your Sidebar gadget on a publicly available server, such as &lt;a href="http://gallery.live.com/"&gt;http://gallery.live.com/&lt;/a&gt;, for users to find and download. Don’t forget to add keywords and tags to make it easily searchable. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Provide a consistent service to users, such as the trick question every day and also some kind of interaction through the Sidebar gadgets, such as a reply link or a link&lt;br /&gt;to the website. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Provide a link to the website for users interested in puzzle books. Make your website dynamic, informative, and interesting enough for users to return to on a regular&lt;br /&gt;basis. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;Websites that provide tricks, puzzles, or questions every day already exist, but a Sidebar gadget providing puzzles at your desktop would make yours more usable. A daily trick delivered to your desktop is a very attractive service for puzzle lovers. &lt;/p&gt;&lt;p&gt;Gadgets offer a new approach to the old model, “basic free service, paid pro service.” Almost all Internet companies try to use this model to generate traffic and revenue. The model is not new, but the approach utilizing sidebar gadgets is. &lt;/p&gt;&lt;p&gt;Every day, millions of users search for a gadget that provides them with a daily dose of their favorite hobby. There are websites providing these daily services, but most of them deliver them by mass emails or online forums. Nobody—at the time of this writing—delivers them to your desktop in the form of a state-of-the-art Sidebar gadget. Use the gadget platform and grab those customers before somebody else does.&lt;/p&gt;&lt;h3&gt;Push Model&lt;/h3&gt;&lt;p&gt;The push model relies on enhancing existing service and increasing customer satisfaction. &lt;/p&gt;&lt;p&gt;This model works where you already have an online business with a customer base. Use a Sidebar gadget to enhance your customer experience and provide that “extra” service exclusively to your customers. This will not only boost the satisfaction of the existing customers but also act as a great marketing tool for new customers. Use the Sidebar platform to create an add-on service that provides users with quick and ready-to-use information that benefits them. Any information that changes daily and is needed by your customer can be provided as an information gadget.&lt;/p&gt;&lt;p&gt;&lt;img alt="2.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/2.png" /&gt;&lt;/p&gt;&lt;h4&gt;Steps and Different Roles in the Model&lt;/h4&gt;&lt;p&gt;A push model starts with an existing web service, but an existing customer base is what distinguishes the push model from the pull model. There is lot more potential for marketing in a push model where you already have a customer. Your users are already coming to your website for frequently updated data or information. The following list, which is illustrated in Figure 4.2, describes the components of a push model:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Existing web application or service &lt;/li&gt;&lt;li&gt;Existing customer base &lt;/li&gt;&lt;li&gt;Ready-to-use information gadget based on an existing service &lt;/li&gt;&lt;li&gt;Gadget deployment in the web portal &lt;/li&gt;&lt;li&gt;Increased satisfaction for the existing customers, relative to the pull model &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img alt="04fig02.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/04fig02.png" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;FIGURE 4.2&lt;/strong&gt; &lt;em&gt;A push model uses the existing customer base.&lt;/em&gt;&lt;/p&gt;&lt;h4&gt;Case Study: Real Estate Web Service&lt;/h4&gt;&lt;p&gt;Imagine you have a website that displays home rental listings for property managers. Your website receives updates from multiple agents and private sources. Currently, property managers go to the website and filter the results based on their preferences, such as area, price range, and date. The information is dynamic in nature and changes every day. The property managers are always searching for new rental listings, but it’s easy for them to miss some of the listings.&lt;/p&gt;&lt;p&gt;As an analyst, you come up with a plan to leverage the push model for Sidebar gadgets.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Make global listings available in XML format as RSS feeds, with date and region as parameters. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a Recent Listing Sidebar gadget that uses settings specific to the rental listing to filter the feed data into a set of top 20 listings. Let the gadget update the feed&lt;br /&gt;every hour. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Deploy your Sidebar gadget in your web application exclusively for property managers. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;Here is the list of benefits:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use of the gadget ensures proper flow of important information. &lt;/li&gt;&lt;li&gt;The gadget makes listings available to property managers without requiring them to go to the website. With multiple instances of the gadget, the property manager can&lt;br /&gt;set up different search criteria. &lt;/li&gt;&lt;li&gt;This results in better flow of information, reducing search costs and potential missed listings. &lt;/li&gt;&lt;li&gt;Use of gadgets results in increased satisfaction among property managers. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The push model facilitates the property manager in viewing useful information quickly and efficiently. With the power of the Sidebar gadget, the property managers can manage more properties in less time, which increases both their revenue and customer satisfaction.&lt;/p&gt;&lt;p&gt;The push model can be used with many online businesses with an existing customer base. Think of this new way of providing features to your customers as something that offers you a significant competitive edge.&lt;/p&gt;&lt;h2&gt;How Gadgets Give You Business&lt;/h2&gt;&lt;p&gt;Typically, gadgets are not meant to be sold as individual products. Both push and pull revenue models utilize a Vista Sidebar gadget as a tool to do business more efficiently. The platform provides a unique way to interact with customers. The business model of a gadget is not to sell and make profit out of the gadget itself but rather out of the information, service, or product that the gadget supports.&lt;/p&gt;&lt;p&gt;The reason is simple. Sidebar gadgets are based on HTML, CSS, and JavaScript, so the gadget’s source code actually goes with the gadget when you deploy it. The .gadget extension is nothing but a .zip extension in disguise. Anybody with this information can open the source of the HTML file and make changes to it. In addition, thousands of gadgets are freely available online, delivering all kinds of services, which makes it difficult—if not impossible—to sell a gadget.&lt;/p&gt;&lt;p&gt;Four kinds of gadgets can generate revenue (see Figure 4.3):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ad Gadgets, which are gadgets used as advertising tools &lt;/li&gt;&lt;li&gt;Gadgets that are side products for enterprise-level applications &lt;/li&gt;&lt;li&gt;Utility Gadgets, which provide a watered-down version of a utility &lt;/li&gt;&lt;li&gt;Free Information Gadgets, which collect trends and usage statistics&lt;br /&gt;&lt;br /&gt;&lt;img alt="04fig03.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/04fig03.png" /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;FIGURE 4.3&lt;/strong&gt; &lt;em&gt;These four types of gadgets are all capable of generating revenue. &lt;/em&gt;&lt;/p&gt;&lt;h3&gt;The Ad Gadget&lt;/h3&gt;&lt;p&gt;The Ad Gadget is meant for advertisement of a service. It is based on the pull business model in which you create a free subset of a service, but compel the user to subscribe for an advanced set of features. An Ad Gadget becomes the starting point of an already existing service on the web and helps business in the following ways:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Free basic service in the Sidebar gadget acts as an advertisement for the actual service on the website. &lt;/li&gt;&lt;li&gt;The service on the website can be free, with a revenue model derived from advertisement banners on the website. &lt;/li&gt;&lt;li&gt;The service on the website can be a paid subscription for a Pro Account. Revenue here comes from subscribers. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img height="100" alt="3.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/3.png" width="599" /&gt;&lt;/p&gt;&lt;h4&gt;Case Study: Site Statistics, Ad Gadget with Pull Model&lt;/h4&gt;&lt;p&gt;A website statistics provider company such as sitemeter.com shows statistical information about visitors for a particular customer’s website. It gives free information for the last single month. The statistics provider company’s revenue model is based on advertisement banners on the website and paid professional accounts.&lt;/p&gt;&lt;p&gt;In addition to offering a free basic service (statistics for last month), what if the organization created a Sidebar gadget for advertising its free service? The information in the gadget would whet users’ appetites, and compel them to visit the website for more detailed statistics.&lt;/p&gt;&lt;p&gt;Here is how the pull model works for the Site Statistics Gadget (also see Figure 4.4):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Free basic statistics in the Sidebar gadget pull users to the website. The gadget has a link to the website, which provides detail statistics. Users visit more often through&lt;br /&gt;the gadget than they do by actually navigating to the website. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;The gadget provides a subset of the free basic service and still pushes users to go to the website for detail statistics. This helps drive in the revenue from banner advertisements on the website. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;The gadget helps in driving traffic to the website. It also acts as a tool for marketing the paid subscription for the Pro Account. The revenue model of a paid subscription&lt;br /&gt;is strengthened by the presence of the gadget. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img alt="04fig04.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/04fig04.png" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;FIGURE 4.4&lt;/strong&gt; &lt;em&gt;Ad Gadget for Site Statistics provides a subset of free basic service on the Vista Sidebar.&lt;/em&gt;&lt;/p&gt;&lt;h4&gt;Benefits of Using an Ad Gadget&lt;/h4&gt;&lt;p&gt;An Ad Gadget not only provides an advertisement of the web service but also acts as a&lt;br /&gt;marketing tool that is freely available in online communities. Following lists the benefits&lt;br /&gt;of an Ad Gadget:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Free advertisement of the service through the gadget. &lt;/li&gt;&lt;li&gt;Wide availability (The gadget can be made available in free online communities&lt;br /&gt;such as &lt;a href="http://gallery.live.com/"&gt;http://gallery.live.com/&lt;/a&gt;, which gives the service exposure to millions of users.) &lt;/li&gt;&lt;li&gt;Increase in number of users for your service. &lt;/li&gt;&lt;li&gt;More satisfaction among existing paid account holders.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Gadget as a Side Product&lt;/h3&gt;A gadget as an add-on to an enterprise-level application is also a great selling tool. This kind of gadget follows the push model and is targeted toward existing users.&lt;br /&gt;&lt;br /&gt;Any enterprise-level application, such as a Customer Relationship Management (CRM) or Enterprise Resource Planning (ERP) application, deals with a lot of frequently updated data. Users sometimes find it difficult to filter down data relevant to them for a particular scenario. A sidebar gadget providing the ready-to-use data can be very useful in this kind of scenario (see Figure 4.5).&lt;br /&gt;&lt;br /&gt;&lt;img alt="04fig05.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/04fig05.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FIGURE 4.5&lt;/strong&gt; &lt;em&gt;A Sidebar gadget used as a side product increases both the usability of the main application as well as customer satisfaction.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;A gadget as a side product becomes a useful tool for existing customers. To enable a gadget for an enterprise-level application, you have to make sure of the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First of all, expose required data to be displayed in the gadget in an open XML format (recommended RSS feed format). &lt;/li&gt;&lt;li&gt;Enable a way to authenticate users to display data filtered by the individual user. &lt;/li&gt;&lt;li&gt;Use existing web technologies such as Ajax and SOAP to access secure data from an XML web service. &lt;/li&gt;&lt;/ul&gt;This kind of gadget works as a complementary product to the actual application and is primarily used for displaying user-relevant information, as well as frequently updated data.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Case Study: Microsoft CRM Gadget, Gadget as a Side Product&lt;/h4&gt;Microsoft Dynamics Customer Relationship Management is a powerful enterprise-level pplication. Its capability to integrate with Microsoft Office applications, Microsoft Outlook, and Blackberry mobile devices makes it a state-of-the-art application.&lt;br /&gt;&lt;br /&gt;One important feature of the CRM is that it acts as a central repository for all customer related data and accounts related to a particular member. Normally a member has to log in to Microsoft Dynamics and access information filtered by different criteria, using a user interface provided by the application, an intranet application, or a website. Creating a gadget that displays the list of accounts and contacts associated with a current member is of immense help. The user no Longer has to start Microsoft Dynamics and go to the accounts page to get this information. This is possible because the enterprise application enables gadget development by supporting the following (as illustrated in Figure 4.6):&lt;br /&gt;&lt;br /&gt;Microsoft CRM is exposes data through web APIs.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Authentication for the member is possible from the gadget. &lt;/li&gt;&lt;li&gt;The enterprise application provides a web service for accessing data.&lt;br /&gt;&lt;strong&gt;&lt;img alt="04fig06.png" src="http://innovatewithgadgets.com/images/SellingVistaGadgets/04fig06.png" /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;FIGURE 4.6&lt;/strong&gt; &lt;em&gt;An enterprise-level application needs to expose data through web APIs and should support the technologies for gadget development.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Benefits of Using Gadgets as Side Products&lt;br /&gt;A gadget used as a side product compliments the main application. The case study showed how a member of an enterprise-level application can benefit from the use of the gadget. A gadget as a side product increases the usability of the main product by doing the following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Providing ready-to-use information. &lt;/li&gt;&lt;li&gt;Providing filtered and relevant data. &lt;/li&gt;&lt;li&gt;Displaying data related to the logged in member. &lt;/li&gt;&lt;li&gt;If you use multiple instance of the gadget, enabling the member to search information with different filters. &lt;/li&gt;&lt;/ul&gt;Utility Gadget&lt;br /&gt;&lt;br /&gt;A utility gadget normally is a watered-down version of a Windows application, giving access to quick tools and features provided by the operating system. Some utility gadgets provide information on CPU usage or available drive space. This kind of gadget can be used to create revenue within the pull model.&lt;br /&gt;&lt;br /&gt;A utility gadget can be both a basic version of the main application or a side product complementing the application. For example, a basic utility in the form of a gadget can be distributed freely over the Internet, and a more feature-rich application with advanced features can be purchased from your website. If the gadget is popular, it will drive traffic to your website and eventually help sell the application.&lt;br /&gt;&lt;br /&gt;In the actual implementation, a utility gadget typically is a watered-down version of the full application. This functionality can be exposed as an active component to be called and used by the gadget. In this scenario, the full-featured application exists on the provider’s website and the Sidebar gadget platform is used in the following ways:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Sidebar gadget with a basic or watered-down version of the application &lt;/li&gt;&lt;li&gt;A gadget that acts as a side product to the application &lt;/li&gt;&lt;/ul&gt;Trial software is quite standard for companies selling products and doing business online. The addition of the sidebar gadget can be a major advertisement for the utility and can be leveraged as a trial version of the software.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Case Study: Backup Software Utility Gadget&lt;/h4&gt;DBKP, a fictitious backup software company, provides robust, reliable, and complete backup software. The company provides a “trial version” of the software implemented as a gadget, providing some basic free services. The company creates a gadget that provides quick access to the application’s popular features, using APIs exposed in a dynamic link library that the application also uses.&lt;br /&gt;&lt;br /&gt;Benefits of the Utility Gadget&lt;br /&gt;&lt;br /&gt;The utility gadget can be both a free service for advertisement of the company as well as a side product for the actual application. It provides the following benefits to the company:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The right set of features in a Sidebar gadget can make it instantly popular, resulting in lot of traffic to the website. &lt;/li&gt;&lt;li&gt;The gadget provides quick access to the features of the backup application and makes the application more useful. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;A utility gadget’s feature set, which is meant for driving users to buy the actual product, has to be carefully chosen so that it drives potential users to purchase the product and become customers. &lt;/p&gt;&lt;h3&gt;Free Information Gadget&lt;/h3&gt;A free information gadget, as the name suggests, provides regularly updated information as a free service. In turn it collects usage statistics from the gadget users. This can be thought of as similar to the process of mining web logs, where web logs are analyzed for page usage statistics. Information such as page views, durations on a page, and number of visits are used to make decisions. The only difference is now you are making the data available through the gadget and tracking the RSS feed instead of web pages.&lt;br /&gt;&lt;br /&gt;The free information gadget’s revenue model is based on the current trend in advertising, which values user choice. That is to say, this revenue model depends greatly on the statistics related to the number of users who views a particular piece of information. Data related to information that was shared a greater number of times or commented or viewed are used for advertisement purposes.&lt;br /&gt;&lt;br /&gt;For example, a gadget providing video feed can use the statistical information on which video was shared or played the most. The demand for this kind of information becomes the basis of the free information gadget. These gadgets also promote a parent website and help generate revenue from banner advertisements.&lt;br /&gt;&lt;br /&gt;You’ll find more information on collecting usage statistics from the gadget in Appendix A. A free information gadget can even use live data streaming for things such as broadcasting or podcasting. It can also have built-in advertisements, just like a real radio or video channel.&lt;br /&gt;&lt;br /&gt;These gadgets take data in the form of an RSS feed from the provider website and display the data, formatted, to the user. The data in the information feed can contain links to pictures, audio, video, or just plain text or HTML. The gadget provides the title and a short description of the information. The user can click on either one to read the information or play the audio or video related to it.&lt;br /&gt;&lt;br /&gt;This revenue model is based on the usage statistics of the information and also the ad banners in the website. The whole advertisement network is switching toward this trend, which is based on this kind of usage information.&lt;br /&gt;&lt;br /&gt;To create a free information gadget, follow these steps:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make your data available in the form of an RSS feed. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Track the usage of individual items in the feed. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Provide a link from the gadget to the actual website. &lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Case Study: NYBC News Gadget, a Free Information Gadget&lt;/h4&gt;NYBC, a New York broadcast company, provides access to the news from its website but consumers don’t seem to be using the service. It provides a lot of options for users to add their opinions, ask questions, interact with the reporters, and rate and share news with others.&lt;br /&gt;&lt;br /&gt;The company provides top local news in the form of an RSS feed that is freely available in the website. The data available is in a variety of formats: audio, video, and HTML with pictures. NYBC also provides streaming servers for live commentaries. The customers are local to New York and it has a lot of presence in the newspaper market. What it’s aiming for is an online presence.&lt;br /&gt;&lt;br /&gt;The company leverages a Sidebar gadget platform to solve this problem. As an analyst in the company you come up with a News Gadget for New Yorkers. The gadget provides the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Frequently updated news in the form of an RSS feed &lt;/li&gt;&lt;li&gt;A radio feature built into the gadget for live streaming &lt;/li&gt;&lt;li&gt;Links to the news website &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Benefits of the Gadget&lt;/strong&gt;&lt;/p&gt;Having a gadget on your desktop, which gives you regularly updated news in the form of text, audio, and video, is far more attractive than visiting a website to access information. The gadget platform can provide the following benefits in the current scenario:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Subscribers love the easy-to-use gadget for their favorite newspaper. &lt;/li&gt;&lt;li&gt;Online activities will increase because each news item will have a corresponding link to the website. &lt;/li&gt;&lt;li&gt;The RSS feed can be tracked easily for usage information. &lt;/li&gt;&lt;li&gt;The streaming server can also include audio and video advertisements. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Supporting Your Gadget&lt;/h2&gt;&lt;p&gt;Supporting a gadget is similar to supporting any product, but in many ways it is relatively easier. Gadget support is crucial because if you are developing a gadget for revenue, you have to make sure that it works properly. &lt;/p&gt;&lt;p&gt;Because no help file comes with the gadget, if you want to include some kind of tutorial, it has to be done in the support page. Remember that gadgets are all about interactivity. A forum dedicated to the gadget is very helpful in acquiring feedback from users in the form of suggestions and new feature requests. As with any software product, you need to provide an upgrade path for new features and services. &lt;/p&gt;&lt;p&gt;Support features that can help maintain a gadget include the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A link to the support page, which describes the features. &lt;/li&gt;&lt;li&gt;An email link to contact the developer or the company that provides the gadget. &lt;/li&gt;&lt;li&gt;An online forum that provides a mechanism for users to communicate with each other and the developer/company for issues. A link to a forum in the gadget is helpful. &lt;/li&gt;&lt;li&gt;A page dedicated for suggestions, new features, and so on. &lt;/li&gt;&lt;li&gt;Auto-update functionality (Detailed further in Appendix A -Tips and Tricks). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Links should be provided in the Settings page to enable the user to visit the corresponding web page.&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;TABLE 4.1 &lt;/strong&gt;&lt;em&gt;Differences Between an Application and a Sidebar Gadget &lt;/em&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td &gt;&lt;strong&gt;Application&lt;/strong&gt;&lt;/td&gt;&lt;td &gt;&lt;strong&gt;A Sidebar Gadget&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td &gt;Normally has a help file associated with it.&lt;/td&gt;&lt;td &gt;No help file&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td &gt;Has about a page that contains company or developer information for contact.&lt;/td&gt;&lt;td &gt;A gadget’s settings page can be used to add an email address or website information&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td &gt;Products normally have dedicated forums for support and a huge user community.&lt;/td&gt;&lt;td &gt;A support/suggestions page is desirable. A lightweight forum for a discussion board is also helpful.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td &gt;Generally Comes with auto-update functionality.&lt;/td&gt;&lt;td &gt;Needs to be upgradeable and needs user’s interaction for upgrade&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td &gt;Products normally have dedicated forums for support.&lt;/td&gt;&lt;td &gt;Contact information in the form of email address.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Thanks&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I hope you find this useful. I would be delighted to hear your comments, take care - Rajesh Lal. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-1768622304625560197?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=rMEdv7RT"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=mSbcK8q5"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=tHnF3Q6q"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=6Fa9wNzk"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=6Fa9wNzk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Tiq9tDuI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Sf8Rx4Cz"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=Sf8Rx4Cz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=bM3EBeD8"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=jPPJWDTI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=H063tm62"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=H063tm62" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/QBKALcJCkyI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/1768622304625560197/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=1768622304625560197&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/1768622304625560197" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/1768622304625560197" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/QBKALcJCkyI/selling-your-gadget-chapter-4-creating.html" title="Selling Your Gadget: Chapter 4 Creating Vista Gadgets using HTML, CSS &amp; JavaScript" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/selling-your-gadget-chapter-4-creating.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-3258361951531205444</id><published>2008-04-21T20:55:00.000-07:00</published><updated>2008-05-06T22:02:08.024-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="Errata" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><title type="text">Errata !</title><content type="html">I would like to tell you that this book contains no errors, but of course I'd be lying. I've done everything possible to verify the accuracy of every sentence and every code samples, but errors inevitably surface.&lt;br /&gt;&lt;br /&gt;Here is a list of errors, that have been found in the book so far, since going to print. If you find an error that isn't listed here, let me know. or add it as a comment, for other fellow readers.&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Error, will show up here, if it comes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-3258361951531205444?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=NMm9FjQB"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=v7G1ZDDj"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=nPw2s8PR"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=0MVGMUh9"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=0MVGMUh9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=vUeB1fxz"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=fulh0BjD"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=fulh0BjD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=NoioD8Bw"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AFbqr4S7"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=C0uMMR7V"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=C0uMMR7V" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/DALnAOPlLLU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/3258361951531205444/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=3258361951531205444&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3258361951531205444" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3258361951531205444" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/DALnAOPlLLU/errata-for-vista-gadget-book.html" title="Errata !" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/errata-for-vista-gadget-book.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-7422520740168322607</id><published>2008-04-20T20:48:00.000-07:00</published><updated>2008-05-28T16:46:52.635-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="create" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><title type="text">Get The Gadget Book !</title><content type="html">Buy the &lt;em&gt;Creating Vista Gadgets&lt;/em&gt; Book from Amazon.com&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Creating-Vista-Gadgets-JavaScript-Silverlight/dp/0672329689/vistagadget0a-20"&gt;Click here&lt;/a&gt; or select from the following.&lt;br /&gt;&lt;ul class="amazon"&gt;&lt;li&gt;&lt;img  border = 0 src="http://innovatewithgadgets.com/images/flags/usa.png" alt="USA" /&gt;&amp;nbsp;&lt;a href="http://www.amazon.com/Creating-Vista-Gadgets-JavaScript-Silverlight/dp/0672329689/vistagadget0a-20"&gt;Amazon.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;img  border = 0 src="http://innovatewithgadgets.com/images/flags/usa.png" alt="USA" /&gt;&amp;nbsp;&lt;a href="http://search.barnesandnoble.com/Creating-Vista-Gadgets/Rajesh-Lal/e/9780672329685/"&gt;Barnes &amp; Noble&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;img  border = 0 src="http://innovatewithgadgets.com/images/flags/uk.png" alt="UK" /&gt;&amp;nbsp;&lt;a href="http://www.amazon.co.uk/Creating-Vista-Gadgets-JavaScript-Silverlight/dp/0672329689/vistagadget0a-20/"&gt;Amazon.co.uk&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;img border = 0 src="http://innovatewithgadgets.com/images/flags/de.png" lt="Deutschland" /&gt;&amp;nbsp;&lt;a href="http://www.amazon.de/Creating-Vista-Gadgets-JavaScript-Silverlight/dp/0672329689/vistagadget0a-20/"&gt;Amazon.de&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;img  border = 0 src="http://innovatewithgadgets.com/images/flags/fr.png" alt="France" /&gt;&amp;nbsp;&lt;a href="http://www.amazon.fr/Create-Microsoft-Windows-Sidebar-Gadgets/dp/0672329689/vistagadget0a-20/"&gt;Amazon.fr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;img  border = 0 src="http://innovatewithgadgets.com/images/flags/jp.png" alt="Japan" /&gt;&amp;nbsp;&lt;a href="http://www.amazon.jp/Create-Microsoft-Windows-Sidebar-Gadgets/dp/0672329689/vistagadget0a-20/"&gt;Amazon.jp&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Below is the detail from Amazon.com&lt;br /&gt;&lt;iframe frameborder="0" src ="http://astore.amazon.com/vistagadget0a-20/detail/0672329689/105-9401971-3542049" width="820" height = "2000"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-7422520740168322607?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=nXuaIgQD"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=xsNWw5TS"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=DqNHSczN"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=7oz2BIyf"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=7oz2BIyf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=nygi6pLH"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uP7qsGHJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=uP7qsGHJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Ea0OvakT"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=5QBv1a0e"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=C7NM1mQ7"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=C7NM1mQ7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/yqJBTf48Ll4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/7422520740168322607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=7422520740168322607&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7422520740168322607" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7422520740168322607" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/yqJBTf48Ll4/get-gadget-book.html" title="Get The Gadget Book !" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/get-gadget-book.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-6942720345253936726</id><published>2008-04-20T11:09:00.000-07:00</published><updated>2008-05-19T04:47:26.042-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadget" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title type="text">Spread the Word: Get the Gadget Book</title><content type="html">&lt;table width="75%" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a title="Creating Vista Gadgets: Using HTML, CSS and JavaScript with Examples in RSS, Ajax, ActiveX (COM) and Silverlight (Click for details)" href="http://www.innovatewithgadgets.com/2008/04/creating-vista-gadget-coming-may-2008.html"&gt;&lt;br /&gt;&lt;img src="http://www.innovatewithgadgets.com/images/vistabook.jpg" width="150" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Creating Vista Gadgets&lt;br /&gt;using HTML, CSS, and JavaScript&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;h5&gt;Copy the Code below and put it in your webpage to spread the word&lt;/h5&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;textarea rows="7" cols="80"&gt; &amp;lt;A title="Creating Vista Gadgets using HTML, CSS, and JavaScript with Examples in RSS, Ajax, ActiveX (COM) and Silverlight" href="http://www.innovatewithgadgets.com/2008/04/creating-vista-gadget-coming-may-2008.html"&amp;gt;&amp;lt;img src="http://www.innovatewithgadgets.com/images/vistabook.jpg" width="150" border=0/&amp;gt;&amp;lt;br/&amp;gt;Creating Vista Gadgets &amp;lt;br/&amp;gt;using HTML, CSS, &amp;amp; JavaScript&amp;lt;/A&amp;gt;&lt;/textarea&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-6942720345253936726?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=srSopEeC"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=AVLwfA6o"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=xIvFtgRq"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=XIIAN4od"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=XIIAN4od" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4zHza6Ne"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=lB8hn3Mp"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=lB8hn3Mp" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=G7cLlyYi"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=o3NUNyxY"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=cXl4pl8u"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=cXl4pl8u" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/UkWDmrCuZdE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/6942720345253936726/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=6942720345253936726&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/6942720345253936726" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/6942720345253936726" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/UkWDmrCuZdE/spread-word-get-gadget-book.html" title="Spread the Word: Get the Gadget Book" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/04/spread-word-get-gadget-book.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-7523492168791542722</id><published>2008-02-13T15:22:00.001-08:00</published><updated>2008-05-12T23:48:14.146-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="screencast" /><title type="text">Using the Windows Sidebar and Gadgets</title><content type="html">&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xbsNTB0SRlA&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xbsNTB0SRlA&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-7523492168791542722?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=k4EFclqm"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=MbIfZBrZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=OWWNx06r"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=5U07VJjA"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=5U07VJjA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=dNTHc2Uk"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=iVzSxBQ0"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=iVzSxBQ0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=sfC4vgcM"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uWohkFdg"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=pIk7hLTb"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=pIk7hLTb" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/U3DNQIe2_PY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/7523492168791542722/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=7523492168791542722&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7523492168791542722" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/7523492168791542722" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/U3DNQIe2_PY/using-windows-sidebar-and-gadgets.html" title="Using the Windows Sidebar and Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2008/02/using-windows-sidebar-and-gadgets.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-2786381406870346951</id><published>2007-07-25T17:39:00.000-07:00</published><updated>2007-07-26T11:35:05.078-07:00</updated><title type="text">WidgetBox: A Windows Vista Sidebar Gadget</title><content type="html">&lt;br/&gt;&lt;br /&gt;&lt;img alt="" src="http://widgets-gadgets.com/images/WidgetBox-Logo.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;A Vista Sidebar gadget which can add any web widget which is available online.&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;br /&gt;Information, Fun, Application, Utility, Audio, Video - all at your finger-tips... &lt;br /&gt;Select millions of web widgets, games and videos – designed to access live on web pages, blogs – Put in your Vista Sidebar.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;Coming Soon&lt;/span&gt;... What do you think about this idea ? Please add your comments &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-2786381406870346951?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=6MZDaVyu"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=yHliuSEy"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=WG6udtdH"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=cxx3JkVk"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=cxx3JkVk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=r5gb5MM7"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=wGn5MBxY"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=wGn5MBxY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=1cMikbu8"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=A7F4Dod1"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=NdzsRsk5"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=NdzsRsk5" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/LJ19acfu3Hg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/2786381406870346951/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=2786381406870346951&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/2786381406870346951" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/2786381406870346951" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/LJ19acfu3Hg/widgetbox-windows-vista-sidebar-gadget.html" title="WidgetBox: A Windows Vista Sidebar Gadget" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2007/07/widgetbox-windows-vista-sidebar-gadget.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-3009916757502926687</id><published>2007-04-25T19:22:00.000-07:00</published><updated>2008-05-12T23:46:51.148-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="screencast" /><title type="text">Vista Sidebar Demo</title><content type="html">Vista Sidebar Demo (2:27)&lt;br /&gt;&lt;br /&gt;Demonstration of the basic functionality of the Windows Vista Sidebar &lt;a class="tLink" style="DISPLAY: none; VISIBILITY: hidden" href="http://soapbox.msn.com/#"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://images.video.msn.com/flash/soapbox1_1.swf" quality="high" width="432" height="364" base="http://images.video.msn.com" type="application/x-shockwave-flash" allowFullScreen="true" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="c=v&amp;v=4e22ed23-74c7-414e-8361-a4c2c2a4d10d&amp;ifs=true&amp;fr=msnvideo&amp;mkt=en-US&amp;brand="&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://video.msn.com/video.aspx?vid=4e22ed23-74c7-414e-8361-a4c2c2a4d10d" target="_new" title="Vista Sidebar Demo"&gt;Video: Vista Sidebar Demo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-3009916757502926687?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=d4g57XF8"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=BAg6dCEe"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=sMwNRtfI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=XA6huCuq"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=XA6huCuq" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=ocgf2qJo"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=pFa31sPP"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=pFa31sPP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4ERGdpfK"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Zg0IqHzI"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=VIBQNai0"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=VIBQNai0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/HCuVaBIlBWw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/3009916757502926687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=3009916757502926687&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3009916757502926687" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3009916757502926687" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/HCuVaBIlBWw/vista-sidebar-demo.html" title="Vista Sidebar Demo" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2007/04/vista-sidebar-demo.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-3935581411170159123</id><published>2007-03-02T02:13:00.000-08:00</published><updated>2008-01-05T14:30:52.944-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="create" /><category scheme="http://www.blogger.com/atom/ns#" term="vista" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><title type="text">Creating a Video Gadget (Soapbox Video Gadget)</title><content type="html">&lt;p&gt;Guide to create a Sidebar gadget for a video feed (soapbox @ msn.com) &lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://csharptricks.com/Projects/Gadgets/Soapbox.gadget"&gt;Install the latest Gadget to your sidebar- 193 Kb&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="77" alt="Screenshot - top.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/top.jpg" width="358" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;When I first started sidebar gadget development&lt;sup&gt;1&lt;/sup&gt;, I found gadgets cool and innovative. But the more I learned about them, the more I realized their usefulness. Gadget development provides a whole new platform, becoming more productive in ways unimagined. On one hand, it's a mini web application which can host a web page, call a web service, and use AJAX to read an RSS feed. On the other, it can interact with the Windows API using the power of .NET languages. Wow! That's the best of both the worlds, wouldn't you agree?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The most important factor is the unique way in which a gadget provides the interaction between the web, Windows and users. In this example I try to utilize this, to give user the "Power of Videos" in the sidebar. Check the architecture below. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;To hold your interest, here is how it looks in the sidebar. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="268" alt="Screenshot - 320x240withPic.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/320x240withPic.jpg" width="463" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;h2&gt;About the gadget: The power of videos&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Before I start, I must warn you: this gadget is quite addictive. Indulge yourself only during your spare time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There are a number of RSS Feeds available from &lt;a href="http://soapbox.msn.com/"&gt;the Soapbox on MSN Video Beta page&lt;/a&gt; which give you the contents of the videos uploaded by the users. Some of the more interesting ones are: "Most Popular Videos", "Most Rated videos", and "Most Recent Videos". There is even a feed for "Videos By Tag" available, which we will use for searching videos. The idea behind this is to use those regularly updated feeds to show the user the video of his choice on the sidebar. If you want to know the basic barebones required to create a gadget, please refer to my first article &lt;a href="http://www.windowsvistamagazine.com/US/05582469249333925566/creating-a-vista-sidebar-gadget.html"&gt;Daily Dilbert &lt;/a&gt;. This article is actually an extension of that first article; I try to explain only those extra features which can be used to refine a gadget further:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Create a gadget which can play a video in the flyout&lt;br /&gt;&lt;li&gt;How to take care of paging when you read an XML file&lt;br /&gt;&lt;li&gt;Settings and Search Videos&lt;br /&gt;&lt;li&gt;Add video to "Favorite List"&lt;br /&gt;&lt;li&gt;Create, read, update, &amp;amp; delete local XML file from Sidebar Gadget (new)&lt;br /&gt;&lt;li&gt;Some tips in general &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;The architecture overview &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="833" alt="Screenshot - Architecturenew.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/Architecturenew.jpg" width="495" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Let's Begin&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Create a video Gadget&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;A standard XML file with the name &lt;em&gt;Gadget.xml&lt;/em&gt; is required as shown below:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="395" alt="Screenshot - settingsxml.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/settingsxml.jpg" width="491" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;More information about this is available &lt;a title="Gadget.xml information" href="http://www.microsoft.com/technet/scriptcenter/topics/vista/gadgets-pt1.mspx" target="_blank"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The name of the gadget is "Soapbox @ MSN" (as seen above). The namespace is basically to group more than one gadget (reserved for future use), which you can write in "mynamespace". MinPlatformVersion. Required. The expected value is "1.0."&lt;/p&gt;&lt;br /&gt;&lt;p&gt;"Permission" controls the amount of permission in the gadget. "Full" permission is required if you want to access a webpage through the gadget. With these two files you can deploy and test your gadget in the sidebar. The &amp;lt;permission&amp;gt; tags and &amp;lt;type&amp;gt; tags will be more flexible in future versions of gadget development.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;&lt;a name="gadgetFiles"&gt;Our Video Gadget will have these files&lt;/a&gt; &lt;/h3&gt;&lt;br /&gt;&lt;strong&gt;Gadget.xml&lt;/strong&gt; An XML file defining the gadget properties, including name, icon and description&lt;br /&gt;&lt;strong&gt;main.html&lt;/strong&gt; the Main HTML page&lt;br /&gt;&lt;strong&gt;main.js&lt;/strong&gt; The core code/script for the gadget&lt;br /&gt;&lt;strong&gt;Settings.html&lt;/strong&gt; Exposes gadget settings for the user to change&lt;br /&gt;&lt;strong&gt;Settings.js&lt;/strong&gt; Script for the Settings file&lt;br /&gt;&lt;strong&gt;soapboxFlyout.html&lt;/strong&gt; The html file which will be used in Flyout window&lt;br /&gt;&lt;strong&gt;Icon, images&lt;/strong&gt; etc For use in the gadget selection box&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You can get more details on these &lt;a title="MicrosoftGadgets.com" href="http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx" target="_blank"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Get the RSS Feed&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;The &lt;em&gt;Main.html&lt;/em&gt; file will have five elements ("DIV") to get the feed data: cell0, cell1 etc. We can show the videos as a list of five videos (below) or single video.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="201" alt="Screenshot - main.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/main.jpg" width="131" /&gt; &lt;img height="202" alt="Screenshot - listview.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/listview.jpg" width="130" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;h3&gt;The Feed for the Gadget&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;We have the URL which we call using the &lt;code&gt;MSXML2.XMLHTTP&lt;/code&gt; object. This is the core of the AJAX until the feed gets loaded. Here is the magical JavaScript for this:&lt;/p&gt;&lt;pre lang="jscript"&gt;function getRSS()&lt;br /&gt;{&lt;br /&gt;    document.getElementById("mylogo").Title =&lt;br /&gt;        System.Gadget.Settings.&lt;br /&gt;        read("feedText");&lt;br /&gt;&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        error.style.visibility = "hidden";&lt;br /&gt;&lt;br /&gt;        loading.style.visibility = "visible";&lt;br /&gt;        rssObj = new ActiveXObject("Msxml2.XMLHTTP");&lt;br /&gt;        rssObj.open("GET",&lt;br /&gt;            System.Gadget.Settings.read("videoFeed") , true);&lt;br /&gt;        rssObj.onreadystatechange = function() {&lt;br /&gt;            if (rssObj.readyState = == 4)&lt;br /&gt;            { if (rssObj.status == 200)&lt;br /&gt;            { loading.innerText = "";&lt;br /&gt;            error.innerText = "";&lt;br /&gt;            error.style.visibility= "hidden";&lt;br /&gt;            loading.style.visibility = "hidden";&lt;br /&gt;            rssXML = rssObj.responseXML;&lt;br /&gt;            page = 0;&lt;br /&gt;            parseRSS();&lt;br /&gt;            if&lt;br /&gt;                (chkConn) { setInterval(getRSS, 60 * 60000);&lt;br /&gt;            loading.style.visibility = "hidden";&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                var chkConn;&lt;br /&gt;                loading.style.visibility = "visible";&lt;br /&gt;                chkConn = setInterval(getRSS, 30 * 60000);&lt;br /&gt;            }&lt;br /&gt;            } else {&lt;br /&gt;                loading.style.visibility = "visible";&lt;br /&gt;            }&lt;br /&gt;        } &lt;br /&gt;        rssObj.send(null);&lt;br /&gt;    }&lt;br /&gt;    catch(err)&lt;br /&gt;    {&lt;br /&gt;        loading.style.visibility = "hidden";&lt;br /&gt;        error.innerText = "   Service not available";&lt;br /&gt;        error.style.visibility = "visible";&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Service Not available&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;As you can see, if there is an error while connecting the feed or an error in the internet connection, we want to show the "Service not available" screen.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="205" alt="Screenshot - serviceNot.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/serviceNot.jpg" width="133" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Parse the XML File&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Here is the portion of the RSS Feed for a single item in the XML file and the corresponding "partial" ParseXML file to give you an idea of what we are doing with the feed.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="578" alt="Screenshot - feeddetail.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/feeddetail.jpg" width="600" /&gt; &lt;/p&gt;&lt;pre lang="jscript"&gt;function parseRSS(page)&lt;br /&gt;{&lt;br /&gt;    rssItems = rssXML.getElementsByTagName("item");&lt;br /&gt;    rssTitle = null; rssAuthors = null; rssDescription = null;&lt;br /&gt;    rssLink = null;&lt;br /&gt;         &lt;br /&gt;    rssTitle = escape(rssItems[i].firstChild.text);&lt;br /&gt;    rssLink =rssItems[i].getElementsByTagName("guid")[0]&lt;br /&gt;    .firstChild.nodeValue;&lt;br /&gt;    rssViews = rssItems[i].getElementsByTagName("vidAt:playCount")[0]&lt;br /&gt;    .firstChild.nodeValue;&lt;br /&gt;    rssDateUpdate = rssItems[i].getElementsByTagName("vidAt:pubDate")[0]&lt;br /&gt;    .firstChild.nodeValue;&lt;br /&gt;    rssRatingValue = rssItems[i].getElementsByTagName("vidAt:rating")[0]&lt;br /&gt;    .firstChild.nodeValue;&lt;br /&gt;    rssDuration = rssItems[i].getElementsByTagName("vidAt:duration")[0]&lt;br /&gt;    .firstChild.nodeValue;&lt;br /&gt;    rssVDescription= escape(rssItems[i].getElementsByTagName&lt;br /&gt;    ("vidAt:description")[0].firstChild.nodeValue);&lt;br /&gt;    rssDescription=rssItems[i].getElementsByTagName("description")[0]&lt;br /&gt;    .firstChild&lt;br /&gt;    .nodeValue;&lt;br /&gt;    myTitle = unescape(rssTitle)&lt;br /&gt;    myTitle1 = myTitle.substr(0,16);&lt;br /&gt;    myRatingTip = "Rating: " + rssRatingValueFormated2 + ",&lt;br /&gt;        View: "&lt;br /&gt;    + rssViews + ", Duration: " + rssDurationFormated ;&lt;br /&gt; &lt;br /&gt;    document.getElementById("cell" + (cell)).innerHTML =&lt;br /&gt;        "onclick="&lt;strong&gt;&lt;br /&gt;    showFlyout&lt;/strong&gt;(\'' + rssTitle + '\',\'' + rssVDescription + '\',&lt;br /&gt;    \'' + rssLink + '\',\'' + rssImage + '\',\'' + rssRImage + '\',\''&lt;br /&gt;    + rssViews + '\',&lt;br /&gt;    \'' + rssDateUpdate + '\',\'' + rssDurationFormated + '\',&lt;br /&gt;    \'' + rssRatingValueFormated2 + '\');" &amp;gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Since we have the feed required, we can create a flyout from the video. This is the &lt;code&gt;showFlyout&lt;/code&gt; function, which is created dynamically and is used to pass all the parameters from the item to the flyout page.&lt;/p&gt;&lt;pre lang="jscript"&gt;function showFlyout(sTitle,sDescription,sGuid, sImage, sRImage,sView,&lt;br /&gt;    sDateUpdate,sDuration,sRatingFormated)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    if (System.Gadget.Settings.read("sTitle")==sTitle)&lt;br /&gt;    {&lt;br /&gt;    System.Gadget.Settings.write("sTitle", "myTitle");&lt;br /&gt;    hideFlyout();&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        System.Gadget.Settings.write("sTitle", sTitle);&lt;br /&gt;        System.Gadget.Settings.write("sView", sView);&lt;br /&gt;        System.Gadget.Settings.write("sDateUpdate", sDateUpdate);&lt;br /&gt;        System.Gadget.Settings.write("sGuid", sGuid);&lt;br /&gt;        System.Gadget.Settings.write("sDescription", sDescription);&lt;br /&gt;        System.Gadget.Settings.write("sImage", sImage);&lt;br /&gt;        System.Gadget.Settings.write("sRImage", sRImage);&lt;br /&gt;        System.Gadget.Settings.write("sRatingFormated",&lt;br /&gt;            sRatingFormated);&lt;br /&gt;        System.Gadget.Settings.write("sDuration", sDuration);&lt;br /&gt;        System.Gadget.Flyout.file = "soapboxFlyout.html";&lt;br /&gt;        System.Gadget.Flyout.show = true;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Other Settings for the Gadget &lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Apart from the settings which are set on the &lt;code&gt;showFlyout&lt;/code&gt; function, there are other settings which can be managed by the user. The user can search under "Video" or select from one of the Video feeds. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Once we have all the settings, we &lt;code&gt;Build&lt;/code&gt; the video object in the flyout window.&lt;/p&gt;&lt;pre lang="jscript"&gt;function BuildVideoObject()&lt;br /&gt;{&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        if (System.Gadget.Settings.read("videoSize")&lt;br /&gt;            =="large")&lt;br /&gt;        {&lt;br /&gt;        Video_HtmlString  = '‹OBJECT id="VIDEO"&lt;br /&gt;            width="640" height="480" ';&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;        Video_HtmlString  = '‹OBJECT id="Body1"&lt;br /&gt;            width="320" height="240" ';&lt;br /&gt;        } &lt;br /&gt;    Video_HtmlString += 'style="position:absolute; left:0;top:0;"';&lt;br /&gt;    Video_HtmlString += 'CLASSID="CLSID:6BF52A52-394A-11d3-B153-"';&lt;br /&gt;    Video_HtmlString += 'type="application/x-oleobject"&lt;br /&gt;        VIEWASTEXT›';&lt;br /&gt;    Video_HtmlString += '‹PARAM NAME="URL" VALUE="';&lt;br /&gt;    Video_HtmlString +=&lt;br /&gt;        "http:/soapbox.msn.com/StreamingUrl.aspx?vid="&lt;br /&gt;    + System.Gadget.Settings.read("sGuid");&lt;br /&gt;    Video_HtmlString += '"›‹param NAME="stretchToFit"&lt;br /&gt;        VALUE="1"›';&lt;br /&gt;    Video_HtmlString += '&lt;strong&gt;‹param name="AutoSize"&lt;br /&gt;        value="1"›&lt;br /&gt;    ‹&lt;/strong&gt;PARAM NAME="SendPlayStateChangeEvents"&lt;br /&gt;        VALUE="True"›';&lt;br /&gt;    Video_HtmlString += '‹PARAM NAME="AutoStart"&lt;br /&gt;        VALUE="True"›';&lt;br /&gt;    Video_HtmlString += '‹PARAM name="uiMode"&lt;br /&gt;        value="none"›';&lt;br /&gt;    Video_HtmlString += '‹PARAM name="PlayCount"&lt;br /&gt;        value="9999"›';&lt;br /&gt;    Video_HtmlString += '‹/OBJECT›';&lt;br /&gt;    document.write(Video_HtmlString);&lt;br /&gt;    }&lt;br /&gt;    catch (err)&lt;br /&gt;    {&lt;br /&gt;     document.write("Problem with the machine's Windows Media&lt;br /&gt;         Player");&lt;br /&gt;    }&lt;br /&gt;} &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;More information on the flyout is available &lt;a href="http://windowsvistablog.com/blogs/windowsvista/archive/2006/11/02/tips-and-tweaks-from-the-windows-vista-experts.aspx"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Paging &lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Since XML files can have hundreds of items, we need to be able to page it. So we add a DIV item in the &lt;em&gt;main.html&lt;/em&gt; file with the following: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="44" alt="Screenshot - tab.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/tab.jpg" width="132" /&gt; &lt;/p&gt;&lt;pre lang="jscript"&gt;‹div id="tbar" title=""›&lt;br /&gt;‹table width="100%" height="100%"  border="0" cellpadding="2" cellspacing="0"&lt;br /&gt;ID="Table2"›&lt;br /&gt;‹tr align="center" valign="middle"›&lt;br /&gt;    ‹td width="12" class="arrow" onclick="chPage(-999);" align="right"›&lt;br /&gt;    «‹/td›&lt;br /&gt;    ‹td width="12" class="arrow" onclick="chPage(-1);" align="right"›&lt;br /&gt;    ‹b›‹‹/b›‹/td›&lt;br /&gt;    ‹td class="sub" id="pageNum"›1/1‹/td›&lt;br /&gt;    ‹td width="12" class="arrow" onclick="chPage(+1);" align="left"›&lt;br /&gt;    ‹b››‹/b›‹/td›&lt;br /&gt;    ‹td width="12" class="arrow" onclick="chPage(+999);" align="left"›&lt;br /&gt;    »‹/td›&lt;br /&gt;‹/tr›&lt;br /&gt;‹/table›&lt;br /&gt;‹/div›&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;A Change page function will Parse the content of items to that page. &lt;/p&gt;&lt;pre lang="jscript"&gt;function chPage(off)&lt;br /&gt;{&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        if (System.Gadget.Settings.read("listview"))&lt;br /&gt;        {&lt;br /&gt;            if (rssItems.length &amp;lt; 100)&lt;br /&gt;            {&lt;br /&gt;                myval = Math.ceil (rssItems.length/5);&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {myval = 20;}&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;            if (rssItems.length &amp;lt; 100)&lt;br /&gt;            {&lt;br /&gt;                myval = rssItems.length;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {myval = 100;}&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        if (off === -999)&lt;br /&gt;        {&lt;br /&gt;            off = myval-page;&lt;br /&gt;        }&lt;br /&gt;        if (off === 999)&lt;br /&gt;        {&lt;br /&gt;            off = myval-page-1;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        try&lt;br /&gt;        {&lt;br /&gt;            if (((page + off) &amp;gt; -1) &amp;amp;&amp;amp; ((page + off) &amp;lt; myval))&lt;br /&gt;            {&lt;br /&gt;                page = page + off;&lt;br /&gt;                parseRSS(page);&lt;br /&gt;            } else if ((page + off) === myval)&lt;br /&gt;            {&lt;br /&gt;                page = 0;&lt;br /&gt;                parseRSS(page);&lt;br /&gt;            } else if ((page + off) === 0)&lt;br /&gt;            {&lt;br /&gt;                page = myval;&lt;br /&gt;                parseRSS(page);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        catch (err)&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    catch (err)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Make you own Favorite Videos List&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="75" alt="Screenshot - addtofavorite.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/addtofavorite.jpg" width="156" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now with each video you will see a plus icon in the bottom, so you can add the video to your favorites list. &lt;/p&gt;&lt;br /&gt;&lt;h4&gt;A portion of the code behind &lt;/h4&gt;&lt;pre lang="jscript"&gt;function addtoFavorites(sGuid)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;  var variableName = "userprofile";&lt;br /&gt;  var mytext ="Testing";&lt;br /&gt;&lt;br /&gt;  try&lt;br /&gt;            {    &lt;br /&gt;   var variableName = "userprofile";&lt;br /&gt;   xmlDoc = new ActiveXObject("Microsoft.XMLDOM");&lt;br /&gt;   xmlDoc.async="false";&lt;br /&gt;   xmlDoc.load(System.Environment.getEnvironmentVariable&lt;br /&gt;   (variableName) + "\\Videos\\SoapBoxFavorites.xml");&lt;br /&gt;   xmlObj=xmlDoc.documentElement;&lt;br /&gt;   rssAddItems = xmlObj.getElementsByTagName("channel");&lt;br /&gt;   rssAddedItems= xmlObj.getElementsByTagName("item");&lt;br /&gt;   var varAlreadythere = false;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  if (rssItems[i].getElementsByTagName("guid")[0]&lt;br /&gt;     .firstChild.nodeValue == sGuid)&lt;br /&gt;    {&lt;br /&gt;    if (!varAlreadythere)&lt;br /&gt;     {&lt;br /&gt;       rssAddItems[0].appendChild(rssItems[i]);&lt;br /&gt;      }&lt;br /&gt;     break;&lt;br /&gt;     }&lt;br /&gt;               &lt;br /&gt;xmlDoc.save(System.Environment.getEnvironmentVariable&lt;br /&gt;(variableName) + "\\Videos\\SoapBoxFavorites.xml");&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="75" alt="Screenshot - addedinfavorite.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/addedinfavorite.jpg" width="156" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;When you click on the "Add to Favorite" icon it will add the XML feed information for that video from the online feed to a local XML file.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;%userprofile%/Video/soapboxfavorites.xml&lt;/em&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here are the new settings to view your favorite videos. Select "My Favorite Videos" to see the bookmarked videos. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="336" alt="Screenshot - newsetting.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/newsetting.jpg" width="373" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;If any "My Favorites" are selected, the gadget will read from the local XML file.&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;A portion of the code behind&lt;/h4&gt;&lt;pre lang="jscript"&gt; if (System.Gadget.Settings.read("feedText").indexOf("My favorite") &amp;gt;=0)&lt;br /&gt; {&lt;br /&gt; try&lt;br /&gt; {&lt;br /&gt;  var variableName = "userprofile";&lt;br /&gt;  var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");&lt;br /&gt;  xmlDoc.load(System.Environment.getEnvironmentVariable(variableName)&lt;br /&gt;     + "\\Videos\\SoapBoxFavorites.xml");&lt;br /&gt;  rssXML=xmlDoc;&lt;br /&gt;  parseRSS();&lt;br /&gt;  }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;By default, the "My Favorite Video" list will show nine videos from the "Current Featured Feed". &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Create the XML file for the first time from "Current Featured Feed". &lt;/p&gt;&lt;br /&gt;&lt;h4&gt;A portion of the code behind &lt;/h4&gt;&lt;pre lang="jscript"&gt; var variableName = "userprofile"&lt;br /&gt; var SoapboxFavoritesPath = System.Environment.getEnvironmentVariable&lt;br /&gt;  (variableName) + "\\Videos\\SoapBoxFavorites.xml";&lt;br /&gt;&lt;br /&gt; rssObj = new ActiveXObject("Msxml2.XMLHTTP");&lt;br /&gt; rssObj.open("GET",System.Gadget.Settings.read("videoFeed"),true);&lt;br /&gt; rssObj.onreadystatechange = function()&lt;br /&gt; {&lt;br /&gt; if (rssObj.readyState === 4)&lt;br /&gt; {&lt;br /&gt; if (rssObj.status === 200)&lt;br /&gt; {                             &lt;br /&gt; try&lt;br /&gt;  {&lt;br /&gt;   System.Shell.itemFromPath(SoapboxFavoritesPath);&lt;br /&gt;   return;&lt;br /&gt;  }&lt;br /&gt;  catch (notFound)&lt;br /&gt;  {&lt;br /&gt;  var stream = new ActiveXObject("ADODB.Stream");                  &lt;br /&gt;  stream.Type = 1;&lt;br /&gt;  stream.Open();&lt;br /&gt;  stream.Write(rssObj.responseBody);&lt;br /&gt;  stream.SaveToFile(SoapboxFavoritesPath, 2);&lt;br /&gt;  stream.Close;&lt;br /&gt;  stream = null;&lt;br /&gt;  } &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;You can also remove the video from the Video list. Select My Favorite video, and then you can see the "Remove icon" after each video in the gadget. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="75" alt="Screenshot - removefromfavorites.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/removefromfavorites.jpg" width="156" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;h4&gt;The code behind Remove &lt;/h4&gt;&lt;pre lang="jscript"&gt;function removefromFavorites(sGuid)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;   var variableName = "userprofile";&lt;br /&gt;   var mytext ="Testing";&lt;br /&gt;            &lt;br /&gt;   xmlDoc = new ActiveXObject("Microsoft.XMLDOM");&lt;br /&gt;   xmlDoc.async="false";&lt;br /&gt;   xmlDoc.load(System.Environment.getEnvironmentVariable&lt;br /&gt;   (variableName) + "\\Videos\\SoapBoxFavorites.xml");&lt;br /&gt;   xmlObj=xmlDoc.documentElement;&lt;br /&gt;   rssRemoveItems = xmlObj.getElementsByTagName("item");&lt;br /&gt;&lt;br /&gt;     if (rssRemoveItems[i].getElementsByTagName("guid")&lt;br /&gt;         [0].firstChild.nodeValue==sGuid)&lt;br /&gt;        {&lt;br /&gt;        var lastNode=rssRemoveItems[i];&lt;br /&gt;        var delNode=xmlObj.firstChild.removeChild(lastNode);&lt;br /&gt;        xmlDoc.save(System.Environment.getEnvironmentVariable&lt;br /&gt;          (variableName) + "\\Videos\\SoapBoxFavorites.xml");&lt;br /&gt;        mytext = "Deleted and Saved";&lt;br /&gt;        break;&lt;br /&gt;        }&lt;br /&gt; }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;And we are done.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Tips in general&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;To resize a windows media player to a custom width, set the &lt;code&gt;‹param name="AutoSize" value="1"›&lt;/code&gt;&lt;br /&gt;&lt;li&gt;Any exceptions in a sidebar gadget main window should be handled with the "Service Not Available" screen, with information icon as shown above&lt;br /&gt;&lt;li&gt;Whenever you use a JavaScript function, encapsulate it inside a &lt;code&gt;try catch&lt;/code&gt; statement to avoid surprises&lt;br /&gt;&lt;li&gt;Escape(&lt;a title="Escape function" href="http://www.javascripter.net/faq/escape.htm" target="_blank"&gt;^&lt;/a&gt;) and unescape(&lt;a title="unescape function" href="http://www.javascripter.net/faq/unescape.htm" target="_blank"&gt;^&lt;/a&gt;) are nice little JavaScript functions for URL encoding and un-encoding when you need to pass URL's, etc. as parameters to the flyout window&lt;br /&gt;&lt;li&gt;The HTML code for &amp;lt; is "&amp;amp;laquo;" , &amp;lt;&amp;lt; is "&amp;amp;lsaquo;" , &amp;gt;&amp;gt; is "&amp;amp;rsaquo;" and &amp;gt; "&amp;amp;raquo;"&lt;br /&gt;&lt;li&gt;To check whether a file exists in a local folder use System.Shell.itemFromPath(Path) inside &lt;code&gt;try catch&lt;/code&gt;&lt;br /&gt;&lt;li&gt;For a timer functionality, use the setinterval&lt;sup&gt;4&lt;/sup&gt; method&lt;br /&gt;&lt;li&gt;For multiple language support, create a folder for that language (e.g. 'IT-CH', if the language is it-ch Italian Switzerland) and copy all files from the 'EN-US' folder to the new created folder (language codes &lt;a title="language codes" href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/language_codes.asp" target="_blank"&gt;^&lt;/a&gt;)&lt;br /&gt;&lt;li&gt;Check design concepts and usage pattern&lt;sup&gt;5&lt;/sup&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;In Action &lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Soapbox Gadget in Action : Size: 400 X 360 in flash player &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img height="366" alt="Screenshot - FLASH.jpg" src="http://csharptricks.com/Articles/SoapboxVideoGadget/FLASH.jpg" width="543" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;h2&gt;References&lt;/h2&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.innovatewithgadgets.com/"&gt;Innovate with Gadgets&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a title="Daily Dilbert" href="http://www.innovatewithgadgets.com/2007/01/daily-dilbert-sidebar-gadget-for.html" target="_blank"&gt;Creating a Simple Gadget: A Beginner's Guide&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a title="Soap Box" href="http://soapbox.msn.com/" target="_blank"&gt;Soapbox at MSN Videos&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a title="Microsoft Gadgets" href="http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx" target="_blank"&gt;MicrosoftGadgets.com sidebar development&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a title="MSDN" href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/setinterval.asp" target="_blank"&gt;Windows setinterval&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a title="Design patterns for sidebar gadgets" href="http://msdn2.microsoft.com/en-us/library/aa974179.aspx" target="_blank"&gt;Design concepts and usage pattern&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;a name="history"&gt;&lt;br /&gt;&lt;h2&gt;Article History &lt;/h2&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Mar 07, 2007: First published&lt;br /&gt;&lt;li&gt;Mar 08, 2007: Added support for flash player&lt;br /&gt;&lt;li&gt;Mar 11, 2007: Added architecture diagram&lt;br /&gt;&lt;li&gt;Mar 20, 2007: Create "My Favorite Videos"&lt;br /&gt;&lt;li&gt;Mar 23, 2007: Save your favorite video list to share &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;And thanks &lt;/h2&gt;For coming so far! I hope you find this useful, and give me a comment if you do and take care. &lt;!--- Article Ends- --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-3935581411170159123?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=4hdZeN9J"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=DLYso5Y8"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=jQrGUsGD"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=QsLRlTMC"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=QsLRlTMC" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=7z6PH0Cm"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=hXilHVMT"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=hXilHVMT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=P0KJ88tR"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=5VCQ35W6"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=gOvnBeUC"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=gOvnBeUC" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/ADEezmy3_Uo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/3935581411170159123/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=3935581411170159123&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3935581411170159123" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/3935581411170159123" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/ADEezmy3_Uo/creating-video-gadget-soapbox-video.html" title="Creating a Video Gadget (Soapbox Video Gadget)" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2007/03/creating-video-gadget-soapbox-video.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-313256340675437050.post-5780584973615397140</id><published>2007-02-02T19:19:00.000-08:00</published><updated>2008-05-12T23:46:36.599-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="screencast" /><title type="text">A Screen Cast on Vista Sidebar and Gadgets</title><content type="html">Screencast on Sidebar and Gadgets&lt;br /&gt;&lt;br /&gt;The sidebar is a dock for small, lightweight applications which provide information at the user's fingertips no matter where they are on their desktop. &lt;a class="tLink" style="DISPLAY: none; VISIBILITY: hidden" href="http://soapbox.msn.com/#"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://images.video.msn.com/flash/soapbox1_1.swf" quality="high" width="432" height="364" base="http://images.video.msn.com" type="application/x-shockwave-flash" allowFullScreen="true" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="c=v&amp;v=205e13c6-d7c7-489f-abe5-1b49c8801e4b&amp;ifs=true&amp;fr=msnvideo&amp;mkt=en-US&amp;brand="&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://video.msn.com/video.aspx?vid=205e13c6-d7c7-489f-abe5-1b49c8801e4b" target="_new" title="View on Vista - Sidebar and Gadgets"&gt;Video: View on Vista - Sidebar and Gadgets&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/313256340675437050-5780584973615397140?l=www.innovatewithgadgets.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=NissWGkW"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=k5hfumji"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=yItpzI5I"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=D4UMCtxx"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=D4UMCtxx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=uTmGqyGw"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=bP1rk3tH"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=bP1rk3tH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=qeHS423W"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=qbDQ7p00"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/innovatewithgadgets?a=Qw8zeJRm"&gt;&lt;img src="http://feeds.feedburner.com/~f/innovatewithgadgets?i=Qw8zeJRm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/innovatewithgadgets/~4/L-stkr6V8iE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/5780584973615397140/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=313256340675437050&amp;postID=5780584973615397140&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5780584973615397140" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/313256340675437050/posts/default/5780584973615397140" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/innovatewithgadgets/~3/L-stkr6V8iE/screen-cast-on-vista-sidebar-and.html" title="A Screen Cast on Vista Sidebar and Gadgets" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="09686166255357037845" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.innovatewithgadgets.com/2007/02/screen-cast-on-vista-sidebar-and.html</feedburner:origLink></entry></feed>
