Announcing Reference Assistant 1.0

The product I have been working on, Reference Assistant, was released a few weeks ago.  Reference Assistant is an extension for Visual Studio 2005 and 2008 (and soon 2010).  In short, the goal of the product is cut down the time spent debugging runtime errors due to missing dependencies or errors in configuration.


Here are a few highlights of the capabilities in version 1.0:

  • Configuration files for, Windsor, and Unity can be parsed and displayed visually in a tool window.  Missing or incorrectly spelled types are pointed out (project reference paths are searched for required dependencies). 
  • Navigation to object definitions in supported IoC/DI configuration files
  • Any dependencies detected in configuration files can be automatically copied to the project output directory upon successful build.
  • Reference Paths can be setup automatically using rules setup in preferences.
  • Version conflicts between dependencies are displayed visually and in a tool window.
  • Generate a report of all required assemblies for a project’s deployment, including dependencies defined in IoC framework configuration files.
  • Extensions can be written to support custom file formats or configuration types.

For more detail in addition to the product pages, we have written a blog post walking through the functionality available in Reference Assistant for XML configuration.

If you think you or your team could benefit from a tool like this, download a 30-day trial here.

Watch out for those WaitOne() overloads (when you need backwards compatibility)

Recently I was writing some new functionality that ran work on background threads.  The functionality isn’t that important but one of the classes I was using to get the correct behavior was AutoResetEvent.  Specifically the AutoResetEvent.WaitOne() method.

Since I really don’t use this class very often, I relied on intellisense to give the list of method overloads and I selected the WaitOne(Int32) overload which allows the thread to wait a given number of milliseconds unless signaled first.  My compile worked and the functionality ran properly in Visual Studio 2008 SP1.  Since I share the of the same code base when my product is installed in VS2005, I jumped over and the product compiled and ran perfectly there as well.

I forgot all about this until I was doing the final testing in preparation for a new release.  The first few VPC images took the installation and ran fine.  However, when I ran the installation in a VPC image that had a clean installation of VS2005 SP1 and nothing else, the product did not work properly.  I was puzzled until I enabled logging and found that I was getting a MissingMethodException on the WaitOne(Int32) method.

I’ll spare you the details of the agony but I thought about this for a while and decided to try installing the .NET 3.5 SP1 framework in this VM and, low and behold, the problem vanished.

It turns out this method overload was introduced in .NET 3.5 SP1 but because System.Threading resides in mscorlib and there is only a 2.0 version of that assembly, any .NET 2.0 application (which in my case was the VS2005 package) is able to compile against it and run as long as the SP1 version of .NET 3.5 is present on the machine.

The solution was to use the WaitOne(Int32, bool) passing false to the second parameter which gives the same functionality.

I’ll be watching for this type of thing a little closer from now on.

Impressions of Win7 Beta Upgrade from Vista Ultimate SP1

Over this past weekend, I upgraded a laptop from Vista Ultimate SP1 to the new Windows 7 Beta (both 64-bit).  I decided to throw caution to the wind and forget the whole VM thing.  The upgrade lasted just under 7 hours but, before you think that might be a long time, the same laptop when upgraded from Vista Home Premium SP1 to Vista Ultimate SP1 took a little over 6 hours 20 minutes.  The laptop is an HP Pavilion dv5 (4gb ram, 2.1ghz AMD dual-core).

There have been no unworkable problems up to this point.  The issues that I have had so far are:

  • Skype 3.8 did not work.  The Win7 installer warned about this and I uninstalled before restarting the upgrade.  After the upgrade, I attempted to install the app (ignoring the compatibility warning) and it did install but crashes without an error dialog shortly after.  The Skype 4 beta 3 release seems to be working properly so far on Windows 7 64-bit so I will see how that goes.
  • Virtual PC did not upgrade properly.  I received a message stating that “Virtual PC could not open the Virtual Machine Network Services driver”.  The VMs did run but without any network access.  Uninstall/Reinstall of VPC fixed this issue for me.

