• .NET Framework source code

    I knew that Microsoft were making it possible to Step Into .NET source code when you are debugging (if you configured Visual Studio to use the correct symbol and source server), but I didn’t know that you can download the entire source by itself as well.

    They currently have various bits of .NET 3.5, ASP.NET MVC and WCF. Hopefully more will follow.

    More details are on the Reference Source Code Center Team Blog, and there’s a forum too.

  • P2P online backup

    Very rarely you see an online ad that is interesting.. Today I noticed one for CrashPlan.

    They offer both a free and paid online backup solution. The interesting thing about the free version is that you back up your data on your friends’ or family’s computers (rather than a central remote server). Quite a novel approach. About the only downside is that the free version apparently is ad-supported. Not sure how annoying they would be.

    I think all the computers would need to be online at the same time for backups to work properly. Presumably the same would apply if you needed to do a restore too. Something to take into consideration.

    There is also a paid offering too (for orphans or people without any friends?)

  • Updating assembly versions in Visual Studio project files

    Sometimes you need to update all the references to a particular assembly so that they use a newer version than the original one that was added to the project.

    One option is to manually edit the references for each project, removing and re-adding the assembly.

    Option two, which is a bit nicer, is to use something like this PowerShell script:

    Get-ChildItem -recurse -filter "*.*proj" | Foreach-Object { (Get-Content $_.FullName) | Foreach-Object { $_ -replace "1.0.3.0", "1.1.0.0" } | Set-Content $_.FullName }

    In this example, we are replacing instances of “1.0.3.0” with “1.1.0.0” – handy if you just happened to be upgrading to the latest version of Castle.

    Note the use of the parentheses () around the Get-Content - without those you’ll end up with an Access Denied error as it will be trying to write to the same file it is reading from.