What is Net Framework. I'm trying to find a decent Duplicate file
finder (as in another thread). I just downloaded a program that says I
need Net Framework, to use it. This is not the first time I've gotten
filed that require it. From what I recall, it's a huge download too, so
I just delete stuff that asks for it. But what is Net Framework??????
What does it do?
Think of it this way.
In the past, programs used DLLs. Inside the DLL would
be helper routines for the main program.
Now, imagine instead, someone makes a really big DLL and
gives you a copy from a central source (Microsoft). As
a developer, your copy of Visual Studio has nice routines
in it for you to use in your program. Say SQRT(x). You
get the harness the power of the Square Root routine that
someone at Microsoft wrote, and just call it from your program.
Later, at Casey's house, Casey wants to run the program. The
program is only 50KB (because the developer doesn't have
to write so much code), but it needs a 500MB .NET library. So
the developer doesn't typically put that huge file into
every download. Instead, the user is supposed to download
..NET in advance, so the library is ready to use at any time.
In the past, we had smaller (10MB) runtime libraries to download
(msvcp90.dll). So .NET isn't the first time this concept was used.
The Visual Studio used to have its own smaller library, and users
could download the redistributable version of those, to make
a program work. Smart programmers would just include the appropriate
DLL for their program, so the user didn't have to sweat. But other
developers weren't as smart, and it was up to the user to see
a certain error message, and figure out what redistributable
needed to be downloaded. (Some of the later OSes, they actually
have folders on the installer DVD, with versions of all of
those provided for you. A gold mine.)
If a developer writes all their own code, there would not be any
other DLLs, libraries, and add-ons necessary to make their program
work. But most developers consider themselves "power users" and
they reuse code from other people. And they typically don't
tell you what add-on needs to be acquired to make things work.
And then poor Casey has to use the old noodle to figure it out.
*******
The most miserable part ? There is more to .NET than meets the eye.
The .NET idea is used as a "wedge", to force users to upgrade their
OS. By making versions of .NET not be compatible with older OSes,
for no reason, you can make it so guys like Casey have to use
Vista to get what they need. If a developer binds to .NET 4.5,
Casey is up the creek without a paddle. Support for Win98 stops
a little earlier than that. And these are not "versions", they're more
like layers in a cake.
..NET 1.0 Win98 and WinXP covered
..NET 1.1
..NET 2.0 With no SP, last one to run on Win98
No problem for WinXP, several .NET service packs available
..NET 3.0
..NET 3.5 2/3/3.5 are a "family", using the same CLR value
..NET 4.0 Last one for WinXP
..NET 4.5 For Vista or later
..NET 4.5.1 For Vista or later
So you can see that version 4.5 was released, to screw WinXP users.
Because the software stack was relatively complete by version 4.0.
Soon, poor Casey will be downloading .NET applications, and there will
be no way to run them in the Casey household. All it takes, is the
developer binding to 4.5 or 4.5.1 (and Microsoft conveniently puts
those in the latest Visual Studio, to help ensure the wrong ones
get bound in).
Since Win98 is single core, you can imagine how the cake model
would eventually include flavors of multitasking that don't
work on Win98. Even with a KernelEx.
But WinXP is every bit as good as the later OSes, and it's harder
to justify screwing WinXP users. Unless you need to sell OSes of course.
The same was done with Direct3D for games. Just after Win2K went
out of support, clever old Microsoft added an OS check to the
Direct3D library, on purpose, so games would break when run on
Win2K. If you patched out the check, the game ran just fine,
proving that Win2K and WinXP are similar enough to run the
same content. Using helper libraries as a wedge, and suckering
developers into using them, is a tradition. (I patched out
and tested such a game, and played it right to the end of the demo.)
Paul