Designer Filtering using Reference Assemblies

This is the second in my blog series on Visual Studio 2010 Designer Multi-Targeting. Visual Studio 2010 expands multi-targeting support to include metadata filtering in features such as intellisense and the property grid.  Notice how the property grid filters out the new ClientIDMode property added to web controls in .NET 4 when targeting .NET 2:…


A Project’s Target Framework

This is the first in my blog series on Visual Studio 2010 Designer Multi-Targeting.  When creating a new project in Visual Studio, you must select which framework you’re targeting: This setting is stored in your project file: <PropertyGroup> … <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkProfile>Client</TargetFrameworkProfile> </PropertyGroup> When you build this project, msbuild will automatically inject a TargetFrameworkAttribute into the…


Receive-Side Scaling: Maximizing Web Server CPU

UPDATE 1/7/2013: I recently re-ran the scenario on the original hardware and could not reproduce the RSS issue below.  I found that by setting ‘Number of RSS Queues’ to 4 for each of the Broadcom NICs, I could get an even distribution of load across all 16 server cores.  There was likely an RSS configuration…


Debugging W3WP Startup

On a few occasions, I have needed to debug the startup of the IIS worker process (w3wp).  I finally decided to create a script so that I no longer need to search for the answer.  The script starts w3wp by requesting a non-existent ASPX page.  After windbg is closed, the script will kill the debug…


Load Balancing Your Web Server

A recent regression in the ASP.NET performance lab prompted us to make a change to our infrastructure. Our “Hello, World” scenario showed a 23% regression in throughput and 5% decrease in %CPU.  I won’t go into the source change which triggered the regression, but I will demonstrate how tuning our web server performance made big…


A Look Inside the IE Performance Lab

The Windows 8 blog details the Internet Explorer Performance Lab.  It’s always fun to see how other performance teams operate.


Performance Counter Collection

As mentioned in my “Hello, World” post, performance counters are a great diagnostic tool for starting performance investigations. Logging performance counters during your runs does not add much overhead, unlike profilers. Still, this is not a replacement for profilers which are necessary for in-depth investigations. The following are some tools you can use to collect…


ASP.NET Performance Lab: Hello, World!

I thought I could shed some light on the ASP.NET performance testing by presenting our most basic scenario: Hello, World! Step 1: State the Objective We want to ensure that the basic ASP.NET pipeline does not regress from one release to the next.  We use server throughput (requests per second) as our performance metric.  We…


Web Performance Blog

This week I launched a new blog that will focus on the performance of Microsoft’s Web Stack.  This includes IIS, ASP.NET, MVC, WCF, WF, Visual Web Developer, WebMatrix and much, much more.  Content will be compiled from the performance team under Scott Guthrie that helps to deliver these products. I hope that our blog…


TypeDescriptor Updates in .NET4

This is the fifth in my blog series on Visual Studio 2010 Designer Multi-Targeting A few updates were made to the TypeDescriptor classes to support multi-targeting: 1. TypeDescriptor.InterfaceType With the different VS project types came slightly different multi-targeting solutions.  Windows and Web Forms attached the TargetFrameworkProvider to control instances on the design surface.  Workflow projects…