Why do we have so much different .net versions on windows ?

May 11, 2008
22,668
1,481
126
Why is there not one cumulative .net. All programs just increase in version number and are updated but .net frameworks exists side by side. What happened here ?
 

Dahak

Diamond Member
Mar 2, 2000
3,752
25
91
they exists side by side because of dependencies that exist only in older version of .net that are not there in the newer versions.

The only version of windows that would have all version of .net would be XP, and maybe vista.

Win7 shipped with a base of .net 3.5, win8 with a base of .net 4.0, and you cannot install the older versions.

And you do not necessarily need to have all of them installed, again except for XP. as 3.5 has backwards compatibility for 1.1 and 2.0

If you think .net is bad, do not look at the MS vc++ runtimes, currently on my system I have 5 version, each with a least 3 versions within those too


The one painful thing I hate about the .net is the security updates to them. I do not know why they cannot have a universal update when the release fixes, instead of having to download multiple 50-60MB updates to them

I do know that size will be a limit eventually. Or have an updates Installer that has all the current updates
 
Last edited:

ArisVer

Golden Member
Mar 6, 2011
1,345
32
91
And you do not necessarily need to have all of them installed, again except for XP. as 3.5 has backwards compatibility for 1.1 and 2.0

If they have backwards compatibility why do they keep the old versions there?
 

Dahak

Diamond Member
Mar 2, 2000
3,752
25
91
If they have backwards compatibility why do they keep the old versions there?

Well if you looks at the size of the installs, from 7 and 8, the older versions are only about 5-10mb whereas a full install is about 100-200mb
 

imagoon

Diamond Member
Feb 19, 2003
5,199
0
0
they exists side by side because of dependencies that exist only in older version of .net that are not there in the newer versions.

The only version of windows that would have all version of .net would be XP, and maybe vista.

Win7 shipped with a base of .net 3.5, win8 with a base of .net 4.0, and you cannot install the older versions.

And you do not necessarily need to have all of them installed, again except for XP. as 3.5 has backwards compatibility for 1.1 and 2.0

If you think .net is bad, do not look at the MS vc++ runtimes, currently on my system I have 5 version, each with a least 3 versions within those too


The one painful thing I hate about the .net is the security updates to them. I do not know why they cannot have a universal update when the release fixes, instead of having to download multiple 50-60MB updates to them

I do know that size will be a limit eventually. Or have an updates Installer that has all the current updates

.net 3.5 installs just fine in Windows 8 / 8.1.

As mentioned though, not all of the frameworks have backwards compatibility with the others. 1.1, 2.0, 3.5, 4.5 are the current releases but MS rolled in 1.1 and 2.0 in to 3.5 via a wrapper vista and above. 4.0 was replaced by 4.5(.3.) Generally only those 2 should be patching anymore. The big issue is they seem to issue a lot of patches against them and they have to compile them (there is a compiler included with the updates) which makes them take awhile to install.
 

Spungo

Diamond Member
Jul 22, 2012
3,217
2
81
Different concurrent versions exist to maintain compatibility. The process of overwriting everything as cumulative patches causes a problem known as DLL Hell.

Here's an example of how this works. Suppose DLL version 1.0 returns numbers when SomeFunction() is called. Version 1.0 returns 16-bit integers. Computers get better and start using 32-bit processors, so version 1.1 of that DLL is changed to return 32-bit integers for SomeFunction(). Most of the time, 32-bit numbers will work in place of 16-bit numbers, but there are some cases where the code might rely on something happening if the number is too big to fit in 16-bits. 32-bits allows for much larger numbers to exist, so this could break certain programs. Installing Application B could actually break your installation of Application A. This is why people always say you should try reinstalling when something doesn't work. They're basing that on the assumption that some other program overwrote a DLL file, one of the functions in the DLL changed in some way, and that changed function causes it to crash.

Allowing multiple versions to exist at one time means this never happens. Programs written to use .NET 3.5 will use the .NET 3.5 libraries. Programs for 4.0 will use 4.0 libraries. They will not overwrite each other, they will not fight each other, they will not try to uninstall each other.
 

Fred B

Member
Sep 4, 2013
103
0
0
It is also in the NET 1.0 are languages files and must be updated before updating to 2.0 , got Net updates downloaded to pc for XP .

1.0 - 4.71.1015.0
sp3 - 1.0.905.2891 - language
1.1 - 5.50.4134.600
sp1 - 1.0.871.2738
2.0 - 2.0.50727.42
sp1 2.0 - 2.1.21022.8
3.0 - 3.0.4506.30
sp1 3.0 - 3.1.21022.8
3.5 - 3.5.21022.8