free geoip So Just How Much of .Net is Written in .Net? - Jayson's Blog - jaysonKnight.com
jaysonKnight.com
Welcome to my corner of the internet

So Just How Much of .Net is Written in .Net?

Thanks to Bob, it’s 4’ish in the morning and I’m still up.  We were having a conversation earlier about how much of the .Net framework (and Visual Studio itself) is actually written in .Net.  After 30 minutes of Googling and getting absolutely nowhere, I decided to write my own utility to recursively parse through each sub-directory given a top level folder, load each dll found and check to see if it’s a legacy dll or a .Net assembly.  That was the easy part…I then got sidetracked and started writing my own decompiler (of sorts) to actually pick the assemblies apart and give me a code outline of each assembly.  Yes, I know there are tools out there (Reflector being the best IMO) that will disassemble assemblies, but they don’t do it in bulk…you have to go one at a time.  What my utility will (hopefully) do is parse through an array of assemblies and generate corresponding class files…well, an outline at least.  Reflection is a powerful thing.

So onwards to the hard numbers gleaned by my utility (it should be noted I excluded anything related to the SDK’s as this would have thrown the numbers way off).

  • For Visual Studio 2002 — out of 217 dll’s, 20 came back as being .Net assemblies, the most notable of which being the VB upgrade wizard, and the base assembly for most of the wizards in VS.
  • For Visual Studio 2003 — out of 256 dll’s, 35 are .Net assemblies.  It appears that the Interop RCW generator was moved over to managed code in this release, along with the form designer wizards (among other stuff).  Interesting.
  • For Visual Studio 2005 Beta 2 — This one is a shocker…out of 876 dll’s, only 22 are .Net assemblies.  I will have to double check my code as I simply find that hard to believe…I’ve seen it mentioned on several MS blogs that VS2005 would have more managed code in it.  Then again it is a beta…who knows.

As far as the framework itself, here are the numbers.

  • For v1.0.3705 (1.0 RTM) — out of 80 dll’s, 41 are managed assemblies.  Most of the core libraries are written in .Net.
  • For v1.1.4322 (1.1 RTM) — 94 dll’s found, 50 of them are managed assemblies.
  • For v2.0.50215 (2.0 Beta 2) — 166 dll’s found, 0 are managed assemblies.  Apparently code compiled against 1.x of the .Net framework doesn’t properly load assemblies compiled in 2.x.  Again, it’s a beta so who knows if this is what we’ll see in the RTM.  I will recompile my code against the beta tomorrow (err, today…*yawns*) and re-run the test.

In the very near future I’ll start an article giving an assembly by assembly blow of what’s managed (namely, just listing the assemblies that are written in .Net…as I decompile them I’ll list points of interest) for anyone who’s interested.  As far as my bulk decompiler, hopefully I’ll have it finished up soon.


Posted May 30 2005, 05:26 AM by Jayson Knight

Add a Comment

(required)  
(optional)
(required)  
Remember Me?

Copyright © :: JaysonKnight.com
External Content © :: Respective Authors

Terms of Service/Privacy Policy