Live data from Hacker News

Giving Mono Souper Powers

mono-project.com

11–20 of 29 posts

Re: Giving Mono Souper Powers

#11
post #8

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

I can't share the name, but we've built a complete enterprise stack on Mono. There are several parts: - Server, Nancy2/Marten/Hangfire, runs on linux - Headless clients for linux and Windows (x64) - GUI clients for macOS, linux and Windows (x64) The server is deployed as a static fat binary. The headless clients are static binaries for linux and .NET proper for Windows. The GUI clients use Eto, which in turn means: -…

Try Xamarin Profiler as a GUI :). It supports loading mlpd files and makes your life 10x easier (if it doesn‘t crash).

Re: Giving Mono Souper Powers

#12
post #8

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

I can't share the name, but we've built a complete enterprise stack on Mono. There are several parts: - Server, Nancy2/Marten/Hangfire, runs on linux - Headless clients for linux and Windows (x64) - GUI clients for macOS, linux and Windows (x64) The server is deployed as a static fat binary. The headless clients are static binaries for linux and .NET proper for Windows. The GUI clients use Eto, which in turn means: -…

How's Eto? It seems really cool but it's backed by a small company, I think there's just 1 developer.

Also, do your GUI clients have fancier UIs? For example, have you implemented your own grid view, something where you put custom controls in the cells, images, graphics, etc.?

Re: Giving Mono Souper Powers

#13
post #12
post #8

Earlier quoted context omitted.

I can't share the name, but we've built a complete enterprise stack on Mono. There are several parts: - Server, Nancy2/Marten/Hangfire, runs on linux - Headless clients for linux and Windows (x64) - GUI clients for macOS, linux and Windows (x64) The server is deployed as a static fat binary. The headless clients are static binaries for linux and .NET proper for Windows. The GUI clients use Eto, which in turn means: -…

How's Eto? It seems really cool but it's backed by a small company, I think there's just 1 developer. Also, do your GUI clients have fancier UIs? For example, have you implemented your own grid view, something where you put custom controls in the cells, images, graphics, etc.?

We maintain internal forks of Eto and Nancy. They are easy enough to grok for us to modify and maintain, even when development upstream dies.

Most of the user interaction is happening via the web app served by the server. The local clients are "just" for configuration, comparable in complexity with e.g. Tunnelbear or Glasswire. We use some custom grid elements, which have been easy to implement.

Eto is the only framework out there which gives you native GUIs everywhere. That's what was most important to us. Native speed, native OS integration (tray menus, notifications etc.). It's also really easy to learn for devs who might have been WPF-exclusive before.

Re: Giving Mono Souper Powers

#14
post #12

Earlier quoted context omitted.

How's Eto? It seems really cool but it's backed by a small company, I think there's just 1 developer. Also, do your GUI clients have fancier UIs? For example, have you implemented your own grid view, something where you put custom controls in the cells, images, graphics, etc.?

We maintain internal forks of Eto and Nancy. They are easy enough to grok for us to modify and maintain, even when development upstream dies. Most of the user interaction is happening via the web app served by the server. The local clients are "just" for configuration, comparable in complexity with e.g. Tunnelbear or Glasswire. We use some custom grid elements, which have been easy to implement. Eto is the only frame…

A sort of follow-up question: have you contributed things back to Eto? Were they responsive?

Thank you for your detailed answer, by the way! :)

Re: Giving Mono Souper Powers

#15

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

Duplicati uses C# and I use it on Linux, but I know few people using it on windows too.

On Linux the UI is via the browser (the service has a web interface).

I think this is the only C# project I use currently.

Re: Giving Mono Souper Powers

#16
post #14

Earlier quoted context omitted.

We maintain internal forks of Eto and Nancy. They are easy enough to grok for us to modify and maintain, even when development upstream dies. Most of the user interaction is happening via the web app served by the server. The local clients are "just" for configuration, comparable in complexity with e.g. Tunnelbear or Glasswire. We use some custom grid elements, which have been easy to implement. Eto is the only frame…

A sort of follow-up question: have you contributed things back to Eto? Were they responsive? Thank you for your detailed answer, by the way! :)

No, most of the small customizations are very specific to our application. Mostly how closing events or notifications are handled. TBH at least I don't think much about Eto day to day, it's just there and works. Questions mostly have been answered by existing issues, where the author seems responsive enough.

Re: Giving Mono Souper Powers

#17

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

[deleted]

Re: Giving Mono Souper Powers

#18

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

I am the main developer on an open source app called Radarr ( https://github.com/Radarr/Radarr ). It focuses on automatically downloading movies and managing said movies. While we have used mono only one „one“ platform technically (Unix), I would still like to add my own experience, since we encountered some different behaviour on macOS and Linux. Also I have spent the last week or so tracking down memory leaks for o…

Sonarr and various similar utilities such as Emby also use .NET. The memory leaks of Emby are killing me on a Raspberry Pi but otherwise the performance is OK. And you can safely restart the service (be it Docker or native systemd/sysv or whatever) at 4 AM.

What are you going to switch to, btw?

Re: Giving Mono Souper Powers

#19

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

Keepass2 runs on Mono.

Re: Giving Mono Souper Powers

#20

I have a more general question: has anyone here built a truly portable app using Mono (i.e. one that runs on several platforms, has a reasonable number of active users and is supported) and can share some insights regarding performance and other issues? If you started today, would you still use Mono?

Smilebooth's backend runs on mono on linux, but for private / no internet events we run a local version of the server on .net 4.x and windows. Same binary. F#/suave.io server. I was shocked ~5 years ago when I tried the .net binary on mono/linux and it just worked (iirc the only change was the command line arguments passed to imagemagick). But it did and it has, so no need to change.

I left that project two years ago but if starting something similar today I'd probably go with .net core. Not because of any issues with mono, but core just seems like the future. I didn't even realize that mono was still in active development, though I'm not really following that field anymore, so.

Just for the record, I never did notice any memory leaks that others complain about. Our servers stayed running for months at a time with no noticeable leaks.

Post reply on HN