Moving On

I’m moving on to bigger and better things, so this blog has come to an end.  If you’d like to follow me on my new journey, you can surf on over to , where I’ll post about any new or interesting things that I come across.


Using SignalR to power ASP.NET Dashboards, Part 2

In a previous post, I covered how you can use SignalR to provide real-time communications between a Windows application and a Web page. The idea is that the Windows application could collect different kinds of system health information and provide it to the Web page, which serves as a dashboard. I provided online demos and…


Using SignalR to power ASP.NET Dashboards

Edit:  This is now part 1 of a series.  This post covers SignalR and how it is used to provide real-time “health” updates to a web page. Part 2 covers how to use the .NET PerformanceCounter class to pull actual status information and forward it to the dashboard.   Lately, I have received a number…


Zipping a single file with PowerShell

I recently needed to quickly create a PowerShell script that would create a Zip file from a specified input file.  A quick Bing search found a popular solution on StackOverflow: function ZipFiles( $zipfilename, $sourcedir ){     Add-Type -Assembly System.IO.Compression.FileSystem      $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal     [System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir,                                                           $zipfilename,                                                          $compressionLevel,                                                           $false) } Unfortunately, this would not work for me.  This script zips everything in…


Visual Studio 2013 Goodies

Just a quick post to remind everyone that Visual Studio 2013 Update 3 has now been released.  It has too many features to cover in detail here.  However, in addition to a number of fixes, it also allows you to get rid of the ALL CAPS menus.   This: becomes this:   New goodies include better…


Boot from VHD – What worked for us

My son and I spent most of the day yesterday trying to get our laptops to boot from a VHD.  We found loads of posts on the Internet that showed how it should be done, but we couldn’t make it work.  When we finally were successful, we found what we believe is an easier process, at…


Get the name of the current property or method

I often need to obtain the name of the current property of method, and I have historically used reflection for this.  However, I recently ran across the CallerMemberName attribute. This lead me to create the following utility function: Public Shared Function GetMethodOrPropertyName( <CallerMemberName> Optional memberName As String = Nothing)  As String     Return memberName End Function The key here is that I do not specify the memberName parameter when…


Support timelines for SQL Server, .NET Framework, Visual Studio, Team Foundation Server and Windows

Microsoft maintains a database of all supported products, along with the dates when those products’ various support stages end.  Anyone can search the database for a specific product, but that can be time-consuming when data for more than one product is needed.  I have therefore been maintaining a list of important dates and relevant information about several products…


Connection-Pooling vs. Reusing one connection

I recently had a conversation about .NET connection pooling, and how this compares to reusing a single open connection.  I have always “known” that connection pooling helps, but that it isn’t as efficient as reusing the connection.  Since I couldn’t provide proof of my belief, I decided to write a test.  I decided to execute…


Additional reasons to migrate off of Visual Basic 6

As most people know by now, support for Visual Basic 6 expired in 2008 (  However, I frequently receive questions about the risks of NOT migrating.  I try to respond to each of these requests individually, but I thought that I would post a typical response here.  Perhaps some of you will find this useful. So, for…