Accomac said:
Hello all,
How many of these darn things do I need?
I have .net Framework version 1.1 w/2 updates
.net " 2.0 SP2 w/ 19 updates
.net " 3.0 SP2 w/ 13 updates
.net " 3.5 w/ 4 updates
Then an MS .net client profile with 4 security updates!
MS just sent me 3 more that slowed my system down terribly so I did a
restore and got the boot time back again.
What can I delete of all these? I can't believe they are all REALLY
necessary.
Regards,
Accomac
There was a discussion recently, that the "NGEN service" that
"recompiles" dotNET applications, is responsible for the slowdown
in boot time. Once NGEN is finished recompiling the dotNET applications,
then it should stop wasting cycles. That's the theory at least.
As far as I know, if you were to disable the NGEN service put there
by a dotNET installer, the JIT (Just In Time) compiler that comes
with dotNET, does much the same thing, and only when you double click
a dotNET program to run it. The NGEN, does some monkey business
ahead of time, and pre-loads a cache folder, to speed up dotNET
program launch times.
I get the impression, that NGEN may have existed before dotNET 4.0,
so it may already have been doing this with previous versions.
dotNET is largely a "layer cake", so the idea they're versions,
isn't an entirely accurate picture. The new versions, are adding
new APIs to the software. It's too bad Microsoft doesn't provide
the tools to make the dependencies more visible (like "what do I
have" and "what do I need", easily answered for a user).
http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/DotNet.svg/513px-DotNet.svg.png
(
http://en.wikipedia.org/wiki/.NET_Framework )
The purpose of the dotNET installation software, is to add
things like libraries, that dotNET developers can use for
developing software. The developer ships you a 200KB executable,
and it makes reference to megabytes of code already installed
by way of those installations you've done.
If you did not install the dotNET libraries ahead of time,
and you did run a 200KB dotNET program, you'd get some kind of
error about "mscoree is missing" or the like. MScoree is part
of dotNET. Apparently the application developers, are incapable of
reporting "you should have installed dotNET 2.0, you dummy" so that
users would know what the problem was.
If you didn't have any dotNET type executables, then you wouldn't
need to install dotNET at all. It is possible to run a WinXP machine,
that is relatively independent of dotNET.
An analogous situation, is Java. I don't have really, any programs
here using Java code. I also don't visit web sites using Java to
make them work. The web sites may use "Javascript", which is entirely
different.
Since my usage pattern is entirely free of Java, I don't need to install
JRE (Java Runtime) package from Sun/Oracle. And it also means, I'm not
constantly applying security patches to the JRE, either.
On my machine, I have dotNET 2.0 code, in the control panel for my video
card. That means, I need at least dotNET 2.0 installed on my system, because
without it, the video card control panel would not open. I have not
installed any other "layers" of the cake, as at present they aren't needed.
YMMV.
Note that, in the "layer cake" picture, 1.0 and 1.1 versions are missing.
They predate the 2.0 series. An application developer, can put specific
checks in their code, for 1.0 or 1.1 (like a program you bought five years
ago perhaps). If you have code relying on 1.0 or 1.1, you should not uninstall
1.0 or 1.1 if that is the case. The 2.0 series, seems to have started the
collection process, over again, starting at 2.0 as the bottom layer, and
building the "cake" up from there. So if there was a notion of "version" or
"versioning", that split is most apparent between (1.0,1.1) and (2.0..infinity).
Infinity meaning, we'll never stop getting the stupid things.
Paul