<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx</link><description>So how do you make an updater be less horrible. First off, as I suggested for all applets, consider not having one at all. For instance, Collectorz.Com 's applications each check for updates periodically when they are started. That way you bury your update</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Larry Osterman isn't that into you, either.</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4520188</link><pubDate>Thu, 23 Aug 2007 07:54:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4520188</guid><dc:creator>Tales from the Crypto</dc:creator><description>&lt;p&gt;In previous articles, I&amp;amp;#39;ve pointed out: Programmer Hubris - He&amp;amp;#39;s just not that into you Programmer&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4520188" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4501453</link><pubDate>Wed, 22 Aug 2007 03:35:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4501453</guid><dc:creator>Norman Diamond</dc:creator><description>&lt;p&gt;&amp;gt; two options. &amp;nbsp;The first is that you can assume that the user&lt;/p&gt;
&lt;p&gt;&amp;gt; is going to want the update and pre-download it,&lt;/p&gt;
&lt;p&gt;DO NOT DO THIS.&lt;/p&gt;
&lt;p&gt;Windows Automatic Updates provide correct options for this kind of thing. &amp;nbsp;If the user sets an option to do pre-downloading then you do it. &amp;nbsp;But DO NOT ASSUME IT.&lt;/p&gt;
&lt;p&gt;It is really fun (not) to dial up a cell phone, expecting to spend a few seconds downloading or sending e-mail, and finding that some assumer has hijacked your connection. &amp;nbsp;The train is leaving the station in 40 seconds. &amp;nbsp;You want to download updates tonight, not now.&lt;/p&gt;
&lt;p&gt;It is really fun (not) to find assumers doing the same thing on a pay-per-packet internet connection.&lt;/p&gt;
&lt;p&gt;History question:&lt;/p&gt;
&lt;p&gt;&amp;gt; Task Scheduler 1.0 interfaces (which are available on&lt;/p&gt;
&lt;p&gt;&amp;gt; Windows platforms going back to Windows ME)&lt;/p&gt;
&lt;p&gt;Does that mean 98 had Task Scheduler 0.0 interfaces?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4501453" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4496851</link><pubDate>Tue, 21 Aug 2007 20:49:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4496851</guid><dc:creator>Mihai</dc:creator><description>&lt;p&gt;&amp;quot;I'm not sure why WU is a service, I'll see if I can find out.&amp;quot;&lt;/p&gt;
&lt;p&gt;It is called &amp;quot;Automatic Updates&amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4496851" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4496402</link><pubDate>Tue, 21 Aug 2007 20:07:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4496402</guid><dc:creator>Jerry Pisk</dc:creator><description>&lt;p&gt;Somehow I think Larry meant that the application that checks for updates and downloads them should not need elevation, not the actual update itself.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4496402" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4495774</link><pubDate>Tue, 21 Aug 2007 19:14:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4495774</guid><dc:creator>Michael Dunn_</dc:creator><description>&lt;p&gt;Shameless plug for an article I wrote that demonstrates how to use BITS to download files:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.codeproject.com/wtl/wtl4mfc9.asp"&gt;http://www.codeproject.com/wtl/wtl4mfc9.asp&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4495774" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4494760</link><pubDate>Tue, 21 Aug 2007 17:20:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4494760</guid><dc:creator>Grant</dc:creator><description>&lt;p&gt;&amp;quot;Maybe this is because it wasn't cool enough to be documented...&amp;quot;&lt;/p&gt;
&lt;p&gt;Why do people embarrass themselves like this? A little research shows that there is a large amount of information on the Internet on using BITS, including formal documentation. In addition to the link to the documentation Larry provided, there is:&lt;/p&gt;
&lt;p&gt;Write Auto-Updating Apps with .NET and the Background Intelligent Transfer Service API:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/msdnmag/issues/03/02/bits/"&gt;http://msdn.microsoft.com/msdnmag/issues/03/02/bits/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Background Intelligent Transfer Service (BITS):&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://download.microsoft.com/download/b/3/d/b3d8e8ea-8c3f-4962-8a01-478b33f44e15/BITS.doc"&gt;http://download.microsoft.com/download/b/3/d/b3d8e8ea-8c3f-4962-8a01-478b33f44e15/BITS.doc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using Windows XP Background Intelligent Transfer Service (BITS) with Visual Studio .NET: &lt;a rel="nofollow" target="_new" href="http://msdn2.microsoft.com/en-us/library/ms997639.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms997639.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Managed Wrapper for BITS:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.duncanmackenzie.net/blog/Managed-Wrapper-for-BITS/"&gt;http://www.duncanmackenzie.net/blog/Managed-Wrapper-for-BITS/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Maybe some of the above isn't applicable to you, maybe it is. Point being, to claim that Microsoft does not document (and support developers using) it's *public* APIs is an outright lie and does a disservice to the men and women of Microsoft who work very hard to try to make sure the documentation is complete:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://channel9.msdn.com/Showpost.aspx?postid=331844"&gt;http://channel9.msdn.com/Showpost.aspx?postid=331844&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4494760" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4494495</link><pubDate>Tue, 21 Aug 2007 16:49:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4494495</guid><dc:creator>Larry Osterman [MSFT]</dc:creator><description>&lt;p&gt;davidacoder: I'm not sure why WU is a service, I'll see if I can find out.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4494495" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4494474</link><pubDate>Tue, 21 Aug 2007 16:47:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4494474</guid><dc:creator>Marc Bernard</dc:creator><description>&lt;p&gt;&amp;gt;&amp;gt; but I'm not aware of any 3rd party apps that use it&lt;/p&gt;
&lt;p&gt;So do we. &amp;nbsp;Our field service folks are mighty happy about it.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.agfa.com/usa/en/he/products_services/all_products/impax_60.jsp"&gt;http://www.agfa.com/usa/en/he/products_services/all_products/impax_60.jsp&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4494474" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4494294</link><pubDate>Tue, 21 Aug 2007 16:23:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4494294</guid><dc:creator>Leo Davidson</dc:creator><description>&lt;p&gt;&amp;gt; Uh, this one lost me. I write my installer to install in Program Files. Surely that means my updater must update files (DLLs, EXEs, say) in Program Files?&lt;/p&gt;
&lt;p&gt;Your *installer* might write to program files and require elevation but your *updater*, which checks for an update and then downloads it and runs the installer, shouldn't.&lt;/p&gt;
&lt;p&gt;I think Larry's point is that you really don't want to be hassled by a UAC prompt when an updater decides to wake up and do an update check. A couple of posts back he mentioned something which did just that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4494294" width="1" height="1"&gt;</description></item><item><title>re: Applet Mitigations - Updaters</title><link>http://blogs.msdn.com/b/larryosterman/archive/2007/08/20/applet-mitigations-updaters.aspx#4494211</link><pubDate>Tue, 21 Aug 2007 16:03:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4494211</guid><dc:creator>AndyC</dc:creator><description>&lt;p&gt;Tanveer, that's not necessarily true if an Administrator installed the program on behalf of someone else. Using signed v4 MSIs that have been designed for user patching is a really good solution to this. Alternatively, if you are using the Task Scheduler approach, you can arrange for the task to be created in a context which does have the necessary rights.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4494211" width="1" height="1"&gt;</description></item></channel></rss>