I’m about to start a new job working with C#/.NET and will try to practice before I start. How much of a pain is it to do on Linux?

  • dinomug
    link
    fedilink
    42 years ago

    Mono is the best open source free/libre??🤔 implementation of DotNet and CLI specification out there, it’s officially sponsored by M$. DotNet/C# it’s a great technology/platform BUT mostly of its ecosystem is M$/🍎 dependent, and therefore tends to work with it in proprietary environments 😢.

        • @[email protected]
          link
          fedilink
          1
          edit-2
          2 years ago

          It is specifically as you point https://github.com/dotnet/source-build

          It is WIP and not everything is built from source yet.

          These are the same reasons why OpenRA just download the DotNet package and embed it in the AppImage.

          To build DotNet, there is no full bootstrapping yet. As result, you cannot build DotNet with, for example, Mono which already supply this first thing.

          Nearly all .NET Core repositories require the .NET Core SDK to build. This is a circular dependency, which presents a bootstrapping problem.

          • dinomug
            link
            fedilink
            32 years ago

            Horrible 😨 . Surprising that the community of its developers accepts this. The Open Source Initiative has done a great job brainwashing 🧠 .

          • Bilb!
            link
            fedilink
            2
            edit-2
            2 years ago

            https://github.com/dotnet/source-build/issues/1930 Here’s more info about the bootstrapping problem if anyone is interested.

            The sequence of commits you’d have to build to get from one to the the other might be prohibitively long, and AFAIK nobody is tracking this. Fortunately we avoid using floating versions in our repos (we commit updated pinned versions into the repo source), so it should be traceable. But I don’t think we have tooling to do that tracing.

            It sounds like it might be theoretically possible, but unproven and not at all practical in the current scenario.

  • @[email protected]
    link
    fedilink
    2
    edit-2
    2 years ago

    You have MonoDevelop and Mono itself.

    I would recommend it over main DotNET for GNU/Linux environment and in general.

    It is compatible with main DotNet and, in comparison with DotNet, can be built at all from source, making it truly FLOSS.

    Edit:

    Don’t get confused by some people, Mono is not deprecated nor abandoned, it is even integrating some things from DotNet. As date of today is perfectly maintained.

  • @[email protected]
    link
    fedilink
    22 years ago

    incredibly easy with modern .net, you just have to make sure to install the dotnet package

    JetBrains Rider is a really good cross platform IDE, but you can also use whatever editor you want (and Visual Studio Code is pretty easy to get set up as well)

  • Bilb!
    link
    fedilink
    1
    edit-2
    2 years ago

    For simply practicing with C# and .Net you should have no trouble on Linux, but once you begin work it really depends on what version of .NET they’re using at your new job. If it’s modern (>= 5.0, or Core 1 through 3) you shouldn’t have any trouble unless they’re building Windows UI applications, but if it’s .NET Framework things get dicey. Mono doesn’t cover everything in .Net Framework and I would not count on it being a drop in replacement.

    It’s impossible for me to use a pure Linux environment for work because we maintain a lot of ASP.NET webforms projects running on .NET 4.5, but on the other hand when I want to use C# for making game projects with Godot or experiment with newer .NET stuff like Blazor there is no friction working with C#/.NET on Linux.

    Like @[email protected] mentioned, Rider is a fantastic IDE that is available to you if that’s your thing. I use it both on Windows and Linux, preferring it to Visual Studio. Rider is not free, however, and requires a license to use it beyond 30 days.