Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perf guidelines #303
Perf guidelines #303
Changes from 23 commits
263f1de
4ede736
50106fb
a0902e0
66fa796
5ae1c67
16e6032
2b6be78
b471a30
92d66ff
d61f45a
ae4163c
84ccfa7
337fc87
302ef97
1f662cf
626bfc0
2e96a88
f40934e
c52a2bd
c852866
037bce8
5b0986c
15bd9c5
78115bb
73c1800
affe33b
e1eae09
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Line below:
"on .NET Core 3.1 and above (i.e. .NET 6 etc.)" => "on .NET Core 3.1 and above"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In any case .NET Core 5 applies too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't mention .NET 5 because it was already out of support by then. I wasn't sure if someone who's not conversant with the .NET evolution would know that .NET 6+ is in the same line of success as .NET Core 3.1 given that name change from .NET Core to .NET. Maybe I could say .NET Core 3.1 and .NET 5+
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"and measure using appropriate..." - and measure what?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does "measure" performance sound okay? Or it will sound weird appearing twice in the same sentence?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding the use of "built-in", could that be misleading given that both implementations of
IJsonWriter
are technically built-in to the core library?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first sentence... I'd rather you talked about the new JSON writer being based on Utf8JsonWriter (or being a wrapper for Utf8JsonWriter) than talk about it writing directly to a
Stream
as opposed to using aTextWriter
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense. Should I mention the
Stream
andTextWriter
differences at all? I did so to help explain the name. But I could also remove that and just mention that the writer is based on `Utf8JsonWriter.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm hesitant about the emphasis on "built-in" her because both writers are built-in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've rephrased the statement, but omitted the "built-in" term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is confusing.. Which feature is availabe here? Is it the use of utf8jsonwriter? Somewhere up there you indicated that people can enable utf8jsonwriter in
Microsoft.AspNetCore.OData 8.x and 7.x
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you should make it clear which version of ODL has this change..Then all versions of Microsoft.AspNetCore.OData with that ODL version have the feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The feature is available in both 8.x and 7.x. But in 8.x it's only available in 8.0.11 or later, i.e. not available in 8.0.10 earlier. This particular article exists in the WebAPI 8 docs page. There are separate articles in the 7.x docs which specify the minimum version of 7.x supported: https://learn.microsoft.com/en-us/odata/webapi/using-utf8jsonwriter-to-improve-serialization-performance.
The article already mentions which version of ODL introduces this feature: 7.12.2. I think it's also relevant to mention the version of WebAPI 8 that introduces this feature. Someone may be using an older version like 8.0.7. I think it's easier to tell them this is feature requires 8.0.11 or later than to ask them to go through all the 8.x versions to and look for the ones that depend on ODL 7.12.2 or later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@habbes I know it'd involve a bit more work, but would it be better to capture the supported versions here:

That is add includes specific to the version(s) that support
ODataUtf8JsonWriter
. That way the doc doesn't say at the top that the feature is supported in the V8 and then in the body it says 8.0.11.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@habbes Another suggestion would be to rephrase the paragraph to immediately establish the connection between Microsoft.OData.Core 7.12.2 and Microsoft.AspNetCore.OData 8.0.11, e.g.:
Then you don't need the sentence: "This feature is available in ASP.NET Core OData version 8.0.11 or later."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gathogojr do you mean adding an includes specific for 8.0.11 and later? Or? I'm not sure I understood the statement. Note that this particular article sits in the Web API 8 docs tree, which is separate from the Web API 7 docs tree.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gathogojr I've rephrased the statement as suggestion, except that I didn't mention that part about "The Microsoft.AspNetCore.OData library takes a dependency on Microsoft.OData.Core library". Not sure if that's really necessary. But open to adding it if you think otherwise.