Misconceptions about ClickOnce, BITS

I’ve heard several people talking or writingabout ClickOnce and there seem to be some common misconceptions arising.

First: ClickOnce is a .NET Framework 2.0 (Whidbey) feature, not a Longhorn feature. There will be enhancements introduced by Longhorn that make it even better, but the core functionality is provided by the .NET 2.0 runtime, some classes in the framework, and Visual Studio Whidbey support for publishing and configuring ClickOnce apps.

Second: BITS (Background Intelligent Transfer Service) is not currently planned to be supported in the Whidbey release as far as I know. That is one of the big enhancements that Longhorn will bring. There will be support in Whidbey for trickle download of assemblies as they are used (although this is not in the PDC alpha version), but it will be a straight download, not using the BITS service. The reason is that the .NET Framework 2.0 will be supported on more platforms than BITS is (I believe BITS is only available through SP for Win2K and is native on XP and later).

If you are not familiar with BITS, it is a very cool service built into Windows that manages file downloads over the network/web. It not only stays out of the way by running as a low priority service in the background, but it also monitors your other network traffic and doesn’t get in the way by hogging your bandwidth when a download is in progress. If it sees that you are frantically surfing the net looking for the last available “Tickle me Elmo” doll for your favorite niece to torture your brother/sister,or better yet playing the latest .NET Rocks! live over the net, BITS backs off and makes sure that it is not taking bandwidth that your foreground activities need. But if you are not using up your bandwidth, it will step in and use it to accomplish your downloads. If you unplug and go mobile, it will just resume the next time it sees a connection available and underutilized.

If you use Windows Update autoupdate feature, or have an MSN account and use the download manager in MSN Explorer, you are already using BITS, though you may not have realized it. Jason Clark of Wintellect had a great article in MSDN mag back in Feb on how to integrate BITS into your own apps.

So ClickOnce will be there for you in a year or so when Whidbey ships, but you are probably going to have to wait until Longhorn to see BITS supported with ClickOnce deploys.

If there is anyone from the Microsoft Windows Client team reading: Adding BITS as a configurable option to Whidbey would be the best approach if you know your target platform supports BITS!