Scott
Hanselman just published a blog post where he used NDepend to see changes in the
code of .NET 3.5 SP1 beta (that has just been released).
Let’s expose the exhaustive list of differences:
Summary:
# IL
instructions: 8 598 933 to 8 589 008 (-9 925
-0.1%)
# Assemblies: 112
# Namespaces: 919 to 929 (+10
+1.1%)
# Types: 39 988 to 40 402 (+414
+1%)
# Methods: 387 421 to 385 253 (-2 168
-0.6%)
# Fields: 241 567 to 246 320 (+4 753
+2%)
636 new
public methods:
SELECT METHODS WHERE IsPublic AND WasAdded
57 new
public types:
SELECT TYPES WHERE IsPublic AND WasAdded
3.137 public
methods removed (this number is biased by the fact that a public methods can be
declared in an internal types):
SELECT METHODS WHERE IsPublic AND WasRemoved
8 public types
removed:
SELECT TYPES WHERE IsPublic AND WasRemoved
5.623 methods
where code was changed:
SELECT METHODS WHERE CodeWasChanged
2.024 types
where code was changed:
SELECT TYPES WHERE CodeWasChanged
The list of
assemblies we consider is made of 112 assemblies.
Here is a 9000x1200
poster where methods where code was changed are located in blue (we degraded
the quality to have a 2MB image file instead of 13MB):
And here is a list of coupling update for assemblies:
- A blue cell means: {the X Assembly} is using {the Y assembly}.
- Weight of a blue cell means: W types of the {the X Assembly} are used by {the Y assembly}.
- A green cell means: {the Y Assembly} is used by {the X assembly}.
- Weight of a green cell means: W types of the {the Y Assembly} are using {the X assembly}.
- A black cell means: {the X Assembly} and {the Y assembly} are using each others.
- A red tick on a cell means: the coupling has been changed.
- A red tick with a plus on a cell means: the dependency has been created.
- A red tick with a minus on a cell means: the dependency has been removed.
- An assembly name underlined means that its code has been changed.