I thought I might have a problem with TortoiseSVN but it has worked after the upgrade without any problems at all.

Visual Studio 2008 and 2005 both work fine after the upgrade.  I was expecting that I might have a problem with the Experimental Hive entries for the VS SDKs after the upgrade, but I didn’t have any problem with those either.

My first impressions of Windows 7 are good but I’m not overwhelmingly impressed in the way that some blogs have expressed.  Memory usage seems slightly better but nothing to bet exited about.  Bootup time has improved for me quite a bit, which is nice.  It is encouraging that performance of the beta appears to me to be at least the same as Vista Ultimate SP1 in the worst case and slightly better in some areas.

Some things have moved around on the Control Panel again so that is a little annoying.  One example is the Startup Applications that used to be found under Programs.  This applet appears to have gone away all together which is puzzling but it is possible that I have overlooked it.  Power users know to go directly to the folder but a regular user would be stuck with whatever installers or the OEMs feel like should run at startup. 

The new taskbar/quickstart toolbar combo is nice but I can’t figure out a way to start a second instance of an application, short of going back to the start menu.  This was a feature of the old quickstart toolbar I would like to have back.  An option on a right-click menu would be good enough.  Hopefully I’m overlooking an option somewhere.  [Update 1/13/09 11:35am – Shift+Click will launch a second instance.  That is about the only combo I didn’t try.  Thanks to Markus Egger on Twitter for that one.]

Silverlight 2 Beta 1 Released

Microsoft Silverlight Tools Beta 1 for Visual Studio 2008 has been posted to the Microsoft Download Center.

This download will install the VS integration (new project templates, debugging, etc..) as well as Silverlight 2 Beta 1 and the Silverlight 2 SDK Beta 1.

Tags: , , ,

Visual Studio Links #2

I changed the idea of these posts from once a week to a few times a week because the list gets a little long if I wait a week.

.NET Mass Downloader 1.2 introduces the ability to work behind a proxy server.  The post points to an article on CodePlex that shows how to get this working with Express as well.

Visual Studio Extensions for Windows Sharepoint Services 1.1 has been released.  Currently for 2005 only but 2008 should be coming this summer.

Visual Studio Team System 2008 Database Edition Power Tools has been released.

As previously mentioned, JetBrains has started the EAP for ReSharper 4.0

This is a good article on How to Submit Problems or Bugs to Microsoft about VS that discusses alternatives to opening a case with support.

John Robbins discussed the new version of SOSEX that has been released.  SOSEX, written by Steve Johnson,  provides useful extensions to WinDBG.  Anyone who uses WinDBG quite a bit should look at this.  John’s post also points to his prior description of SOSEX, which is a good read as well.

The Visual Web Developer team blog has an overview of the tooling that will be accompanying the next release of MVC.

Nannette Thacker discusses the installation of the Ajax Control Toolkit in VS.

The Visual Web Developer team shows how to get Javascript Intellisense working with jQuery.

Maarten Balliauw shows how to use performance analysis tools in VS 2008.

ScottGu pointed out Charlie Calvert’s blog post on the Expression Tree Visualizer for LINQ.  This is very cool and is actually one of the online samples for C# in VS 2008.  I had missed this one.

Bart De Smet posted a good explanation of creating and debugging custom MSBuild tasks.

Pablo Galiano posted that a new version of the Guidance Automation Extensions has been released and now supports VS 2005 and 2008.  Software Factory goodness for the masses.

Scott Guthrie speaks on the .Net 3.5 Client Product Roadmap here.  Improved .Net Framework Setup integration with 3rd party setup products and improved cold start times are my favorites.

Not really VS specific but here is a good article on monitoring IIS application pool restarts.

If you are a college student, look here to find out how to get VS 2008 for free.

Quan To posted a few links to articles on migrating Visual Studio packages from 2005 to 2008.

