Considering JumpList and other Windows 7 features

Topics: Project Management Forum
Developer
Aug 14, 2011 at 3:30 PM

Hi all,

at the moment there are a couple of ways to include support for Windows 7 features (JumpLists, thumbnail buttons, resume/restart, sensors, etc.) in .NET applications:

  • The Windows API Code Pack (http://archive.msdn.microsoft.com/WindowsAPICodePack).
  • Using System.Windows.Shell (.NET 4.0) which includes JumpList support. 
  • Rolling your own P/Invoke implementation.

The first two methods appear to work but have a couple of unpleasant side effects: for some reason they both rely on the WPF Application class and the WPF dispatcher (i.e. do not work with Windows Forms). Secondly, the first solution is written for .NET 3.5 (while the second one is only available in .NET 4), so there isn't a solution which is backwards compatible with .NET 2.0 (which might by a minimal issue in fact, but anyway). Lastly, the Windows API Code Pack is huge and doesn't look like it is actively maintained.

I have decided to write my own shell interop library for JumpLists (and some other selected features) for a .NET 2.0 project of mine. The code could be merged together with Windows Forms Aero of course and would provide a simple way of using those features from Windows Forms projects and/or .NET applications running on the 2.0 runtime.

Possible counterpoints: even if the addition of these features would be (loosely) related to Windows Forms, it isn't necessarily related to AERO at all. Also, since Windows Shell interop is quite complicated, it would require major amounts of code to be added. The WindowsFormsAero library is quite lean and clean at the moment and I'd hate to make it bloated.

So... opinions? Suggestions? :)