Professional C# .NET developer, React and TypeScript hobbyist, proud Linux user, Godot enthusiast!

https://blog.fabioiotti.com
https://github.com/bruce965

  • 1 Post
  • 15 Comments
Joined 3 years ago
cake
Cake day: March 9th, 2022

help-circle
  • 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#).



  • bruce965@lemmy.mltoLinux@lemmy.mlRecommend me a scripting language
    ·
    edit-2
    1 month ago

    I thought so. Although almost nothing for modern standards, 60MB is not exactly tiny. Sorry about that.

    On a different note, a repository is always a good thing imho. If you'd rather not have to worry about the dependency-pull step you can always include the dependencies with your sources, or just limit your code to using features included in the standard library.


  • bruce965@lemmy.mltoLinux@lemmy.mlRecommend me a scripting language
    ·
    edit-2
    1 month ago

    JavaScript through Node.js, or TypeScript through Deno if you like typed languages. They both check all your boxes (just check the size of the executables to make sure that it's what you would consider "small footprint").

    Both languages and runtimes are quite popular, so you will find any answers on StackOverflow.

    They are both single-executable with little dependencies, and Deno can also compile your scripts to self-contained executables.

    As a bonus, both support the vast and extensive NPM package repository where you can find all sort of libraries for even the most complex tasks.

    And they work with your favourite IDE or editor, not just syntax highlighting, but also contextual suggestions.







  • bruce965@lemmy.mltoLinux@lemmy.mlTrying to ditch windows
    ·
    edit-2
    6 months ago

    Yes, you can develop in .NET on VSCode and the debugger works on Linux too.

    There is a Docker version of SQL Server which funnily enough is equivalent to the enterprise version (rather than limited like SQL Express). You can use it for free as long as it's for development purposes only.

    There is no SQL Management Studio though.

    One option would be to use PostgreSQL instead. Entity Framework makes it almost free to replace the database anyways (unless you are doing some db-specific things).

    There are some other minor annoyances or missing features, it might bother you; but depending on how you are used to work, you might not even notice. But, hey! you are on Linux now, you get all the benefits of a UNIX operating system, it will be worth it for sure, right? (Yes, imho)


    As for gaming, I only do light gaming so I probably don't count. I use Heroic Launcher and it works wonderfully out of the box 50% of the time, the remaining 50% you can probably make it work as good as on Windows if you are persistent enough.

    Oh, and sometimes some games run better on Linux than on Windows, but I would say most of the time they run a bit worse.




  • I work professionally from Windows, and as a hobby from Linux. My tool of choice for coding in .NET is Visual Studio Code (not FOSS, but there is a FOSS version which is just a bit more limited). It's not as complete as Visual Studio, but it's much faster, it has all the basic tools including a debugger, and it's much more customizable.

    Also if you have never done it before, you might love dotnet watch which works with any IDE and lets you make realtime changes to your code while the application is already running.

    As for UI, my personal choice is deploying a static website on localhost through Kestrel (it's less than 100 lines of code for a fully configured one), and then let the user's browser take care of showing the UI. You could use Blazor if you really want to use C# all the way, but my personal recommendation is to stick to web technologies such as TypeScript and React (using either Parcel or Vite to build your project). Making your UI web-friendly also makes your app cloud-ready, in case tomorrow you will decide that's something you need.

    Finally, you can now deploy .NET apps as a single self-contained executable on all major platforms. But as already recommended by other users, I would keep adopting a web-first approach and go for Docker, and eventually Kubernetes. It's a lot of work to understand it properly though, so perhaps you can start studying this topic another day in the future.

    Feel free to ask me anything if you have questions.


  • bruce965@lemmy.mltoLinux@lemmy.mlFOSS 88 key pianos
    ·
    11 months ago

    Well... if you want the very minimum necessary to play piano, I've written this tool to do it with just a MIDI keyboard and a modern browser.

    http://tools.fabioiotti.com/midi-synth/index.html https://github.com/bruce965/midi-synth