I figured this might be a good place to ask this question. I'll repost a comment I made on /r/programming in a thread about Mono:
I'm currently working on a team developing a distributed server application in .NET, and we tried to run it on Mono early this year. There were some portability headaches with some libraries, but it wasn't that big a deal.
What was a big deal was performance and stability. On similar hardware, the .NET runtime on Windows outperformed Mono by a factor of 4 to 1. We were able to improve this by tweaking GC settings and building our own Mono runtime with LLVM support, but we found it to be unstable, and still only achieved half the performance of the Windows version.
This was on the last version of Mono to ship before .NET Core was released, and Mono incorporated a lot of MS code into Mono 4. Next year we're planning to investigate whether Mono 4 is significantly faster and more stable, or if we can run a slimmed-down version of our server on .NET Core for Linux.
What I'm interested in are insights into how you actually use CoreCLR.
- What is your development environment like? Are you using Visual Studio, Visual Studio Code, Monodevelop, something else?
- Are you targeting Windows and Linux, or Linux only?
- Did you port an existing .NET project to CoreCLR, or start from scratch? If the former, what were the biggest challenges? If the latter, what made you choose CoreCLR over some other platform?
- Obviously any other insights or experiences you'd like to share are welcome. 🙂
by EntroperZero via /r/csharp