Interesting findings in the diff between .NET Fx v4 Beta1 and Beta2











I compared with
NDepend .NET Fx v4.0 Beta1 with the new.NET Fx v4.0
Beta2 just released. I enumerated below some random
interesting finds. Don’t hesitate to ping me back if I’ve missed some cool public
API things.


To do the
comparison yourself, you need to have kept a copy of beta1 assemblies as I
explained in this post: Analyze and explore the evolution of .NET Framework by


A lot of
work has been done since the Beta1, there are 92K methods modified or added!



I take a
chance to show a preview screenshot of a great upcoming NDepend feature concerning
the comparison mode: the possibility to disassemble (with Reflector) and
compare implementations of a modified method. With this feature one can fine-grain control evolution of a codebase from assemblies only.




Some new
core types whose names are pretty explicit:


Some new
core public methods that seem useful to me.


Some new WPF
types. None of them contains IL instructions, meaning that they are DataObjects
(declared with auto properties), enumerations, delegates or interfaces:


A new System.Numerics assembly has been
This assembly now contains the class BigInteger
(formerly defined in System). This assembly also contains 3 new interesting classes: Complex, DoubleULong and


assembly System.Caching seems to have been renamed System.Runtime.Caching.


A new
assembly System.Device that seems to
only expose so far classes to modelize a Geo Localization
(GPS) device API  in the namespace System.Device.Location. It is pretty surprising actually, it looks like the .NET Fx is now modelizing some domains! It is like if future versions of .NET Fx will come with a System.Financial assembly with Account, Bid and Stock classes?!


System.Activities.* assemblies have been merged to give birth to a
new System.Activities.Presentation
assembly that seems to contain all previous assemblies code, now organized
through namespaces.


This entry was posted in .NET Framework, .NET Fx, v4 Beta1, V4 Beta2. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Joe White

    Your image for “Some new WPF types” is broken.

  • Sasha Goldshtein

    The new System.Device namespace that deals with location services is a wrapper of the equivalent Windows 7 functionality. It’s no surprise that it’s becoming part of the .NET framework because it is already a part of the underlying OS platform…

  • Craig Stuntz

    This is a really great post. I hadn’t considered using NDepend on framework code.

  • Patrick Smacchia

    Romain, yes all 3 generics methods are constrained
    where TEnum: struct

  • Romain Verdier

    Generic TryParse on Enum! Is it constrained?

    Nice overview, thanks.