So I’ve done a bunch of application development in windows in C# and Java, and while Java stuff is pretty similar in Linux with Swing I’m not as confident in C# there (not too familiar with Mono), but I also want to diversify a bit too. Any recommendations?

  • jollyrogue@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    28 天前

    JetBrains Rider is probably the best C# IDE for Linux, and MS ported .NET server stuff a while ago.

    I’m not sure about C# GUI toolkits on Linux. WPF isn’t there, and I’m not sure how mature Maui is on Linux.

  • schizo@forum.uncomfortable.business
    link
    fedilink
    English
    arrow-up
    3
    ·
    28 天前

    Didn’t .net core depreciate the older .net framework stuff, and by extension Mono, and the target you should be looking at going forward is the new .net core stuff?

    (I’m more a janitor than a mechanic, so my understanding of what framework is or isn’t dead this week is probably lacking, but I recall seeing an awful lot of chatter going on about that.)

    • F04118F@feddit.nl
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      27 天前

      Yes, you are right.

      The old stuff, now no longer supported, is:

      • .NET Framework up to and incl version 4.8
      • Runtimes distributed as part of Windows
      • Mono is a Linux Runtime used for compatibility

      The new stuff:

      • .NET Core, up to and incl 3, more recent versions are named .NET from version 5 onwards (to prevent mixing it up with the old Framework)
      • Is completely cross-platform, natively
      • I don’t know about desktop specific graphical stuff but that probably depends on the specific library
  • bruce965@lemmy.ml
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    28 天前

    If it makes sense for your software, please consider giving it a web interface and turning it into a localhost-only web-service.

      • bruce965@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        27 天前

        Good separation between business logic and UI without effort, cross-platform UI in any language, possibility to turn it into a web-accessible service in the future, great choice of UI frameworks and battle-tested components if you decide to go for a web framework and language.

        As an example of a successful software that followed this approach: Synchthing. All versions run a local web service in the background. The Desktop version just opens a browser on the index page. The Android version is a native app that calls the exposed REST API on localhost, bypassing the web UI.

        As an example of a much more complex software, albeit not FOSS: EasyEDA. It’s a web software, but it also comes as a desktop app (which I never tried) which I assume is not much more than a frame for the web view.

        My recommendation: write the UI with React on Vite in TypeScript, and write the business logic in your general purpose language of choice (mine would usually be C#).