I'm evaluating the use of C#/.NET as a programming language. In light of Mono being merged into .NET, I was downloading the SDK and was quite surprised that it contains DLLs that are explicitly licensed under a commercial license and, in fact, seems to require the purchase of a Visual Studio Professional license. I have no problem paying for licenses, but this one seems to require a) a monthly subscription and b) is advertised on Microsoft's own site as free/open source.
It doesn't seem like it, the language seems to be pretty explicit. To me it reads like the Windows .NET SDK builds including proprietary DLLs and they didn't quite sort out their licensing.
I appreciate that this is tangential to your question about licencing, but I wasn't aware of this merge and a cursory search isn't very revealing. Any pointers?
I thought the situation was that Microsoft's .NET implementation now natively targets Windows, Linux, and Mac. And Mono still exists in parallel to this. What am I missing?
You seem to be correct, I have read contradictory information. At the same time, if all of Microsoft's might is standing behind .NET, can mono be a full alternative?
Edit: at the very least, Godot (game engine) has moved from Mono to .NET.
Just as Microsoft forked .NET Framework to make CoreCLR, they forked Mono. Both live in the http://github.com/dotnet/runtime repository. Both share most of the same C# code base for their runtime libraries. Mono is used for Blazor (WASM), iOS, and Android.
This merging was announced as part of .NET 5 but I recall that it was not complete till .NET 6.
This is clearly wrong since they're not chasing people for licenses, and the licensing of the whole thing is "free to use". It might be closed source, I'd have to check a DIY build from github to see whether it is included in that.
It's not a mono "merge" but a mono replacement; the whole ".NET core" ecosystem is a new(ish) multi-platform runtime and compiler.
Possibly file a ticket on their github to clarify this?
Rather than in a comment, your question should go in the submission's textbox. As comments get addedand move up and down, it's now no longer clear that your comment original [1] represents what you're asking the hive mind.
Works fine for me on Firefox 112.0.2 (64-bit) Windows 11. Maybe your ISP have some collaboration with Microsoft going and tries to intercept the site? What certificate error you get? Should show a error code somewhere.
"Open" does not mean that Microsoft can't make commercial tooling for .NET. Nobody is forcing folks to use VS Code, nor should Microsoft be forced to contribute unlimited resources to "open" projects. There are community editions of Visual Studio that folks are free to use. Alternatively, JetBrains makes Rider, my IDE of choice for doing .NET development on Mac/Linux.
If you constantly use "Microsoft <3 Open Source" as your main marketing method for reaching developers and then continues to push the platform you own further and further away from FOSS, people are bound to be upset at your methodology.
Regardless, Microsoft is free to do what they want, including licensing parts of a software as open source while keeping other things closed source, but their loud marketing around .NET being fully open source has caused other projects (like Godot) to move from Mono to .NET. If .NET turns out to not be open source in practice because you can't compile it for Windows without proprietary stuff, then that will be damaging to the projects using .NET for open source development. Here's to hoping that I just horribly misunderstood everything and this is not the case.
If you build a "self-contained" distribution, you'll get all of those files as required parts of the distribution.
(I think this is basically the same as the "vc_redist" problem for people building native Windows apps; it's copyright Microsoft but they expect you to redistribute it)
These DLLs count as redistributables, which the VS2019 license in question, linked in the GitHub page in your post, explicitly allows you to distribute.
Thank you for this, but I can't seem to find the Microsoft.DiaSymReader.Native.{x86|amd64|arm|arm64}.dll file in the list from the license terms: https://aka.ms/vs/16/redistribution
32 comments
[ 0.29 ms ] story [ 81.6 ms ] threadI'm evaluating the use of C#/.NET as a programming language. In light of Mono being merged into .NET, I was downloading the SDK and was quite surprised that it contains DLLs that are explicitly licensed under a commercial license and, in fact, seems to require the purchase of a Visual Studio Professional license. I have no problem paying for licenses, but this one seems to require a) a monthly subscription and b) is advertised on Microsoft's own site as free/open source.
Any help from all you internet lawyers out there?
Thank you.
I appreciate that this is tangential to your question about licencing, but I wasn't aware of this merge and a cursory search isn't very revealing. Any pointers?
I thought the situation was that Microsoft's .NET implementation now natively targets Windows, Linux, and Mac. And Mono still exists in parallel to this. What am I missing?
Edit: at the very least, Godot (game engine) has moved from Mono to .NET.
This merging was announced as part of .NET 5 but I recall that it was not complete till .NET 6.
https://devblogs.microsoft.com/dotnet/introducing-net-5/
It's not a mono "merge" but a mono replacement; the whole ".NET core" ecosystem is a new(ish) multi-platform runtime and compiler.
Possibly file a ticket on their github to clarify this?
At the time of writing the link on this submission is a ticket which they seem to have opened.
And based on the link in that ticket to this…
https://github.com/dotnet/core/blob/main/license-information...
… I don’t think what they’re saying is clearly wrong. I can see why they’re seeking some clarification.
[1] https://news.ycombinator.com/item?id=35985833
.NET multiplatform itself is open source as I'm sure you've seen here: https://learn.microsoft.com/en-us/dotnet/core/introduction
A few specific DLLs like Visual C++ redistributables are not open source, but they are separately licensed for redistribution. VS Pro is not needed.
Hope this helps!
> The following binaries are licensed with the Visual Studio 2019 License (not as a "trial")
I can’t work out what this means, other than that you must have a VS 2019 licence (and not a trial licence)?
Is that the wrong interpretation of that wording?
Seems Microsoft has learned nothing.
Regardless, Microsoft is free to do what they want, including licensing parts of a software as open source while keeping other things closed source, but their loud marketing around .NET being fully open source has caused other projects (like Godot) to move from Mono to .NET. If .NET turns out to not be open source in practice because you can't compile it for Windows without proprietary stuff, then that will be damaging to the projects using .NET for open source development. Here's to hoping that I just horribly misunderstood everything and this is not the case.
I have used .NET Core in plenty of enterprises and we've never needed a license to develop against the SDK or distribute our applications.
(I think this is basically the same as the "vc_redist" problem for people building native Windows apps; it's copyright Microsoft but they expect you to redistribute it)
https://visualstudio.microsoft.com/license-terms/mlt031619/
Which package would that be in?