Live data from Hacker News

.NET Standard 2.0 is final

github.com

31–40 of 69 posts

Re: .NET Standard 2.0 is final

#31
post #6

Does anybody have any idea what is the total number of APIs available in .NET Framework? I am interested how big of a subset .NET Standard is.

The .NET Framework has approximately 250k APIs. The majority are from the application models stacks (WinForms, WPF, and ASP.NET).

.NET Standard has about 32k APIs that set is pretty close to all the APIs that are part of .NET Framework that aren't specific to any application models. However, we still have a few things we need to bring to .NET Standard.

Re: .NET Standard 2.0 is final

#32

So just so I'm clear, .NET ECMA Spec ⊆ .NET Standard ⊆ (.NET Core ∩ Mono ∩ Xamarin ∩ Unity) ⊆ .NET Core ⊆ .NET Framework Correct?

ECMA spec is for the CLI, essentially the specification for runtime like type system and GC and all the other things that make an environment work at all Net Standard is a specification of APIs. So in order to be compliant to the standard you must have a class named X with parameters string Y, int Z. "Net Framework" is the name for the Windows "full .net framework" -- this doesn't have a descriptive name since it was…

To be more clear, I wasn’t actually confused, just commenting on how confusing the various meanings of “.NET” are getting, and maybe helping clear up some of the confusion for people who think visually and remember their discrete math (set theory).

Of course it’s still helpful to plenty of people reading this thread to define all those terms. :)

Re: .NET Standard 2.0 is final

#33

So just so I'm clear, .NET ECMA Spec ⊆ .NET Standard ⊆ (.NET Core ∩ Mono ∩ Xamarin ∩ Unity) ⊆ .NET Core ⊆ .NET Framework Correct?

Not quite. See this comment for the relationships of the specs: https://news.ycombinator.com/item?id=14971769 .NET Framework, .NET Core, Mono, Xamarin, and Unity are all implementing all the .NET specs. They are share many aspects, but each also bring specific capabilities that the others don't have, so its not very useful to think of these having a superset/subset relationship.

Hence the intersection symbols.

Re: .NET Standard 2.0 is final

#34
post #9

I don't really get what the purpose of this spec is. I would much prefer if they spent the time on improving the .NET Core story. In typical MS manner .NET seems to get more confusing all the time.

I can totally share the sentiment around complexity. We're working hard towards reducing it though and .NET Standard is one piece of the puzzle. Let me try to explain:

If you're a typical .NET customer, then you're used to the .NET Framework, which also means you're probably only used to doing development on Windows. That was no longer a viable strategy for .NET, so we're now pursing a cross-platform strategy. A good chunk of the complexity you see today is a result of the changed dynamics of software engineering: the PC is no longer the only relevant form factor, server applications have to be rethought as scalable cloud services, and the UI paradigm is no longer a sequence of dialogs but has to be tailored to multiple clients, and on top of that you now also have to deal with multiple different operating systems.

.NET has a long standing history of embracing the underlying platform (hello COM, hello P/Invokes) while also providing a ton of conveniences on top that make it approachable (hello WinForms). We can't really shield you from all the complexities that result from the changed dynamics. But what we can do is making it more consistent and productive.

Over the last years, various different .NET stacks were created, several of them outside of the Microsoft bubble (Mono, Xamarin, Unity). So in order to build modern experiences, you often have to use various different stacks to get the job done. We understand that this isn't free of challenges, which is why we try very hard to reconcile the differences. For instance, we acquired Xamarin to fully embrace the mobile support they offer and make it a fully integrated part of the .NET development platform. We changed the license on Mono to enable Unity to use the latest version and pick up innovation instantaneously. And we've created the

.NET Standard is a way to achieve API consistency between different .NET stacks. This makes it much easier for application and library authors to share code between different .NET implementations.

Our goal is to empower .NET developers to build any kind of app, for any kind of operating system. That's the world we live in now and we're fully committed to make this experience as productive as possible.

Re: .NET Standard 2.0 is final

#35

For people confused about what .NET Standard is and how it relates to .NET Core: Here's an FAQ: https://github.com/dotnet/standard/blob/master/docs/faq.md Here's a series of short videos from the product team explaining it: https://www.youtube.com/playlist?list=PLRAdsfhKI4OWx321A_pr-... Short excerpt from the FAQ: .NET Standard is a specification that represents a set of APIs that all .NET platforms have to implement…

Another analogy for .NET developers:

.NET Standard is like an interface

.NET Core is like a class that implements the interface

Desktop .NET framework is like a class that implements that interface

