Live data from Hacker News

Introducing .NET Standard

blogs.msdn.microsoft.com

81–90 of 154 posts

Re: Introducing .NET Standard

#81

Earlier quoted context omitted.

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.

.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. https://en.wikipedia.org/wiki/.NET_Framework

[deleted]

Re: Introducing .NET Standard

#82
post #79
post #41

Earlier quoted context omitted.

Not quite (I think): .NET Standard is an API definition, or rather a versioned set of them. ".NET Framework" (e.g 4.5) "implements" that definition, with some extra features to boot. ".NET Core" also implements it. It's a cut-down (though not very), cross-platform implementation of the .NET Standard. Mono is another implementation of the standard.. cross-platform too, but this time compatible with the actual .NET Fra…

R U saying that (currently) Mono is a superset of Core ? So i am starting with a large and varied Win code base, i will have an easier time porting (as much of it as possible) to Mono rather than Core ?

Mono is not a direct superset of Core, but yes if you have an existing large .NET application you might have an easier time working with Mono than Core. Some of that may change as Core starts to get closer to .NETSTandard 2.0, depending on what sort of a legacy codebase you refer to. (That is, Mono has an okay-not-great emulation library for System.Windows.Forms, but it seems like it may be unlikely for .NET Core to have anything similar.)

Re: Introducing .NET Standard

#83
post #46

I am not a .NET developer. But, Core / Framework / Standard nomenclature is very confusing. Windows and Universal Windows Platform (UWP) also adds further confusion. They should explicitly define namespaces : 1. XAMARIN namespace as cross platform APIs for .NET ecosystem - iOS, macOS, Android, Linux, may be Web ? 2. UWP/CASCADE ? namespace for Windows 10 systems. 3. WINDOWS namespace for backward compatible .NET Fram…

I can see that being a problem. Let me try to explain: * We've concrete .NET platforms, such as .NET Framework, .NET Core, and Xamarin. They are the moral equivalent of Linux distributions. * With .NET Standard we now have shared specification that dictates which APIs all these platforms have to implement. That's the moral equivalent of POSIX.

And where does fit UWP into this picture? Or what should I use if I want to develop apps for Window Store (or whatever the current name is for that).

Re: Introducing .NET Standard

#84
post #76

I'm still lost. What should I use and when "to go live"? We are small company with a lot of legacy code that wants to upgrade from 2.0 and 3.5. In 2016. Which .NET should we use ?

Legacy code would probably stick on the .NET Framework (with maybe Mono as an option to try for some cross-platform reach) for now.

New code is great in .NET Core when you have that option.

If you are building NuGet libraries (which seems doubtful given 2.0 and 3.5, but possible) you should try to target .NETStandard rather than .NET Framework or the previous best option PCL. But if you can't target .NETStandard for some reason, things will get better (soon).

Re: Introducing .NET Standard

#85

I understand that Microsoft has to clean up a lot of legacy baggage around this ecosystem, and it does look like the way forward is much clearer and nicer, but man, was there any way this could've been done without another ".NET "? I'm still figuring out .NET Core/4.5/Framework and all the ASP naming zaniness... and I'm a .NET developer! I do trust Microsoft that this is really, truly the last time this will have to…

http://www.joelonsoftware.com/articles/fog0000000339.html

The problem with that is, I feel like by adopting .NET I am the one being fired at by Microsoft

Re: Introducing .NET Standard

#87

Earlier quoted context omitted.

I can see that being a problem. Let me try to explain: * We've concrete .NET platforms, such as .NET Framework, .NET Core, and Xamarin. They are the moral equivalent of Linux distributions. * With .NET Standard we now have shared specification that dictates which APIs all these platforms have to implement. That's the moral equivalent of POSIX.

And where does fit UWP into this picture? Or what should I use if I want to develop apps for Window Store (or whatever the current name is for that).

The .NET stack in UWP is essentially .NET Core

Re: Introducing .NET Standard

#88

I don't understand this bit: "In order to allow .NET Framework 4.6.1 to support .NET Standard 2.0, we had to remove all the APIs from .NET Standard that were introduced in .NET Standard 1.5 and 1.6." Does this mean that STD 2.0 will support .NET 4.6.1 but not 4.6.2 ?

> Does this mean that STD 2.0 will support .NET 4.6.1 but not 4.6.2 ? No, it means that .NET 4.6.1 supports .NET Standard 2.0 but not 1.5 or 1.6; .NET 4.6.2 supports .NET Standard 2.0 and 1.5 but not 1.6, and .NET vNext will support all of 1.5, 1.6, and 2.0.

It also means that there are APIs in 1.5 and 1.6 that do not exist in 2.0. Seems to be a combination of deprecated without replacement and things that will be revisited for later 2.x versions. (Which is semver compliant, for what that is worth.)

Re: Introducing .NET Standard

#89

Earlier quoted context omitted.

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.

.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. https://en.wikipedia.org/wiki/.NET_Framework

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.'

Re: Introducing .NET Standard

#90

Earlier quoted context omitted.

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.

.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. https://en.wikipedia.org/wiki/.NET_Framework

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
Post reply on HN