Don’t do iisreset do …

a mini batch file in your start menu, when you're debugging the application startup of a .Net application, and keep wanting to restart it:

taskkill /im aspnet_wp.exe /f
if not errorlevel == 0 pause

or

taskkill /im w3wp.exe /f
if not errorlevel == 0 pause

which does the job much faster.

Assuming, of course, that your reason for wanting to do an iis reset was to force a .Net application restart. And you don't mind forcing all running .Net applications to restart. And you're not on a busy production machine at rushhour.

Why are my TFS local folder paths ridiculously long?

Well, without actually answering the question (oh, okay then - it's because they usually match the branch and directory path in TFS of course, but you knew that anyway) what you really wanted to know was how to fix it.

Easy. You want to play with the rows in File - Source Control - Workspaces - Edit...

Specifically, instead of one row listing the TeamProject root like this:

Source ControlFolder Local Folder
$/MyTeamProject C:\MyLocalWorkspaceRoot\

You want several rows, one for each solution you are currently working on, listing the actual solution file directories in TFS that you personally work with, and the - much shorter - local path you want to check out in:

Source ControlFolder Local Folder
$/MyTeamProject/Path/To/BranchXX/SolutionAA/ C:\MyLocalWorkspaceRoot\XX-AA
$/MyTeamProject/Path/To/BranchYY/SolutionBB/ C:\MyLocalWorkspaceRoot\YY-BB

Now you get just the files you want, without clicking through 10 levels of empty directories.

Workspace 101. Martin Woodward

Asp.Net Required Field Validator for a DropDownList

A required field seems a bit odd for a dropdown list because it's got a value whether you like it or not. But when you feel that your dropdown list should have a required value it's usually because, you've given it an initial value of "--please select--" or somesuch and you want to validate that a 'real' value has been chosen.

Easy. Set the InitialValue property:

<asp:requiredfieldvalidator ControlToValidate="ddlMyPickList" 
    Text="*" InitialValue="-1"
    ErrorMessage="You must choose a value"
    runat="server" ID="rfvDdlMyPickList"/>

Specifically, set it to the Value (not the Text) of the 'please select' item you added.