Improving Performance of WinForms Apps

We have an internal application called Headtrax that allows Microsoft employees to
handle common HR tasks (such as hiring new staff, name and address changes, team restructuring
and other database queries). In the past, this application used to be web-based (ASP),
but has more recently been upgraded to a .NET Windows Forms application, allowing
for far greater interactivity and integration with other apps (you can create a Visio
diagram or Excel spreadsheet out of an orgchart, for instance).

Over the last few months, some of the CLR perf team have been looking at this application,
in particular with a view to improving the startup time - something that can sometimes
be an issue for WinForms apps. The results of their study can be found
buried deeply on GotDotNet
, and make for interesting reading.

Some of the lessons learnt might seem obvious (use asynchronous, rather than synchronous
web service calls), but others are quite interesting (such as a comparison of
the performance of GACed components versus local components, and creating a bootstrap
exe to get things kicked off as soon as possible).

Worth a read if you're building WinForms applications today and want some tips on
improving their performance, anyway. (Thanks to Nigel for the tip.)

That's my last post for the weekend - for the next week, get ready for an avalanche
of session notes from the PDC! I'll try and upload my notes several times a day, so
check back regularly from Monday.