Tags: , , ,

Getting Free Software From Microsoft

Microsoft wants developers to write applications for Windows.  This is no secret.  What is not publicized very well, in my opinion, are the various ways that developers can get the tools they need to develop these applications for free.

Yesterday, I received my absolutely free, no strings attached, completely legal version of Visual Studio 2008 Professional via DHL.  I was given this because I showed up to the Visual Studio 2008 Installfest at the Houston .Net User’s Group just before Christmas.  For the effort of showing up, Microsoft also compensated me with all the pizza I could eat, all the Halo 3 and Guitar Hero I could play, and a tshirt.

If you missed out on this, Microsoft is having the official Visual Studio 2008 launch in a city near you coming very soon.  I know that 2008 has been out for a while now, but this is the official launch party that is combined with Server 2008 and SQLServer 2008.  I am sure they will be giving out more free stuff.  The Houston event is March 20 and I’ll be there.  You can register here for any of the scheduled cities. 

Come on, break free from your cubicle for a day.  You know you want to.


ReSharper 4.0 Early Access Program

JetBrains has announced the EAP for ReSharper 4.0.  The product supports most of the C# 3.0 features, but sadly still no LINQ support.  They have added quite a bit to ReSharper, in addition to the new language features.  I am looking forward to the final release.

Tags: , , ,

This Week in VS #1

This is the first post in what I am hoping will be a weekly recurring theme to aggregate interesting topics I come across concerning Visual Studio.

Koen Verheyen created a macro for optionally attaching debugger to IIS or the web server that ships with Visual Studio.  Quite handy.

Sara Ford does a VS tip of the day.  Today’s tip was about type-ahead selection in Solution Explorer.  My favorite tip so far is that ctrl+tab brings up the IDE Navigator.  This works in 2005 and 2008 but the window is much better in 2008.  If you keep the ctrl button pressed, you can navigate among the editor windows.  The arrow keys bring you to the tool windows.  Combine the IDE Navigator with today’s tip and keyboard enthusiasts can open new files in the solution without touching the mouse.

Keyvan Nayyeri is releasing a new book on Visual Studio Extensibility, a topic near and dear to my heart.  This book covers 2008 and looks good from what I have seen so far.  It looks like it will be out next month.

Shawn Burke posted a good explanation of setting up 2008 for debugging .Net framework source code.

Scott Guthrie explained the new hot-fix rollup for 2008 web development.  BTW – congats to Scott on his promotion to VP.

Tags: ,

.Net Mass Downloader 1.1 Released

I forgot to include this in my post yesterday but John Robbins, from Wintellect, has announced version 1.1 of.Net Mass Downloader.  This handy tool allows you to download all available source code for the .Net framework, all at once. 2008 will download the code once it is configured, but only a little at a time.  For those who want to peruse the code at their leisure, this would not be acceptable.

Tags: , , ,

Cool Visual Studio Things I’ve Run Across Lately

StickyNotes is a VS 2008 package that adds notes to solutions, projects, and project items.  The information is stored in the solution and project files.  This is functionality that I have always thought would be nice to have in Visual Studio.  The coolest part of this is that the tool window is not WinForms, it is WPF.  Written by Pablo Galiano and hosted on MSDN Code Gallery.  Sadly, no source code is available yet but it is promised soon.

MSDN Code Gallery is a new site that was introduced by Microsoft.  The site already has many good examples and pointers to good information.  It looks strikingly similar to CodePlex, only not so green.  I am not sure why these sites needed to be separate but I am sure someone has a good reason.

Scott Hanselman has put up a post with various VS themes.  It has become very fashionable to show off your custom themes lately.  I sort of like the Jedi Scheme.  The name is certainly a can’t miss.

Microsoft has just released a CTP version of the new XSLT Profiler for VS 2008.  My recent tribulations with debugging xslt have given me a huge appreciation for tools in this area.

Tags: ,

Next Page »