Settings

Theme

Microsoft removes hot reload from open source .NET, locks it to Visual Studio

github.com

164 points by JoshuaAshton 4 years ago · 61 comments

Reader

ripley12 4 years ago

I'm the author of that issue. I think I can be a little more frank here: this is a horrifically short-sighted decision that has me scared for the future of .NET. I have a tremendous amount of respect for the .NET team, and I'm very certain they're not the ones behind this.

I've been incredibly impressed by the hot reload solution that the .NET team has delivered. It's worked remarkably well in preview across multiple platforms and technologies. I've built my own hooks into the hot reload feature, and I've used it to get a tight feedback loop in many different kinds of applications. It's awesome.

I was so excited to be able to point to that feature and say "yes, .NET has a great developer experience - even outside Visual Studio". I haven't always been able to do that. And now... it's going away as a broadly available feature, so that some bean counter can use it to drive usage of a legacy IDE (I love Visual Studio, but let's not kid ourselves about where the future lies).

Immediate feedback (i.e. a fast inner loop) isn't a niche feature - it's an essential element of any creative activity (see: Bret Victor). They are crippling .NET and it hurts to see it.

  • tailspin2019 4 years ago

    Completely agree with you, and thanks for opening the issue and raising awareness of this.

    I too have been using it successfully in preview (having been waiting a long time for it). To drop it so close to the launch of .NET 6 is crazy to me.

    It’s difficult to take a charitable view of this. The messaging around “needing to reprioritise” feels very disingenuous to me.

    We were making so much progress…

  • blub 4 years ago

    There's a lesson that you may not want to learn here: the guaranteed disappointment in .NET and Microsoft can be reasonably easily avoided by avoiding them.

    • tluyben2 4 years ago

      As someone who suffered through MS and Oracle (Oracle directly killed one of my companies; MS did a lot of collateral damage) in the 80s and 90s, they have been more than nice for the open source community after Balmer. I hope they rectify this one.

      • rbanffy 4 years ago

        While they have been supporting open source (because, if they didn’t, they’d become irrelevant in no time), there’s nothing that says they aren’t just playing a long embrace, extend, extinguish game here. They may never reach the extinguish part because they can’t find a way to lock users in, but, still, they have interests that are still completely opposite to the welfare of an open source community.

        • tluyben2 4 years ago

          It seems unlikely to me: developers have power these days and their voice, threads like this, appear on radars of management. Even if some pencil pusher 'decided' something, there is no real way out in my opinion. This will probably be reversed and they really have issues because of the .net foundation fall out: as much as I wish to be 25 again, this is not the 90s anymore.

          • rbanffy 4 years ago

            I agree. They can lock in some users, but not that many. Their monopoly power is gone and it seems gone for good.

  • MauroIksem 4 years ago

    Visual studio is anything but legacy and I haven't found anything better. Where does the future lie?

    • atraac 4 years ago

      IMO - Rider. It's way better with its autocomplete, refactoring, renames, code completion, debugging, 3rd party code navigation, overall responsiveness. I've switched and I feel physically disabled whenever I have to do something in Visual Studio again. The only thing that is lacking in Rider is Azure support(plugin is meh), but I don't really use that anymore, we have CI/CD for that.

      • tester34 4 years ago

        Did you use Roslynator and Codemaid extensions? both are free and lighter than Resharper.

        Almost always when somebody shits on Visual Studio s/he either uses C++

        (and there's significant difference apparently between C++ and C#) or used it with Resharper, or without any extension/addon at all.

        Just try Roslynator if you haven't used it yet.

        • atraac 4 years ago

          I did use Roslynator. It helps with clunkiness of VS and gives you some refactorings but it felt far from Rider. Roslynator also doesn't fix abysmal code autocompletion. Even after the 'AI autocompletion' that VS introduced like 2-3 years ago, it was always just bad, classes you actually want to use are so far down I found myself typing whole class names by hand anyway.

      • tluyben2 4 years ago

        I try Rider ever so often but what specs are your system; it is basically unusable after I load one of our bigger projects... My m1 16gb just grinds to halt and before I had a beefy thinkpad with 32gb and that stalled completely too. While VS has no issue at all.

        • jen20 4 years ago

          Are you sure you’re running a native ARM build of Rider? And how are you running _Visual Studio_ (not VS Code) on an M1-equipped machine?

        • atraac 4 years ago

          I have a 16gb Surface Book 2 at work and a personal high specced Dell XPS 9570, both are perfectly fine, even with quite big solutions. Rider has fairly long startup because it's indexing _everything_(this is why code completion is so good) but other than that it is perfectly fluid to work with. With VS(2019) Roslynator worked fine but solution would also take a lot of time to load. I have more issues with Teams than any IDE to be honest.

        • spacentropy 4 years ago

          Have you tried Rider for Apple Silicon? You can grab a preview here https://rider-support.jetbrains.com/hc/en-us/articles/440192...

        • moogly 4 years ago

          I've heard JetBrains' IDEs have had performance problems on macOS forever from Mac users (is it because of the Java?). They work great on Windows and Linux in my experience.

    • Angius 4 years ago

      VS is great for desktop apps since it has the designer and some other tooling, but for everything else Rider is miles ahead, in my opinion.

      Especially when it comes to web. Visual Studio still dies of stroke as soon as someone dares whisper the word "razor" in its vicinity, while Rider has no problem understanding Razor templates and providing full autocompletion.

      Not to mention Rider is just straight out snappier. And has integrated terminal without any need for extensions.

      • vyrotek 4 years ago

        Unfortunately, I need SQL Project support before I can ever consider switching to Rider. I could almost move to VSCode for everything but MS refuses to implement nested files. Currently I do prefer writing C# in VS though.

    • aliswe 4 years ago

      ever tried razor auto indent? the nuget pm ux? ...

  • deburo 4 years ago

    I understand the huge disappointment but there’s a bit of hyperbole there. Anyway, lets hope they reconsider w/ .net 7. At the pace they’re going, in a years time.

    • ripley12 4 years ago

      Not hyperbole.

      If .NET is going to stay relevant in the long run, it needs a better reputation for cross-platform development and much better tooling outside of Visual Studio. Newcomers to the language expect it to work well in VS Code, and they are frequently disappointed.

      This decision moves .NET backward in areas it already needs to do better in, and to add insult to injury it does so by deleting already-working code.

      • deburo 4 years ago

        It's disappointing that they want it to be exclusive to VS (that giant turtle) right now, but it's a new Hot Reload feature. For most existing .NET devs, it's business as usual.

        It may set a trend in which VS is pushed as the tool of choice to develop in .NET, which would be a total bummer. I'm a bit skeptical about this since they would be damaging their huge investment in VSCode and cmdline tools. As far as I know, Azure is still their priority. What happened to their leadership to cause such a reversal? Pressure to sell more VS licenses? Maybe, but it still seems doubtful.

        I'm giving them the benefit of the doubt until they either explain themselves better, or they release .NET 7 without any goodies to the cmdline devs.

    • tluyben2 4 years ago

      As someone who has put the future of my company on .net core this is not hyperbole; this is quite a worrying development. I did not pick Java because .net core has served me well when I build some prototypes 5 years ago (the 15 years before that we did mostly but I sold that company and all my colleagues were tied in the sale, willingly so I could re evaluate tech).

devwastaken 4 years ago

.NET is one of those languages you want to give a chance, and every time you do, it does something incredibly short sighted and harmful to itself.

You just can't change Microsoft. You can put fancy new skins on things and say you're part of the cool kids, but remember the people who made all of Microsoft s terrible moments aren't the young devs that care. It's management.

The only way I will ever use .net is if an actual open source implementation detached from MS happens. Openjdk it.

  • solarkraft 4 years ago

    I ran across this recently when I wanted to give C# a chance again with a build of the VSCode code base (which everyone should use, also known as Vscodium). Well, guess what: The debugger only runs on the proprietary version of VSCode. The one with the telemetry and nagware.

    Congrats on all the foot-shooting, Microsoft. Just as some people think you've changed, reverse course. Billions well spent.

  • lostmsu 4 years ago

    There's already Mono.

    • demetrius 4 years ago

      Mono developers have been part of Microsoft for some time already.

      And it's unlikely that Mono will become a viable alternative, since there's a conflict of interests: Microsoft wouldn't want you running arbitrary .NET applications on Linux, they want you to buy Windows.

    • tluyben2 4 years ago

      Mono is quite worthless server-side compared to .net core 5.

tailspin2019 4 years ago

This is a terrible decision. The feature already works, and if they’re not happy with it, they could just slap a preview/beta flag on it in the docs like they do for many other things.

Instead, they actually ripped out the code.

Other web frameworks have had this functionality for years. .NET just finally caught up, and then they drop it.

  • VortexDream 4 years ago

    They even locked the PR for the change to prevent it being discussed. This is disgusting behavior.

fartcannon 4 years ago

At some point you have to start asking yourself, why do I tolerate this stuff when there are better alternatives elsewhere?

Ditch Microsoft. Ditch closed computing.

  • Angius 4 years ago

    I haven't found a more pleasant language and ecosystem to use than C#. Where am I going to go, Java with its verbosity, so my projects double in LOCs? Rust, with its cliff of a learning curve and alien syntax?

  • tluyben2 4 years ago

    Better is in the eye of the beholder; in my business you can choose .net or Jvm. And then c# or Java, not f# or clojure.

phendrenad2 4 years ago

Welcome to corporate-owned open-source. You COULD fork .NET and add hot-reload back in. But you won't. And they know it.

  • oaiey 4 years ago

    Well, try to squeeze something into Linux without Linus approval. Every project has a ultimate authority somehow.

    But you are completely right. Especially with the last sentence.

  • mycall 4 years ago

    I wonder how hard to diff the feature back in.

    • Angius 4 years ago

      It's, apparently, a couple thousands lines. It could, perhaps, even be made into its own separate tool. Haven't looked at it myself, though.

Angius 4 years ago

Let's just say that this decision made me reinstall Elixir and open up Phoenix docs... I've been meaning to take a look at them and now I got the push.

Now, I don't think I'll rewrite my current projects in Elixir, far from it, but just in case...

jung_j 4 years ago

It looks like they'll revert the change: https://github.com/dotnet/sdk/pull/22262

  • VortexDream 4 years ago

    Sort of nuts that it is solely reliant on Microsoft to approve this change. Calls the whole .NET Foundation into question, imo. What good is open source if the sole steward has interests that conflict with the overall well-being of everything under the NET umbrella.

  • jung_j 4 years ago

    Edit: Tough this is a community contribution with no official approval yet.

rvz 4 years ago

Extend. So you can't use this feature on Jetbrains Rider or any other app other than Visual Studio.

This is typical Microsoft, so it's unsurprising. But they have a strange way of 'embracing' open source.

  • WalterGR 4 years ago

    It’s their own code. You’re accusing Microsoft of EEEing their own code?

    • sterlind 4 years ago

      EEE isn't about the code, it's about the community. They brought in a lot of people from the Linux world through .Net Core, proper Linux support and porting tons of libraries. They could next try to convert those to paying customers by locking them into VS.

      I work at MS, and I love .Net, but I'm really frustrated at this. I have a disability and VS Code is far more accessible for me (b/c extensions), but it's painful getting things done compared to VS.

      • WalterGR 4 years ago

        I think - though I can’t recall any on the spot- that there are “Open Source Companies” - that give away the main thing, but charge for advanced features. Any idea if this is the case?

vbilopav 4 years ago

They are reverting it back https://github.com/dotnet/sdk/pull/22262

  • CodesInChaos 4 years ago

    That looks like a pull-request by a random github user, and the approvals don't appear to be by maintainers either. So this PR means little.

  • bravetraveler 4 years ago

    Little more than a troll - a third party clicked the revert button, basically.

    Wouldn't wait around for it to be reviewed/approved... but I'm willing to be surprised.

  • oaiey 4 years ago

    They are not. Even if they agree with the community. It is too late for release timeline of .NET 6.

bob1029 4 years ago

The way I deal with all of this (we are a pure Microsoft shop), is to simply pretend like MS is another flavor of Apple, and that I shouldn't expect anything to work outside of the walled garden. Pay to play, rug taken out from under at worst moment, etc. All par for this course.

Once you accept the nature of the abuser, it's a lot easier to get productive and back to some state of happy.

Is Microsoft raping and pillaging OSS? Kinda maybe in some ways... Are they providing incredibly powerful tools and platforms upon which ordinary assholes like myself can build neat shit? Yes also.

I dont think we should always expect to have our cake and eat it too. Seems like some days we are allowed to, and on others we are reminded that magic is not always free.

john_gihhins 4 years ago

Just a long time lurker here, but I don’t remember anyone mentioning a tool I’ve been using: LiveSharp at www.livesharp.net -> it worked much better than MS tooling in VS2022. Disclaimer: primary Xamarin development.

sander1095 4 years ago

Perhaps even more concerning is the possible removal of dotnet watch entirely, crippling the productivity of cli users as a result. I created an issue about that here: https://github.com/dotnet/sdk/issues/22265

doker0 4 years ago

Quickly guys and gals. The only way to really keep this feature and allow an incentive for VS team to develop the software is to figure out a business plan for MS. There's no big progress without VS designers and tools for new features, and there is no big step forward without .net cross-platform adaptation including all kinds of devices. They are not going to provide all tools for all platforms, but they still have to have their playground called VS to push new features (like the mentioned Azure support). Quickly guys and gals, give them a sustainable business idea.

Shadonototra 4 years ago

"your language is not backed by a big corp, therefore it is useless"

This aged very well..

oaiey 4 years ago

A question: is this MIT code developed also by non Microsoft developers? Because than free labor is hijacked into a commercial product. Which would be very unethical

darepublic 4 years ago

Revenge of the donkey

anon0078910 4 years ago

Not sure what are you complaining about. If you are single developer or small enough entity who can not afford, you have Visual Studio Community for FREE. However, if you are making good money developing software then you spend some of it in tooling. Why should your company make the profit but not MS who invests heavily in their platforms, tooling and entire eco system so you can build and run your applications and services (which makes you money in the first place). I have not seen any more generous company than MS. Have you?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection