Thursday, December 18, 2008

.NET Framework 3.5 Family Update - My Peek inside the .NET 2 update


KB 959209 has appeared! (was published on December 20, 2008).
This KB point you to 3 other KBs for the 3 parts of the Family Update:

  • 958481 – .Net 2.0 SP2 update
  • 958483 - .Net 3.0 SP2 update
  • 958484 - .Net 3.5 SP1 update

(Those docs are very similar each to the other, telling about the same issues)
Better late than never.


As I stated in my previous entry, Microsoft has uploaded this Family Update, with the usual missing of a description document what went into this update.

The only thing they said was:

The Microsoft .NET Framework 3.5 Family Update provides compatibility roll-up updates for customer reported issues found after the release of Microsoft .NET Framework 3.5 SP1

So I have decided to peek inside.

I don't take any responsibility on the following information. I might have done something totally wrong in the way I have extracted the update and got wrong info from within. You take all the risk on yourself if you use this info.


Now that we done with those legal issues, what I have done is extract the .msp file from within the the NDP20SP2-KB958481-x86.exe.

Then, using MSIX tool, I have extract the files from the .msp file.

Then, extract the file.

Next step was renaming the dlls I have found to have the correct extension (which was missing)

Next, for each dll (only managed), using Reflector, disassemble and export the source files.
Doing the same last action to the original dlls from the .NET GAC.

Using Araxis Merge to compare the source.

Please remember that I have done the investigation only for the .NET 2.0 SP2 Family update.

Non managed dlls in the update: (can't say what was changed there)

  • aspnet_wp.exe
  • mscordacwks.dll
  • mscorjit_dll
  • webengine.dll

Managed dlls:

  • mscorlib.dll
  • System.Data.OracleClient
  • System.Xml
  • System.Web

Main changes in those Managed dlls:

(I will just write the changes in short, I don't have more info to share- this would required days of reading Microsoft's code).


  • Better handling of IIS Rewrite Module in multiple classes(coockieless security, IIS7 worker request, HTML Form, Client Path)
  • Process Custom Browser Files - ignores hidden files in the directory (at least this what it's look like)
  • Something in state cache handling.
  • Change in Sort entries in control builder.


  • xml CanWrite check instead of GetSetMethod in one method.


  • RollbackDeadTransaction and some more Transactions code was added to a method .


  • Handling Delegate & MulticastDelegate Combine null issue better

the Version was changed from 2.0.50727.3053 to 2.0.50727.3082.

wow, this was long.
Hope you enjoy it.

I still wait for the missing KB doc from Microsoft...

If it won't come soon, you might find here the same analysis to the 2 other updates (I don't promise).

Half baked Download page - .NET Framework 3.5 Family Update


KB 959209 has appeared! (was published December 20, 2008).
but you can still watch the funny movie


Original Post:

I'm monitoring the Microsoft downloads site for new download almost daily.

Today, I have found a new interesting download:

Microsoft .NET Framework 3.5 Family Update

Actually, there are 3 files inside this page, one for each framework version part

  • 2.0 SP2
  • 3.0 SP2
  • 3.5 SP1

What is inside those updates? 
Very good question.

This is what I meant by "Half baked"...

There is a reference to a knowledge base document...

Please see the Knowledge Base Article KB959209 for more information.

But at the writing time of the blog, this document doesn't exist!

So instead telling you what goes inside those updates, you can watch a very funny movie from the company I work for.

Wednesday, December 17, 2008

Funny commercial or TFS DB upgrade?

Hi again

This time I'm not here to speak about technology, but to tell you about a very funny commercial produced for the company I work for, about American travel to Paris...

You know what? maybe I'll use the opportunity to share with you some technology issues anyway:

I was in the middle of replacing the machine of our TFS Data layer server, and got to the step where you should tell Sharepoint Services that you have switched Database...

I was using the instruction from "How to Restore Data for Team Foundation Server to a Different Server" document from MSDN:

Type the following command:

stsadm –o renameserver –oldservername
OriginalDataTierServerName -newserver NewDataTierServerName

So I just copied the line from the doc, and paste it into the Command Line Console.
I have changed the old & new server names, and... It didn't worked.

I got "Command line error".

After struggling this for 15 minutes, I found out there is a mistake in the doc:
The second parameter should be "-newservername" and not "-newserver".

So now it worked? of course not!

Struggling again, until I found one comment in WSS Blog from that guy "paisleygo", who says:
There is also the issue with the "typing" the command rather than pasting it. That part is critical - the paste seems to mess up the hyphen character. - So once I fixed all the hyphens in my bat file - things worked great!

Thanks paisleygo!

So my teacher was right all this time: "READ THE INSTRUCTIONS!"
Yes M'em - it was written in the doc to TYPE the line - not to copy it...