32 comments

[ 0.29 ms ] story [ 81.6 ms ] thread
Hey HN,

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.

Any help from all you internet lawyers out there?

Thank you.

Maybe it’s multi-licensed? You can freely choose which one you use if more than one license exists for a given product.
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.
> In light of Mono being merged into .NET

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 are correct. Mono is still an alternative runtime for .Net. It hasn't been merged into .Net and I'm not aware of any plans to do so.
The mono code is part of the runtime since .NET 6
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.

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?

> 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.

The link on this post leads to that ticket. That's where the GitHub issue form lead me.
(comment deleted)
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.

[1] https://news.ycombinator.com/item?id=35985833

Thank you, I entered both a link and a text, that seems to have messed things up.
In short:

.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!

I think part of the confusion is coming specifically from this bit of the license information file which OP linked to:

> 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?

.NET isn’t really “open” see https://www.isdotnetopen.com also https://ghuntley.com/fracture which is related.
SSL failure on the first? (Firefox Windows)
Looks fine for me, and ssllabs are happy, at least with the first server it tested
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.
PR_CONNECT_RESET_ERROR. Probably work firewall, I guess.
"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.

Seems Microsoft has learned nothing.

Small correction: Visual Studio community is only free to use if you are a small company (250 PCs or 1M in revenue) plus a few other exceptions. https://visualstudio.microsoft.com/de/license-terms/mlt03181...

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.

Unless you are distributing the files in https://github.com/dotnet/core/blob/main/license-information... (and in general you shouldn't be), it's not something you need concern yourself with.

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.

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)

You're right (I just tested this myself.) I'm going to reach out to MS to get clarification.