I'm not really sure what you mean by "Communicate with anything that isn't Microsoft, then you can't use .Net" I've used .net to communicate to vast array of non-microsoft products, serial over usb, shared pipes, com-interop, services, message buses, webapi etc..
I mean it is honestly by far the best framework I've uses to communicate to everything from 40 year old hardware to modern web services and APIs.
As far as "run on anything that isn't windows" I'll grant you, that's a very emerging area, but you can run .net (or some flavor it) on a lot of different platforms.
Hell I've got a raspberryPi running windows 10 IOT with .net running on it, and it works like a top.
And statements like "If Microsoft doesn't pour a billion dollars into getting .Net ready for Linux in 2018, .Net is over." say's to me, you don't really have your finger on the pulse on the enterprise ecosystem at all.
You'll be hard pressed to find a language that has breadth and depth that .net has. Couple that with the new push to Open source, from an enterprise standpoint, it's a very attractive platform.