You have to meet clients where they are. These days, clients are far less likely to find you if you only have a site with no social media presence.
dan
So people in rural areas without good internet, or places where the network is airgapped, can't use them at all? Seems like there's be a way around it.
I'm a C# developer and run .NET apps on Linux all the time. I usually work on CLI and server apps, but recently released my first Linux desktop app written in C#: https://flathub.org/apps/com.daniel15.wcc
Even before .NET Core, I was using Mono to run C# apps on Linux. There used to be quite a few GNOME apps written in C#.
There’s .NET and then there’s .NET Core which is a mere subset of .NET.
Nope. The old .NET Framework has been deprecated for a long time. The latest version, 4.8.1, is not very different to 4.6 which was released 10 years ago.
The modern versions are just called .NET, which is what .NET Core used to be, but with much more of the framework implemented in a cross-platform way. Something like 95% of the Windows-only .NET Framework has been reimplemented in a cross-platform way.
The list of .NET stuff that will actually run on .NET Core (alone) is a barren wasteland.
All modern .NET code is built on the cross-platform framework. Only legacy apps used the old Windows-only .NET Framework.
If you get the free community version of Visual Studio and create a new C# project, it'll be using the latest cross-platform framework. You can even cross-compile for Linux on a Windows system.
I totally get where you're coming from. It's hard to find devices like that. I think the issue is that regular customers are demanding the smart features, and using them without caring about privacy aspects.
If it wants a network then stick it on an isolated VLAN with no internet access.
You can have a smart TV but never set up any of the smart features. I have two LG OLED TVs but rarely touch anything on the TV itself. I've got Nvidia Shields for streaming and turning it on or off also turns the TV on or off. Same with my Xbox.
I just need to figure out if I can use CEC with my SFF gaming PC (so that turning it on also turns the TV on, and turning it off turns the TV off), then I won't have to touch the TV's remote again.
Ethernet port or wifi are good for controlling the TV using something like Home Assistant. I have my TVs on a separate isolated VLAN with no internet access. I have a automation that runs when the TV turns on, to also turn on some LED lights behind the TV.
Thanks, this is a good insight.
That's a very old way of thinking of things. C# has been cross platform for a long time.
Almost everything ever written in C# uses Windows-specific APIs
Not really. Most C# apps use .NET (since the framework and standard library is quite feature-rich) rather than direct Win32 calls, and .NET is cross-platform. A lot of web services are written in C# and deployed to Linux servers.
basically no one installs the C# runtime on Linux anymore
You can compile a C# app to a single executable that doesn't require the framework to be installed.
Are you running Jellyfin, the *arr suite, slskd, or Technitium DNS? They're all written in C#.
Yeah it's definitely not possible to reach 50MB with a Node.js Docker image, but <150MB should be doable with a distroless base image + compiling the app into one JS file (for example, using Parcel or esbuild).
It's possible to reach ~50-60MB Docker image with a C# app. Rust and Go definitely produce more compact binaries though.
This makes sense! You get the same advantage if the app uses Go or C# though, and both of those can compile to a single statically-linked executable too.
if it were written in NodeJS or Python or something I'd be less interested.
Does it matter if it's running in Docker and the container is lightweight (say less than 50MB), though? I like apps being written in a language I know well so I can contribute if needed, but other than that, I mostly treat a Docker image as a black box.
You still need to know what database system is being used in order to make backups of the database. You can't just snapshot or backup the data directory while a database is running, because you might end up with an inconsistent state that won't restore properly. You need to either stop the DB before doing the backup, or use the relevant DB-specific tools to perform a backup.