Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kindly reconsider the licensing for .NET Core debugging libraries #505

Open
TAGC opened this issue Feb 16, 2017 · 102 comments
Open

Kindly reconsider the licensing for .NET Core debugging libraries #505

TAGC opened this issue Feb 16, 2017 · 102 comments
Labels

Comments

@TAGC
Copy link

TAGC commented Feb 16, 2017

I was under the impression that being as open-source as possible was one of Microsoft's chief goals with .NET Core. It's very surprising then to find that the licensing for Microsoft.VisualStudio.clrdbg - the only publicly available package that exposes the .NET Core debugging API - is so restrictive:

You may only use the .NET Core Debugger Components with Visual Studio Code, Visual Studio or Xamarin Studio software to help you develop and test your applications.

Because of this restriction, JetBrains have been forced to drop debugging support for .NET Core-based projects in the latest version of Rider EAP (EAP 17) which they released today. As a company that undertakes a great deal of innovation, I am sure that there are many people at Microsoft who are saddened by the idea of a very promising application being driven backwards due to legal/licensing reasons rather than technical issues.

The lack of debugging support for .NET Core projects in the latest version of Rider is a deal-breaker for me and I'm sure many others. I would like to know:

  • Why is such a restrictive license necessary in the first place when the rest of .NET Core is open-source?
  • Would it be possible to lift this restriction or at least consider making exceptions for certain products like Rider?
@McNerdius
Copy link

McNerdius commented Feb 16, 2017

Pure speculation on my part, but i wonder if the answer to this is in the name of the license itself - "MICROSOFT PRE-RELEASE SOFTWARE LICENSE"
Not wanting to fuss about with (potential) third-party compatibility issues in pre-release seems reasonable.
¢¢

@miyu
Copy link

miyu commented Feb 16, 2017

Relevant blog post from jetbrains: Rider EAP 17: NuGet, unit testing, good and bad news on debugging

@lundcm
Copy link

lundcm commented Feb 17, 2017

I suppose this would explain why there aren't decent plugins with other editors like Atom, Sublime, etc.

@pedershk
Copy link

Come on, Microsoft. This is no good. You need an open community around .Net Core. Try not to become the next Java.

@Rutix
Copy link
Contributor

Rutix commented Feb 17, 2017

This issue has also been raised here: dotnet/vscode-csharp#1059 in the past. To be honest it's quite understandable that Microsoft wants to protect the value of Visual Studio and their other tools. As far as I can see the package is an implementation of the ICorDebug interface. Microsoft invested a lot of money and energy in building advanced debugging features around this so it's kinda understandable if they don't want to open source that. There is nothing stopping other developers to implement their own implementation of the interface.

What many people seem to forget is that Microsoft is a big organization. The implementation was not made by the team which does all the open source work. It's totally fair if other teams use the open source stuff to make products which they can sell.

@tetious
Copy link

tetious commented Mar 7, 2017

I'm dissapointed but not surprised that Microsoft has completely ignored this issue. Every time I think maybe they've changed and actually intend to be open and collaborative with the community, even around touchy subjects like licensing, they do something like this which leaves a bad taste in my mouth.

I wish someone would just assign the parties fighting against those who want change to a special project and be done with it. Why do they continue to have so much power to frustrate?

Sorry for the tone, but I've just spent the last 15 minutes trying to work around not having a debugger in Rider. I love Rider and it was the deciding factor for my using .net core for a fairly large project. Now my development is crippled unless I want to switch back to Windows. This is completely opposed to the supposed "we want you to be happy using .net on any platform" marketing.

It shouldn't be this way. This should have been resolved in a day via a quick email from the Rider team to MS.

TLDR: making .net core annoying to work for outdated reasons that make no sense is not going to win hearts and minds. Please stop being frustrating!

@stefan-schweiger
Copy link

@tetious actually the current Rider version for Windows should already have debugging enabled again, and the Mac and Linux version are soon to follow (in the comments they mentioned that they wrote their own implementation - for what I assume is a wrapper - of the debugger):

https://blog.jetbrains.com/dotnet/2017/02/23/rider-eap-18-coreclr-debugging-back-windows/

@Rutix
Copy link
Contributor

Rutix commented Mar 7, 2017

@tetious TBH the demands you are making are kind of not making sense. The key thing in this incident is that Microsoft made it's own debugger implementation based on a public interface. That debugger is part of their commercial products like Visual Studio. Nothing stops another person/team/company to make their own debugger implementation. This is also what Rider started doing: (https://blog.jetbrains.com/dotnet/2017/02/23/rider-eap-18-coreclr-debugging-back-windows/) . You can't just give everything away for free and legally wise it's a whole process when it comes to licensing ect. If you suspect Microsoft to give the debugger away for free do you also expect Jetbrains to give all their stuff away for free? It's a flawed demand you are making.

@tetious
Copy link

tetious commented Mar 7, 2017

@stefan-schweiger Yep, that was where my "switch back to Windows" comment in my wall of text came from. :)

There are a number of (imperfect) workarounds and this will likely be a non-issue Soon(TM). My point is that this is another of the dozen papercuts that I've experienced trying to use .net core on a non-Windows platform. The next biggest was expecting RC1 to resemble the final version and not drop dnx and mono-wrapping. A tangent for sure.

@Rutix I'd argue that the debugger is part of the platform. If the platform is to be free/open, I don't think it is unreasonable to expect a command-line debugger should be included. It seems arbitrary to me to put it behind licensing restrictions that prevent other projects like Atom, Sublime, etc using it.

@Rutix
Copy link
Contributor

Rutix commented Mar 7, 2017

@tetious except the debugger that they used wasn't made by the team which develops the OpenSource platform. So you can totally see the people who made the debugger implementation as a "third-party". You can argue that a command-line debugger not offered by the platform is a lack of feature but that can be contributed to the fact that the platform is pretty new. A lot of features are still missing.

@tetious
Copy link

tetious commented Mar 7, 2017

@Rutix Microsoft was also touting their "One Microsoft" initiative not too long ago. Wouldn't your third-party argument go against that? :)

But seriously, I do understand that .net core is new, and some features are missing. I made the decision to use it based on the features that existed at the time. I didn't expect things to go backward post rc1. (Losing dnx was even more frustrating.)

I also realize that Jetbrains is partially to blame here as they violated the license and should not have included the debugger at all. Also, I am partly to blame for relying on pre-release software. :)

I just don't like silence. Why hasn't Microsoft commented on this? Instead of frustrating the folks who use Rider, why couldn't they have made even a temporary concession so as not to be frustrating? That's my real point. I shouldn't have to follow the politics and care about this stuff. I just wanna write code.

@Rutix
Copy link
Contributor

Rutix commented Mar 7, 2017

@tetious They have commented on this issue in dotnet/vscode-csharp#1059 . But as you can see the people commenting on that thread say that it is above their pay grade and there have been conversations. Even though Microsoft says "One Microsoft", Microsoft is so big that there are many stakeholders wanting different things.

I understand your feelings though, but to be frankly emotions almost never have an influence on the level these decisions are made. They are business decisions and people need to convince people to change their views.

@lol768
Copy link

lol768 commented Mar 7, 2017

I agree with @tetious on this. If MS want the platform and ecosystem to be taken seriously and adopted it needs to appear homogeneous externally - regardless of any internal politics that may be in play.

If the platform is open, it's entiirely reasonable to expect that the debugger (as such a crucial development tool) comes under the platform umbrella. The lack of acknowledgement of the problem here/discussion of plans moving forward and the bureaucracy seemingly prevented this getting sorted is incredibly disappointing to see but perhaps not surprisiing from such a large company. It's especially discouraging to see JetBrains, who are putting in the effort to make an IDE comparable to -- better than -- Visual Studio which works on Linux (something Microsoft never bothered doing) and isn't a web browser in disguiise, being hurt by this.

@paulsapps
Copy link

Then why can't the MS open source team write yet another debugger that is open? Not having an open debugger with an open platform is rather strange.

@0xd4d
Copy link

0xd4d commented May 4, 2017

MS released MDbg a long time ago, it's open source, should be trivial to support .NET Core (on Windows). Could take a little bit more work to make it work on Linux/macOS.

@giggio
Copy link

giggio commented Feb 28, 2018

We haven't had any answer from Microsoft ever. It is time to at least address the problem, even if the answer is to say that it is what it is.

@brockallen
Copy link

That license link on NuGet goes to a 404 page.

@hartmannr76
Copy link

Is this still being talked about? Like @giggio said, I'm really just looking for an "ok" or "not happening" answer from Microsoft. It's unfortunate other IDE's will have to build their own custom debuggers to work with this instead of just building the interface from the IDE to the debugger. I understand why Microsoft wouldn't want to share that but as others have mentioned, it would be nice for a common debugger to be a part of the "open platform".

