Add planning for .NET Standard vNext#785
Conversation
2e34e3b to
184d349
Compare
184d349 to
47626ef
Compare
1e28aee to
ccc4eb2
Compare
ccc4eb2 to
511b206
Compare
| concept and not ready for standardization) | ||
| * We should exlude `RegexCompilationInfo` as it throws on .NET Core & Xamarin | ||
| and only works on .NET Framework. Since there is no version of .NET Framework | ||
| implementing the new version of the standard, so... yeah. |
There was a problem hiding this comment.
Wording suggestion. I get the sentiment, but should probably rephrase for posterity.
| - .NET Core and .NET Standard aren't the same thing. People will expect that | ||
| the next version is `3.0` as that's what we called .NET Core. However, the | ||
| API set is closer to `2.1` and argubly makes more sense within the context | ||
| of the standard. |
There was a problem hiding this comment.
What would the plans be for incorporating .NET Core 3 API enhancements? Would that be .NET Standard vNext++?
There was a problem hiding this comment.
What would the plans be for incorporating .NET Core 3 API enhancements?
We want to avoid defining the standard with APIs that are in-flux as this violates our inclusion principles.
Would that be .NET Standard vNext++?
Correct
There was a problem hiding this comment.
Wouldn't it be ill-advised to remove a lot of existing functionality and call it an incremental version? While I'm all for the removal of things like data annotations out of standard, calling it an incremental change while containing application breaking features seems wrong to me
There was a problem hiding this comment.
Sorry, I see the confusion. I'll update the document.
Exclusion here means "excluded from the set of candidates". These were never part of .NET Standard.
|
|
||
| * **Include core-APIs working with spans**. While `Span<T>` is available as a | ||
| .NET Standard compatible NuGet package (`System.Memory`) adding this package | ||
| cannot provide extend the members of .NET Standard types that deal with spans. |
There was a problem hiding this comment.
Looks like an extra word here -> "provide extend". Should probably omit "provide".
da0f15f to
9fc6559
Compare
|
It gets very confusing. .NET Core, framework, standard, vnext, vnext++... |
jskeet
left a comment
There was a problem hiding this comment.
I'm assuming that it's worth nit-picking on the grounds that this document is for general consumption, even if relatively few people outside the organization will read it.
|
|
||
| * **Include `Span<T>`**. In .NET Core 2.1 we've added `Span<T>` which is an | ||
| array like type that allows representing managed and unmanaged memory in a | ||
| uniform way and supports cheap slicing. It's at the heart of most performance- |
There was a problem hiding this comment.
Nit: move performance- to the next line, as otherwise it displays as "performance- related".
| uniform way and supports cheap slicing. It's at the heart of most performance- | ||
| related improvements in .NET Core 2.1 and allows managing buffers in a more | ||
| efficient way as it helps in reducing allocations and copying. `Span<T>` is | ||
| considered a primitive type and requires runtime and compiler support in order |
There was a problem hiding this comment.
Is Type.IsPrimitive going to return true for Span<T>? If so, this is okay - otherwise I'd choose a different word to avoid confusion.
| Standard is to add the companion APIs as those cannot be added using a NuGet | ||
| package. | ||
|
|
||
| * **General Goodness**. Since .NET Core was open sourced, the community and us |
There was a problem hiding this comment.
How about just "we have added" rather than "the community and us added"? If there's a need to distinguish between the community and some other party, let's be clear about who that other party is :)
|
|
||
| ## Decisions | ||
|
|
||
| * We should **include** Brotli as HttpClient depends on it |
| ## Decisions | ||
|
|
||
| * We should **include** Brotli as HttpClient depends on it | ||
| * We should **exclude** `DataAnnotations` (OOB today) |
There was a problem hiding this comment.
I may be having a temporary memory failure, but I can't remember what "OOB" means here - which suggests others won't either. (Out-of-band?)
There was a problem hiding this comment.
It certainly is in some cases, but I don't understand what that would mean in this context.
|
|
||
| ### Major features | ||
|
|
||
| * [Add reflection emit](https://github.com/dotnet/standard/pull/829) |
There was a problem hiding this comment.
I have concerns about this from the Unity side, as mentioned in my comment on the specific PR.
There was a problem hiding this comment.
Let's discuss the details in the actual PR. I'll clarify how I envision we review this.
9fc6559 to
924e0bb
Compare
| ## Decisions | ||
|
|
||
| * We should **include** Brotli as `HttpClient` depends on it | ||
| * We should **exclude** `DataAnnotations` (out-of-band today) |
There was a problem hiding this comment.
Definitely better than OOB, but just to make sure I understand this: these are packages already provided on top of .NET Standard, and are serviced via independent releases, and we want to keep them that way, at least for now? That makes sense to me.
3833e77 to
363c043
Compare
| * **Include** Brotli as `HttpClient` depends on it | ||
| * **Not include** `DataAnnotations` (out-of-band today) | ||
| * **Not include** `DiagnosticSource` (out-of-band today) | ||
| * **Not include** `System.Reflection.Metadata` (out-of-band today) |
There was a problem hiding this comment.
I'd expect to see System.Collections.Immutable in this list as well.
There was a problem hiding this comment.
Ah, good point. I should add Microsoft.CSharp and Microsoft.VisualBasic then as well.
051284c to
727c548
Compare
|
As discussed in today's @dotnet/nsboard meeting, we all agreed with this being plan, modulo the version number and the actual APIs, which are separate PRs, so I'm going to merge this. |
|
Please add missing members for ArraySegment<T>. Now it lacks indexer and enumerator in .NET Standard 2.0 (they are hidden behind explicit interface implementation), while they are available in .NET Core 2.1:
|
| * **Not include** `System.Threading.Tasks.Dataflow` (out-of-band today) | ||
| * **Not include** `IApplicationResourceStreamResolver` (was plumbing for | ||
| Silverlight convergence. It's obsoleted.) | ||
| * **Not include** `System.Xml.Serialization.SchemaImporter` (doesn't seem |
There was a problem hiding this comment.
What is the plan for xsd.exe? I've tried to generate XML schemas from netcore assemblies, and it failed. Same assembly compiled for NET472 -- works.
This is the proposal for .NET Standard vNext. This also fixes #303.
@dotnet/nsboard, any thoughts? Let's start by reviewing the overall document and then the list of individual PRs.