.NET on Linux–An Experiment

I may have cut my teeth on non-Microsoft systems but the better part of my career was spent building most of my software with and for Visual Studio.  It was only in the last few years that the landscape changed and my work has been dominated by Linux, Java, and generally non-Microsoft systems.  I’ve thoroughly enjoyed the explosion of open source software and the ability to contribute to and use it.  I’ve also enjoyed being able to extricate myself from Windows.  But with Microsoft’s recent foray into open source and with the increasing stagnation and calamities in the Java community I’ve decided to give the .NET stack a while again, but with a twist.

If you asked me what me to name my favorite language I’d pick C#.  If you asked me what my favorite development environment would be it would be Visual Studio 2010/2012.  In recent years though the Visual Studio stack has become completely bloated.  What’s worse is it only runs on Windows.  That didn’t bother me when I was a mostly Windows user/developer, but over the years I’ve become a mostly non-Windows user.  In fact now I’m a mostly Linux user.  With the strides made in Mono and in .NET Core now, there is the opportunity to really try cross-platform (i.e. Linux) development of .NET.  It’s one of the reasons why I’ve decided to try to resuscitate the Sharpen project (see SharpenNG ).

I’m going to approach this by building two VMs: a Windows 10 one running the free Visual Studio 2015 stack, and a Linux VM running MonoDevelop 6.x.  I want to test true cross-platform development not “just Linux” or “just Windows.” Along with trying to determine the quality of the build chain and tools things I’ll be interested in exploring are:

  • Building command line tools
  • Building thick client UIs
  • Building RESTful web services
  • Building services using latest HTTP transactions
  • Going between Java and .NET
  • .NET Core vs. Mono vs. Standard .NET

My main development platform will be Linux, but I want to have the Windows platform for compatibility testing.  Already you can see a tremendous difference in footprint.  Whereas I had the entire Linux VM built and patched from scratch, with the MonoDevelop FlatPak installed in under 20 minutes, it took nearly that long just for Visual Studio to install.  Whereas the entire Linux VM with all the standard full Office Suite and development tools has a footprint of 7.3GB, Windows 10 all by itself had a footprint of 14GB.  Now that I have Visual Studio installed it’s up to 23 GB, three times the size.  Remind me again why I ditched Windows?