@Daniel-V1
Copy link

Found this today after reading through this issue and searching for a debugger. Haven't used it yet, but it is open source and MIT licensed, and implements GDB/MI spec and Debug Adapter Protocol.

https://github.com/Samsung/netcoredbg

@omajid
Copy link
Member

omajid commented Aug 8, 2018

@Daniel-V1 It's being used by at least one IDE already: https://github.com/eclipse/aCute#concept

@carloreggiani
Copy link

Dear Microsoft... or better to call you again M$???

"Error processing 'configurationDone' request. Unknown Error: 0x89720010" using vscode-oss with omnisharp-vscode extension (both rebuilded, MIT license) trying to build a dotNet core application in environment completly opensource.

Sure, dotNet Core and VS Code are Open Source project, great M$:

immagine

It seems crazy not only to me, fortunally!

(dotnet/vscode-csharp#1431 (comment))

@giggio
Copy link

giggio commented Aug 28, 2018

@carloreggiani This is not a good way to discuss the issue. If you have criticism to bring to the table, than do it, but do it respectfully. Nobody owes you anything, not Microsoft, nor the thousands of people who contributed to the several projects. They can open source, or not, whatever they choose to. Their business model is their problem, and you don't get a say in it (or me). If you don't like it, you can go ahead and build your own open source .NET Core debugging library, or ask them about a position, respectfully, as others here have done.
Yes, they should answer if they are going to open it or not (and this answer is overdue), but no, they don't have to do it. It is not crazy, it is a common business decision, and it is not up to us.

@salaros
Copy link

salaros commented Oct 12, 2018

Visual Studio for Mac owes a lot to MonoDevelop project. Making such decisions (as they did with vsdbg) is ethically incorrect, especially if lately you build your success on the shoulders of open-source community.
Basically they want to benefit from what the community offers and then add proprietary licenses on projects based on / derived from open-source solutions.

@Rutix
Copy link
Contributor

Rutix commented Oct 12, 2018

@salaros That's a little bit shortsighted tbh. It's an undeniable fact that Microsoft gives a lot back to the community and actively participate in the community. It's ethically incorrect to expect them to share everything for free.

@ceremony
Copy link

Plain and simple, I would have to agree with MSFT on this. There has to be -some- aspect of development that has to be justifiable on a cost/benefit business level. I'm getting a little bit tired of open-source/free everything.

When was the last time your lawyer open-sourced the case and did it for free?
Or your doctor open-sourced your checkup and did it for free?

For one thing, Visual Studio Community Edition, VS Code, SQL Server Dev. Edition, Typescript, .NET Core, Teams, etc. and a host of associated technologies are absolutely free - MSFT doesn't see a single penny up front (of course, for non-enterprise versions).

So if as developers, we expect to earn a good living based on our work and experience, then we in return have to establish value for all development work - and giving it away for free diminishes/commoditizes the role of good engineering.

@carloreggiani
Copy link

carloreggiani commented Oct 18, 2018 via email

@scherenhaenden
Copy link

I would like to put my 2 Cents.

Indeed MS is not obligated to do so. BUT! they use this new Strategy of "We love Open Source" and at the very same time they do this..

They just try to make ppl see a cherry of the whole tree, to try to get em back to Windows and Visual Studio. This is not love for Open source, this is pure strategy.

@Rutix
Copy link
Contributor

Rutix commented Oct 19, 2018

@scherenhaenden "We love Open Source" doesn't mean they have to open source everything. And I think https://opensource.microsoft.com/ is indication enough of the "We love Open Source" statement.

It works on Mac so how is this a strategy to get them back to Windows? There also also opensource implementations now (and it isn't stopping anyone of making their own implementation).

@giggio
Copy link

giggio commented Nov 5, 2021

Please try to keep this discussion constructive and short. If this keeps up this thread will end up being locked to maintainers as "too heated". I'm not a maintainer and I also don't want it locked. If you need to have a heated conversation, please take it elsewhere, like reddit.

@ghost
Copy link

ghost commented Nov 12, 2021

+1 , Dear Microsoft, would you please kind to release the Debug library for Apache license or BSD license?
Who does not need a debug library.

It must have, like water, like air.

No anyone can live without it .

@616b2f
Copy link

616b2f commented Nov 12, 2021

As other stated you could use just the debugger from Samsung (https://github.com/Samsung/netcoredbg) it works flawlessly (at least with neovim + nvim-dap plugin, but it should be compatible because they use the same Protocol as VSCode DAP )

@atrauzzi
Copy link

@616b2f That's really outside of the scope of what's being intended with this question.

The practical concern is that Microsoft shouldn't be in the habit of hoarding told for a supposedly open platform. Everyone knows Jetbrains and Samsung have alternatives...

@616b2f
Copy link

616b2f commented Nov 12, 2021

@atrauzzi jetbrains is not a real alternative because of they proprietary license, but from Samsung is open source and under MIT license. And why is it important who build the open source debugger? When there is a good open source alternative that works the same who cares that Microsoft has a closed source one? Don't get me wrong, I think it's important to show Microsoft that we would like to have the licence changed, but if they don't want to, everyone is free to use the alternative.

@atrauzzi
Copy link

atrauzzi commented Nov 12, 2021

@616b2f - Right, but that's not the point of this github ticket now is it?

This ticket is specifically here to talk about opening it up. Not about alternatives. Everyone knows about the alternatives. This is here to manifest the desire to see Microsoft do the right thing.

The title for the question you're answering is "Is there a free alternative to the Microsoft .NET debugger?"
The title of this ticket is "Kindly reconsider the licensing for .NET Core debugging libraries".

It really just distracts from the conversation to try and suggest that there's an alternative. It makes it seem like you think this conversation is invalid.

@Rutix
Copy link
Contributor

Rutix commented Nov 12, 2021

@atrauzzi but the original reason for the question to reconsider the licensing was because there wasn't an alternative. That isn't true anymore so in that sense I understand where @616b2f is coming from.

@atrauzzi
Copy link

An alternative showing up doesn't change that Microsoft missed the opportunity to come out on the right side of this from the start.

@voronoipotato
Copy link

As always one's sight exceeds their grasp. I suppose their loss is our gain given that they've decided to make the situation zero sum. Ironically the people hurt the most in this situation are the people paying for visual studio, since they won't be able to leverage or use their tools when working with people who aren't paying.

@sharpninja
Copy link

@tetious They have commented on this issue in OmniSharp/omnisharp-vscode#1059 . But as you can see the people commenting on that thread say that it is above their pay grade and there have been conversations. Even though Microsoft says "One Microsoft", Microsoft is so big that there are many stakeholders wanting different things.

I understand your feelings though, but to be frankly emotions almost never have an influence on the level these decisions are made. They are business decisions and people need to convince people to change their views.

"One Microsoft" doesn't mean everything will be free. This debugger goes back decades and does a log more than just .Net Core.

@GeraudFabien
Copy link

@sharpninja The post you answer was written in 2017.

@mpawelski
Copy link

As a happy used of Rider (for 4 months so far, previously VS for many years) it really seams that the main reason for Microsoft not relicencing their debugger is to weaken their competition (Jetbrains). Free and open source platform (.NET) should not be tied so much to paid IDE (Visual Studio). This is hurting even paying VS customers and adoption of .NET in general. It's hard to recommend .NET as a viable open-source platform when such core components are not open-sourced.

I'm writing this because even though Jetbrains managed to implement their debugger it's not perfect. I just got really bad and plain wrong call stack for my deeply nested async method. When I tried it in VS everything works beautifully. It pissed me of a bit, but I won't change back to VS just because of that (even that I could because my company tell us we are free to choose our IDE and they will pay). So please Microsoft, change your attitude.

@mansellan
Copy link

mansellan commented Jan 13, 2022

I find it pretty shocking that this is still happening in 2022. Is .NET open source or not?

I would love to hear an official explanation from Microsoft why the language and tooling should all be open source, except the debugger. That's a nearly open source solution.

There's a few explanations I can postulate (all pure conjecture on my part):

  1. The debugger code is a horror show, and they don't want to expose it to scrutiny
  2. The debugger code contains hints to other, legitimately proprietary areas
  3. The debugger code is littered with offensive comments
  4. The debugger team missed the memo that .Net has gone open source
  5. Microsoft want to limit the ability of third party IDEs to compete with Visual Studio
  6. Some combination of the above

My suspicion is that number 5 is the most pressing. If so, I'd say this: Have faith in Visual Studio. It's a great product, able to stand on its own merits without special access. Being able to access the debugger is a tiny part of making an IDE, much more important is surfacing that information with an outstanding UX, which VS has always excelled at. Far more so than IDEs for other ecosystems.

@sharpninja
Copy link

sharpninja commented Jan 13, 2022 via email

@kodkuce
Copy link

kodkuce commented Feb 1, 2022

Like wtf i just wanted to make a simple net core web api, i pressed debug and BAM error you need to use VSCode from Microsoft, lol like whats the point of open sourcing VSCode if you have to use closed binary blobbed one. Literally i am now in mood to learn rust or C++ or whatever Microsoft will newer change i guess i can only cry on Mono grave

For anyone looking for a solution
https://community.monogame.net/t/monogame-setup-with-vscodium-netcore-samsung-debugger-tutorial/12035
you can use samsungs debugger with vscode build from source

@pm4rcin
Copy link

pm4rcin commented Apr 5, 2022

Like wtf i just wanted to make a simple net core web api, i pressed debug and BAM error you need to use VSCode from Microsoft, lol like whats the point of open sourcing VSCode if you have to use closed binary blobbed one. Literally i am now in mood to learn rust or C++ or whatever Microsoft will newer change i guess i can only cry on Mono grave

For anyone looking for a solution https://community.monogame.net/t/monogame-setup-with-vscodium-netcore-samsung-debugger-tutorial/12035 you can use samsungs debugger with vscode build from source

You don't have to install Samsung's debugger because it's already included in C# extension which you could install straight from VSCodium.

@ghuntley
Copy link
Member

ghuntley commented Jun 6, 2022

Tomorrow members of the .NET team are doing an AMA. I won't be able to make it due to the timezone but could someone else please drop in and do the ask when .net will become an open platform? (ie http://isdotnetopen.com)

https://twitter.com/martinwoodward/status/1533789297144365058

@amine-aboufirass
Copy link

amine-aboufirass commented Jun 10, 2022

@ghuntley was this mentioned during the AMA? I actually tried Samsung's netcoredbg on a simple console application and concluded (with confirmation from the developers) that the CLI doesn't work for Windows...

@ghuntley
Copy link
Member

Hey folks,

Unfortunately, https://isdotnetopen.com/ has been updated after today's announcement which Miguel summarizes as

"Truly disappointing that Microsoft would subvert an active open source project by ramming in a proprietary extension to continue to lockdown .NET. An unacceptable abuse of power from the stewards of the platform, and a betrayal of the community." - https://twitter.com/migueldeicaza/status/1537175065380495367

screencapture-isdotnetopen-2022-06-16-10_36_49

The discussion is happening over at dotnet/vscode-csharp#5276 and the problems are similar to the problems we face in this issue.

@federico-r-figueredo
Copy link

Thank you Microsoft for showing your true face. I'm done being a C# developer. I'll switch to another programming language on my next job. As they say goes...

"Fool me once, shame on you. Fool me twice, shame on me."

@ultimaweapon
Copy link

I really like C# and .NET Core and I'm a Linux user. This kind of issues made me heartbroken. I decided to slowly migrate my works into another stack. No more heartbroken with C# and .NET.

@Rom1deTroyes
Copy link

This morning, I wanted to edit some dotnet/Blazor code to lean how to develop an UI application for a python API I'm working on.

As a vim user on GNU/Linux (I use #neovim BTW), I started to search for an LSP and a debugger, and... well, now I'm here.

Any fresh news ?

(my workaround is to make my app with an open-source community leaded language, and tell the dotnet guys to include it in an iframe, claiming that microservices is the future, but, it will take time to moving their mentality :-)

@pm4rcin
Copy link

pm4rcin commented Feb 22, 2023

This morning, I wanted to edit some dotnet/Blazor code to lean how to develop an UI application for a python API I'm working on.

As a vim user on GNU/Linux (I use #neovim BTW), I started to search for an LSP and a debugger, and... well, now I'm here.

Any fresh news ?

(my workaround is to make my app with an open-source community leaded language, and tell the dotnet guys to include it in an iframe, claiming that microservices is the future, but, it will take time to moving their mentality :-)

You can use netcoredbg in the meantime.

@Rom1deTroyes
Copy link

You can use netcoredbg in the meantime.

As it seems to be the only (legal) usable option for now, I use it for now (with no issues 👍), but the main problem is not having a common debugger : could you imagine using different linters or test frameworks in a same team ?

@ShalokShalom
Copy link

ShalokShalom commented Feb 27, 2023

Let's switch to netcoredbg. The problem is, that people still use Omnisharp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests