Orcas Beta1 client perf improvements & Custom control impact

In Orcas Beta1, a bunch of client UI performance improvements are made, especially to reduce form load time when opening work items. Important ones are:

- The constructed forms are cached and reused as needed. Upto 3 forms are cached by default.

- The tabs are rendered only when user accesses them. This reduces the form load time by not loading data not viewed yet.


The number of forms cached for reuse is configurable in registry key Software\Microsoft\VisualStudio\9.0\WorkItemTracking\FormCachingPoolCapacity. First HKCU is checked and then HKLM for this registry key.


If anyone hits weird issue that seems like because of caching, please try setting the above key to 0, which means cache 0 forms & hence no caching. It’ll simulate V1 behavior and if that fixes your issue, we know it is because of form caching improvement. Please report us such issues with above test and this would be useful information for us for troubleshooting.


Impact on custom controls:


In V1 SP1, we used to create a fresh form and then load the custom controls (except in results view when viewing items of same type). So it is easy for custom controls to make assumption that it is in a newly created form. It is important that custom controls do not make such assumption.


For example, with the above caching changes, the InvalidateDatasource() call could be made many times with different datasources. So, the control needs to clear its data first before loading data from given data source. Also, custom controls should not make assumptions on the order of control creation and InvalidateDatasource calls. The ordering may not be same as in V1 because a cached form might be used. As you see, the impact is not much, and these are general good practices to follow anyway.