• Please review our updated Terms and Rules here

.Net Framework v4.7.1 on Win 10

tipc

Banned
Joined
Jan 16, 2005
Messages
2,760
Location
Principality of Xeon W-2140B the Great State of Ce
I bought my laptop 2 years ago very nearly. It's never been on the internet, at all. A program is asking for the above, which can.be downloaded into another device, moved to my lt, and installed. Presumably. But this page states that w10 anniversary or creators editions is needed. That says to me perhaps a whole lot of other crappola may be necessary for the package to "take". So should I just go ahead with it anyway and see what happens?

I really don't have much to lose.at this point, I recently nearly wiped my hd of everything but the os and installed programs. But I have no intention or interest in fully updating what's there. As a rule, that nearly always has been violated in the past, I don't use my.primary lt on the internet. I'm just weird that way. There are enough os and file system quirks that stand to make me lose something. And I have lost things. But even though there really isn't anything left on this particular hard disk, I still don't want to update it (beyond the newer .net api's).

Currently have Home, version 1607 (OS Build 14393.105)
 
Last edited:
.NET is not the problem here, it's a great application framework that has been in continual development for the last twenty years, I've been developing on .NET for that time. What are you installing that requires such a relatively recent version of the framework?

The overwhelming problem is Win10 itself and the way they structured it to be 'Windows as a service'. If your machine has not been on the net before then quite likely you are going to be deluged in Windows updates. With careful control, registry changes, group policy changes etc you can minimise the updates but then they go ahead and tweak something and you're back to square one. It seems they keep changing or removing options regarding control over updates. Back your stuff up first, perhaps also use wmic to take a list of what you have installed + versions before you start (er are forced to start) updating. That being said, updates are of course essential but in Win10 they do seem to come often and at the most inconvenient times.
 
Yes, the frameworks take advantage of new OS features and do require underlying updates. It goes without saying that the latest will not run on an unpatched out of date OS, would you expect it to?
 
.NET is not the problem here, it's a great application framework

No, it's not. It's a horrible dependency that has no business existing, ever.

Yes, the frameworks take advantage of new OS features and do require underlying updates. It goes without saying that the latest will not run on an unpatched out of date OS, would you expect it to?

And you gave one of the many arguments against it.

For the entire existence of .NET Framework, it has forced vendor lock-in, caused market segmentation, not backwards compatible, not forwards compatible and is a massive pile of bloat that enables developers to be lazy that massively artificially increases the size of their applications. You can write a paint program that is effectively 1 MB in size, but requires 900+ MB of .NET Framework dependency hell to work, even if it only uses a couple of functions.

I can't tell you how many times that I've encountered applications that look for a specific version of .NET framework, let's say 4.5 and fails and refuses to install or run because a newer version of .NET Framework is installed, let's say 4.7.x. The application developer is long gone and there's no way to install 4.5 because you can't have two versions on at the same time. Microsoft provides no remedy to these situations, not even a .NET compatibility mode that fakes a version string to make an application work.

Or there's .NET Framework <version> is not the same between major OS revisions (example would be XP and Vista) and causes programs to fail to work, even if the .NET version number is the same.

Or if developer builds against a new version of .NET framework that uses functions available in older versions of .NET framework, still requires the new version, breaking backwards compatibility on OS revisions that can't run newest .NET framework.

I really don't have much to lose.at this point, I recently nearly wiped my hd of everything but the os and installed programs. But I have no intention or interest in fully updating what's there. As a rule, that nearly always has been violated in the past, I don't use my.primary lt on the internet. I'm just weird that way. There are enough os and file system quirks that stand to make me lose something. And I have lost things. But even though there really isn't anything left on this particular hard disk, I still don't want to update it (beyond the newer .net api's).

Currently have Home, version 1607 (OS Build 14393.105)

That's a pretty old build of Windows 10, a lot of things have changed from 1607 to 1903, and not a lot of them were good changes. I'd try the latest build in a virtual machine before putting it on your laptop to avoid any hidden surprises.

I'd also try to find an application that does the same thing you want without using the .NET framework to avoid the nightmare of trying to work that mess out.
 
I can't address your grievances as you are entitled to your opinion, but I will address the points you've made that are not correct.

Firstly, right from the start .NET supports legacy code by way of COM interop and pInvoke, to load old DLLs. I used to write a lot of C++ COM objects for financial systems back in the 90s and when .NET came along in oh 2000/2001-ish, they worked fine.

Not being able to have different versions of the .NET framework installed? What???????

Let's have a concrete example, so here are the ones on my Win10 box right now, all happily co-existing.

Firstly, list the older installed versions of .NET frameworks:

Code:
C:\>dir /b %windir%\Microsoft.NET\Framework\v*
v1.0.3705
v1.1.4322
v2.0.50727
v3.0
v3.5
v4.0.30319

Then a list of the more current installed .NET frameworks:

Code:
C:\>wmic product where "Name like 'Microsoft .Net%'" get Name, Version
Name                                                                                 Version
Microsoft .NET Framework 1.1                                                         1.1.4322
Microsoft .NET Framework 3.5 Targeting Pack (enu)                                    3.5.28329
Microsoft .NET Framework 4 Multi-Targeting Pack                                      4.0.30319
Microsoft .NET Framework 4.5 Multi-Targeting Pack                                    4.5.50710
Microsoft .NET Framework 4.5.1 Multi-Targeting Pack                                  4.5.50932
Microsoft .NET Framework 4.5.2 Multi-Targeting Pack                                  4.5.51651
Microsoft .NET Framework 4.6 Targeting Pack                                          4.6.00081
Microsoft .NET Framework 4.6.1                                                       4.6.01055
Microsoft .NET Framework 4.6.2 Targeting Pack                                        4.6.01590
Microsoft .NET Framework 4.7 Targeting Pack                                          4.7.02053
Microsoft .NET Framework 4.7.1 Targeting Pack                                        4.7.02558
Microsoft .NET Framework 4.7.2 Targeting Pack                                        4.7.03062
So that's 1.1 through 4.7.x, and for brevity's sake have filtered out the new Core and others. I have all these because I develop, app users may well not have a requirement for so many versions.

Microsoft has always made the .NET installers readily available and any search engine will bring them up - no excuse there. You can install earlier .NET frameworks at any time as they go into their own folders, see my above dir listing so I'm baffled and somewhat bemused by your struggles.
Older apps on earlier frameworks will run from 4.x no change, and you can simply install the NetFx runtime for any earlier one. Search it.

As for bloat, well that would apply to any framework not just .NET. For instance the versions of the Java framework are also very large, and if you install full cygwin that's also sizeable.
Or you could try this in Angular8: ng new EmptyApp ...and you will get 274Mb of stuff generated just for an empty application!
It's just the way things are, if you want rich functionality (and .NET has it) then this is just par for the course.

Vendor lock-in? It's their own OS. Do Apple and Android do anything different? And .NET has made a bold step and moved off Windows with .NET Core which has been out for the last few years, and it's fully open source and on Github (https://github.com/dotnet/core)
It runs on Mac, Linux, Windows and I have it running on one of my Raspberry Pi 3 B's... yes, .NET on Raspberry Pi.
Just last week I attended my .NET User Group meeting and the presenter was using his Mac laptop to demo new a .NET feature (AOT ahead-of-time compile) and nobody bat an eyelid.

There has been Mono for years as well. The C# language (which is essentially a much cleaner, nicer and more capable version of Java, when you look at it) specifications are standard and ratified by ECMA and ISO.
Don't like C#? You can use other languages on .NET eg. Pascal, Eiffel, COBOL, BASIC and others https://en.wikipedia.org/wiki/List_of_CLI_languages

I realise you have your own subjective point of view, but I'll stand by - and support - my claim that .NET is a powerful, mature, stable and altogether great framework, and only getting better.
 
Last edited:
It is an old build for as I've stated I don't.connect my lt to the internet. I've downloaded a number of things and transferred them via bluetooth or memory card. But the framework installed, application is happy. And that's all the details I'm giving! I did like the movie much better the 2nd time I saw it though :). Maybe it was on account of the big screen at home.

I'm inclined to take GBs side on this one. But in all fairness redistributables are not new to .net. Visual Basic at least always had a rather large parcel of baggage that was required for anything written in it to run, going back to 6.0 and I'm sure earlier.
 
Last edited:
I can't address your grievances as you are entitled to your opinion, but I will address the points you've made that are not correct.

Firstly, right from the start .NET supports legacy code by way of COM interop and pInvoke, to load old DLLs. I used to write a lot of C++ COM objects for financial systems back in the 90s and when .NET came along in oh 2000/2001-ish, they worked fine.

The one thing I have never managed to get working is calling the MIDI sysex routines from VB.NET which is a pain as I need them to tweak the voices in my "Organ" (yamaha HS8 so really a big FM synth)
 
The one thing I have never managed to get working is calling the MIDI sysex routines from VB.NET which is a pain as I need them to tweak the voices in my "Organ" (yamaha HS8 so really a big FM synth)

I know nothing about MIDI (been meaning to look into it someday, as I inherited a CASIO keyboard) and have only had a brief look to see what SysEx is about, but here's someone's API (using pInvoke to call the Win32 DLLs) that you might be able to use? Build as a C# assembly, and call from your VB.NET assembly https://github.com/jstnryan/midi-dot-net/blob/master/Midi/Win32API.cs.
Or if you don't want to do that, perhaps you could take that project and just grab the DLLImport's and change to VB.NET syntax (with the <..>). If you need some info on mapping datatypes back to Win32, https://www.pinvoke.net/ will give you help and examples.
 
I can't address your grievances as you are entitled to your opinion, but I will address the points you've made that are not correct.

Woah there .NET fanboy, you need to slow down with your wall of text. And let me explain why you have no idea what you're talking about.

Not being able to have different versions of the .NET framework installed? What???????

Let's have a concrete example, so here are the ones on my Win10 box right now, all happily co-existing.

Firstly, list the older installed versions of .NET frameworks:

Congratulations, you just have proven you have no idea what you're talking about. Nearly all of the .NET frameworks you have installed are developer libraries used in software development and NOT client runtimes. Developer libraries are useless on client machines and will NOT work. You're also running Windows 10, which is completely irrelevant to issues on older versions of Windows. You happily humming along on a developer machine does not automatically make you an authority on all versions of Windows on all hardware platforms running any number of billions of different configurations.

And Microsoft even tells you that you don't know what you're talking about:
https://docs.microsoft.com/en-us/do...oot-blocked-installations-and-uninstallations

You cannot have multiple versions of the same branch of the .NET framework installed at the same time. And if we strip all of the developer versions out of your two lists, we can see that in fact you only have one version from every major branch installed.

so I'm baffled and somewhat bemused by your struggles.

Probably because you have no real world experience with workstation and server support, it looks like you're just a software developer.

Older apps on earlier frameworks will run from 4.x no change, and you can simply install the NetFx runtime for any earlier one. Search it.

Wrong.

https://blog.sentry.io/2018/05/14/windows-10-update-might-have-broken-your-dotnet-app/
https://www.dell.com/support/articl...ity-management-server-install-upgrade?lang=en
https://sharepoint.stackexchange.co...-product-requires-microsoft-net-framework-4-5

Find an endless list by searching ".net <version> prerequisite check failure"

As for bloat, well that would apply to any framework not just .NET. For instance the versions of the Java framework are also very large, and if you install full cygwin that's also sizeable.
Or you could try this in Angular8: ng new EmptyApp ...and you will get 274Mb of stuff generated just for an empty application!
It's just the way things are, if you want rich functionality (and .NET has it) then this is just par for the course.

You're conflating developer libs with client runtimes again.

Vendor lock-in? It's their own OS. Do Apple and Android do anything different?

Yes. Apple has had large portions of their software open sourced from the beginning of OS X, and Android has always been open source. Microsoft has always been the exact opposite until very recently and it has people in the industry concerned because it aligns with their behavior in the 90s where they'd force competition out of business using a mixture of illegal and unethical practices. The way Microsoft is targeting Linux currently is the same tactic they used with Java in the 90s where they "adopted" it and built it into Windows 98 as the Java Virtual Machine. It wasn't long until they started extending it with their own proprietary APIs and not back porting those changes to Java, which resulted in two completely different versions of Java. Microsoft was sued over this and lost, which is why the JVM died with Windows 98.

I realise you have your own subjective point of view, but I'll stand by - and support - my claim that .NET is a powerful, mature, stable and altogether great framework, and only getting better.

More like you reject reality and substitute your own pipe dream.
 
TL;DR
Gigabite really doesn't like Microsoft, I can see that.
Finding info on installing all versions of the .NET runtime is as simple as searching "install all versions .NET runtime".
Of the three other links, the first is trying to sell a product and the other two have supplied workarounds.

Have I mentioned that .NET is a great framework?
 
Sentry may be selling a product but the bug described there is a rookie mistake at MS. Adding an automatic login for Azure SQL to the database API is an incorrect choice made even worse by not implementing the call correctly.

Many of the .NET bugs are from poor testing procedures by the developer. If creating something that needs multiple revisions of .NET, it is necessary to test that all the versions needed are installed.
 
Back
Top