Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is the .NET Framework 4.5 Full Install only 50MB (since they don't have Client Profile anymore)?

(all size references are in packaged size terms, not deployed/installed sizes)

Basically, the previous .NET Framework 3.5 was a few hundred MB's in size (231.5 MB's), and the Client Profile didn't exist for 3.5, however, a Client Profile did exist for version 4.0 at only 41 MB is size, while the Full Install (not CP) for 4.0 was 48.1 MB's in size.

Now, they are saying (in link posted at end of question) that most apps tended to need classes and namespaces that were not covered in the Client Profile 4.0, so they decided to not do a Client Profile for 4.5 for that reason. The other reason they quoted was that since they were able to get the Full Install version of the .NET Framework 4.5 down to 50 MB's, that also reduced the need of creating a Client Profile version (since .NET 4.5 Full Install is only 9 MB's greater than the .NET 4.0 Client Profile), and only 1. MB's greater than the equivalent Full Install (Standalone Offline Installer).

Now, my question really just has two parts, as follows:

1). How on earth (excuse my enthusiasm) how can the 3.5 and below (3.0, 2.0) versions be several hundred MB's in size, when the 4.0 & 4.5 versions have fixed so many issues in 3.5 and below, and have added so many features since 3.5 and below, while being several times smaller in packaged size?

2). Is this the final word on the Client Profile, or may we see one for .NET 4.5 someday?

3). How can 4.5 be only 1.9 MB's greater than 4.0 while fixing so man issues, and adding so many features?

Update: (and potential 4th question to anyone willing):

@Gromer raised an interesting point, that language packs aren't included. Since their needs to be 1 language included, I'm assuming it's English and that is the default? If this is so, how is an average internet user meant to download and install language packs for their own use and language when most people don't even know/understand what a ".NET Framework" is? Am I missing something or is this not important? How often does the framework communicate to the end user in spoken language or dialog boxes?

The article where I got some of this information is below:

http://blogs.msdn.com/b/dotnet/archive/2012/10/12/improvements-in-net-framework-setup-for-developers-it-pros-and-users.aspx

like image 380
Ethan - SoldMySoulToMicrosoft Avatar asked Oct 19 '12 16:10

Ethan - SoldMySoulToMicrosoft


People also ask

Is .NET 4.5 still supported?

NET Framework 4.5. 2, 4.6, and 4.6. 1 will reach end of support* on April 26, 2022. After this date, we will no longer provide updates including security fixes or technical support for these versions.

Does .NET Framework 4.5 work on Windows 10?

NET 4.5. 1 cannot be installed on Windows 10, only 4.6 and later. So if your application is incompatible with . NET 4.6 and later you will need to update your application.


1 Answers

If you look inside a 3.5 "standalone" installer you will be stunned finding how many sub-setups are there.

Take for instance dotnetfx35_with_sp1.exe: it is a big 231MB chained installer. When you decompress it with

dotnetfx35_with_sp1.exe /x:myfolder

you get a 240Mb folder, split on several other folders:

dotNetMSP [111.2Mb] ==> x64 [45.0Mb], ia64 [36.2Mb], x86 [29.7Mb], [other] 300k 
dotNetFX20 [47.6Mb] ==> about 50/50% between 32 and 64 bit
dotNetFX30 [46.8Mb] ==> x64 [24Mb], x86 [22Mb]
dotNetFX35 [31.5Mb] ==> ia64 [12.8Mb], x64 [10.8Mb], x86 [7.7Mb]
...and some other files around...

As you know, .NET 3.5 requires .NET 3.0 and .NET 2.0, which is exactly what you see here.. Even without including language packs, they had to target a number of different platforms (from windows XP onwards) and to include a lot of patches.

Moving forward to .NET 4.x, those dependencies on previous frameworks have been dropped and, on the same time, they support fewer (and newer) operating systems and platforms (take for instance ia64 support - which was quite heavy on file size - and is now almost disappeared).

From what I see on newer setups, they also might have changed something on the internal format in which they ship the framework, probably one more efficiently compressed..

Last but not least, they changed many inner architectures, rewrote grounds-up a lot of things, which in turn probably let them remove other old things...

There is probably not a single extraordinary change that let them drop the size so much: probably all of the above and more :)

Just my 2c :)

like image 121
Luke Avatar answered Oct 10 '22 20:10

Luke