Smart Client Contrib and Updater Application Block new releases!

The good old Updater Application Block won't be updated by patterns & practices, and the community now owns it. Our team at Smart Client Contrib took ownership of it. We (Curtis Gray mainly) ported it to work on .net 2.0 and Windows Vista. Below is the change log:

Application Block source code

  • Works in Windows Vista!
  • Updater Application Block relies on Enterprise Library 2.0 (Jan 2006) for the configuration
    • Enterprise Library 3.0 could be used by recompiling the block and changing the configuration files
  • BITS downloader no longer requires Administrator access.
  • InstallUtil processor scans the .NET framework redist folders for a specified version of the InstallUtil application. It is no longer necessary to have .NET 1.1 installed.
  • Multiple downloaders are correctly enumerated.
  • Various changes and bug fixes to correctly parse Updater configuration files for each activation processor.
  • Added saving of Source Folder in Manifest Editor
  • The code compiles on .Net 2.0
  • Quickstarts migrated to support the new configuration system
  • Breaking changes only related to configuration and not the Updater API
  • Bits Downloader now handles broken downloads gracefully
  • UpdaterTask serialization fixed. There was a bug on the net 1.1 version of UAB related to the partial update scenario. When some files were removed from the manifest, the UAB serializes the UpdaterTask with the original version of the files. This caused the ApplicationDeployProcessor to fail.
  • Partial update scenario fixed. The algorithms that might be used to calculate file hashes are non-keyed hash algorithms like: MD5; RIPEMD160; SHA1; SHA256; SHA384; SHA512
  • Manifest tool fixed to correctly support salt enabled hashes


  • Bootstrapper sample: a small exe app that will be installed in the client and will manage the updates
  • MSI: showcase how to use MSIs to install, patch or remove an application
  • Automatic Update: the application managing the updates automatically
  • Manual Update: the user might decide to update or not the application

On the Smart Client side, we have some new features, samples and bugs fixed:

New Features:

  • ItemsControlChildUIAdapter : allows any child of an ItemsControl to be utilized as a UI extension site (for example, allows a Separator to be used as an extension site)
  • FrameworkContentElementActivationService : ensures any WPF FrameworkContentElements are built up correctly and exhibit the same behavior as FrameworkElements
  • WrappedCabCommand : a WPF ICommand that wraps a CAB Command


  • Shell samples:
    • ApplicationShellApplication
    • WindowShellApplication
  • Workspace samples:
    • WindowsWorkspace
    • DeckWorkspace
    • TabWorkspace
    • ZoneWorkspace
  • Miscellaneous samples:
    • UI Adapters and Commands
  • Custom Visualizer

Bug Fixes

  • Fixed bug in FrameworkElementActivationService that was assuming the OriginalSource of a focus event was a FrameworkElement
  • Ensuring WindowSmartPartInfo only applies values to dependency properties if explicitly set

Go to our Codeplex site and start using them!

blog comments powered by Disqus