Now, the question for me is whether this is worth it for .Net - is Mono so good, that one would want to lock himself into a Linux-only environment like this?
Docker: well, this is the subject of the post.
Mono: Mono is an application runtime (specifically an open-source implementation of the CLR) just like the JVM (yes, a 'Virtual Machine' but not virtualization, I would argue, in the sense that you are stating there is too much of).
Obviously if you had .Net apps and a Windows server environment you would just deploy .Net apps to it. But there might be scenarios in which this is useful. Perhaps migrating away from Windows servers to Linux, but not wanting to rewrite the C#/.Net apps in a new platform. Although whether Mono would be able to run those apps satisfactorily (the coverage of the SDK is not complete) is of course up for debate.
Client-side. No WPF and WinForms is dreadfully incomplete.
It's a no go. If you start on Mono and deploy to .Net I imagine it'd work but no-one realistically does that these days. If they were going to do that, Java would be a better choice for the product.
Not that I want to use any of them myself :)
I wish one day microsoft will be forced to port/support .NET (at least server components) to linux but I'm not holding my breath...
I'm currently in a web app team with a C# backend. Two devs run Windows, one has a Mac, and one runs Ubuntu. It works great. And yes, we deploy to Linux using Docker.
I agree with you but I wouldn't do it myself.
You say that like it's the most trivial thing in the world. Most people attempting Mono have been loyal Windows-based .NET developers for years. Mono only has value for them if they can port their legacy apps from Windows and .NET to Mono.
then it cannot replace .net .You can put it every ways you want serious C# and .net development is windows only.
Mono doesnt run every C# library out there.
The people pushing mono here dont have to face the consequences of that choice.
It's easy for them to say "it just works", they wont be around when one realises it doesnt work. Dont use mono thinking it really works.It's an experiment.
In this particular case it makes something otherwise tedious much simpler, which is what adding abstraction is always about.