Re:Introducing .NET Standard
by MichaelGG on Monday September 26, 2016 @01:34PM
(#12583823)
Portability work started nearly 2 decades ago. .NET has been multiplatform from the start. Around the first release they even had an "open" source version that ran on BSD, thought not with all the libraries.
[ Parent
| on HN ]
Re:Introducing .NET Standard
by fail2fail2ban on Monday September 26, 2016 @02:04PM
(#12584108)
.NET was multi-language and C# was an open standard; .NET itself was not multi-platform. I was there at the start. I was a beta tester for the first Visual Studio.NET. The reason Mono exists is because C# is an open standard and Miguel and Xamian (or whatever they were calling themselves then) were able to create .NET from the ground up, called Mono.
I think MichaelGG is thinking of the Rotor "shared source" implementation for BSD, which was released around the same time as .NET for Windows as a proof of concept for implementing the .NET standards on other platforms. (These standards included CIL and the Common Type System, not just C#.) But as Michael says though it fell way short of full .NET, lacking many libraries and a lot of the optimisations of the Windows .NET implementation; and it wasn't open source in that you couldn't fork it, you could only look at the code 'under glass.'
The .NET design has always been multiplatform. MS has released code over a decade ago to demonstrate this: https://msdn.microsoft.com/en-us/library/cc749640.aspx
I get that you can jump through certain hoops to make cross-platform development possible, but the applications I've seen are 'all-in' with MS (even to the point of inappropriately depending on system services like ftp). Portability simply isn't the norm, and it's disingenuous to claim otherwise.
Yes, please let's not try to revise history. I've seen Microsoft evangelists play games like this, and IMO it's a terrible way to promote your preferred platform. .NET Core will stand on it's own merits, it doesn't gain from inaccurate statements about the past.
The actual design and standard are designed to be multiplatform. You can see it in a lot APIs, like Environment.NewLine -- not needed if you only target Windows.
MS released Rotor as a proof of concept. It's just an argument over implementations, which were admittedly lacking. And the standard parts are smaller than the whole .net bits MS shipped.