Mono is like a class that implements that interface

Like any other class/interface relationship, the class has to implement all interface members, but may add class specific features

Re: .NET Standard 2.0 is final

#36
post #9

I don't really get what the purpose of this spec is. I would much prefer if they spent the time on improving the .NET Core story. In typical MS manner .NET seems to get more confusing all the time.

I can totally share the sentiment around complexity. We're working hard towards reducing it though and .NET Standard is one piece of the puzzle. Let me try to explain: If you're a typical .NET customer, then you're used to the .NET Framework, which also means you're probably only used to doing development on Windows. That was no longer a viable strategy for .NET, so we're now pursing a cross-platform strategy. A good…

If you are at it maybe you can also rename it so that its name doesn't start with a point and you don't need to put points in the middle of the sentences.

Re: .NET Standard 2.0 is final

#37
post #21

Earlier quoted context omitted.

Question for you - I have created a few (okay, two) UWP apps, but the limited success of the store has made me look to using Xamarin. Only thing is, Xamarin's XAML is sufficiently different from UWP's XAML that I got disoriented and gave up. If I want to target cross platform apps (including Linux and Mac), should I wait for Xamarin Forms 3 or will UWP eventually expand to cover Mac & Linux? I'm only a hobby programm…

Microsoft is working out a XAML standard to cover that case. If you check BUILD 2017 sessions, there were a couple of talks about it.

Will the new XAML version (the first one in 10+ years!) finally solve the problems of excessively verbose syntax, excessive XML namespace imports, excessive binding syntax options, and excessive-needing-to-search-stackoverflow-to-do-the-simple-things? :)

Any news on allowing JSON or another syntax as an alternative to XML-based XAML?

Re: .NET Standard 2.0 is final

#38
post #9

I don't really get what the purpose of this spec is. I would much prefer if they spent the time on improving the .NET Core story. In typical MS manner .NET seems to get more confusing all the time.

I can totally share the sentiment around complexity. We're working hard towards reducing it though and .NET Standard is one piece of the puzzle. Let me try to explain: If you're a typical .NET customer, then you're used to the .NET Framework, which also means you're probably only used to doing development on Windows. That was no longer a viable strategy for .NET, so we're now pursing a cross-platform strategy. A good…

I am not sure if you are going about this the right way. Instead of doing .NET standard, .NET Core and .NET full framework with overlapping functionality, I think it would better to have .NET Core as the underlining cross-platform standard. Then add WPF, WCF and whatever as separate packages that may be cross-platform or not.

The whole thing reminds me a little of the UI situation. Start with Winforms, don't improve it but start WPF (and keep Winforms), then start Silverlight, then start UWP. All in parallel instead of building on top of each other.

MS doesn't need more more frameworks, but less.

Re: .NET Standard 2.0 is final

#39
post #21

Earlier quoted context omitted.

Microsoft is working out a XAML standard to cover that case. If you check BUILD 2017 sessions, there were a couple of talks about it.

Will the new XAML version (the first one in 10+ years!) finally solve the problems of excessively verbose syntax, excessive XML namespace imports, excessive binding syntax options, and excessive-needing-to-search-stackoverflow-to-do-the-simple-things? :) Any news on allowing JSON or another syntax as an alternative to XML-based XAML?

JSON is no where near expressive enough to replace XAML, it would look a lot worse than what we have right now.

The XML-like syntax of XAML isn't the problem, it separates object properties from child content well due to it's nature - the bigger issue is how difficult binding syntax is to grok by anyone who hasn't been working with it for quite some time.

Re: .NET Standard 2.0 is final

#40
post #38

Earlier quoted context omitted.

I can totally share the sentiment around complexity. We're working hard towards reducing it though and .NET Standard is one piece of the puzzle. Let me try to explain: If you're a typical .NET customer, then you're used to the .NET Framework, which also means you're probably only used to doing development on Windows. That was no longer a viable strategy for .NET, so we're now pursing a cross-platform strategy. A good…

I am not sure if you are going about this the right way. Instead of doing .NET standard, .NET Core and .NET full framework with overlapping functionality, I think it would better to have .NET Core as the underlining cross-platform standard. Then add WPF, WCF and whatever as separate packages that may be cross-platform or not. The whole thing reminds me a little of the UI situation. Start with Winforms, don't improve…

.Net Standard isn't an implementation, it's a specification. Code that targets .Net Standard is guaranteed to run on any compatible runtime that supports it.

.Net Core has API's that aren't applicable to the Windows full-fat Framework, Mono or Xamarin - you don't need or want them there.

Post reply on HN