Ruminations of J.net idle rants and ramblings of a code monkey

My First CodePlex Project

Open Source
No, not the first one I've been involved with, but the first one that I started.  You can find it here: http://www.codeplex.com/BITSDownloadMgr
It's call BITS Download Manager.  It was a tool that I wrote some time ago to download large files over a VPN connection and have shared it inside of Microsoft for a couple of years as "JarJar BITS" (don't ask).  As the name implies, it uses BITS (Background Intelligent Transfer Service) to do the downloads.  This gives you network-friendly resumable file copies ... definitely better than Windows Explorer. 
Wrapping the BITS API in .NET was something of a challenge.  I didn't use TLBIMP because the RCW that it generated was somewhat "messy" (gets and sets instead of properties, whacked data types and marshalling, etc) ... it seems that the BITS API isn't very friendly with that tool.  So I used the hand-crafted RCW from the original App Updater block and made additional modifications to it for newer revs of BITS, added the event callback support and did a bit "cleaning up" some of the marshalling.  There are also disposable wrapper classes around the native COM objects to ensure that they get cleaned up.
Things on the list that I want to do:
  • Multi-threaded folder search for the folder copy job
  • Splitting large folder copies into multiple BITS jobs (BITS has a practical limitation of about 100 files per job)
  • New UI based on WPF
  • Additional job creator plug-ins.  Would like HTTP and SharePoint document library jobs.
  • Possibly look into an upload job as well. 

If you are interested in helping out, sign up and join the project.