We've performed a usability study on the new System.Text.Json
APIs which will replace JSON.NET as the default JSON experience in .NET Core 3.0:
This has worked out well for us as we were able to get short term feedback which resulted in significant improvements to the overall API shape and usability. In the future, we should do more API focused UX studies 馃槉
| # | Description | Code
|:--|:---------------------------------------|:-----
| 1 | Serialize and pretty print | Link
| 2 | Deserialize with trailing comma | Link
| 3 | Deserialize with custom property names | Link
| 4 | Read with DOM | Link
| 5 | Pretty print an existing JSON file | Link
We expect developers to...
| # | Description | Result
|:--|:-------------------------------------------------------|:---------------
| 1 | ...assume the APIs are similar/identical to JSON.NET | Validated
| 2 | ...complete tasks 1-4 successfully | Validated
| 3 | ...struggle/unable to complete the task 5, because it requires working with two different components which is very different from JSON.NET | Invalidated
| 4 | ...not look at documentation for most of their coding as IntelliSense is good enough | Invalidated
| 5 | ...be happy with the experience of using the API | Validated
| 6 | ...plan on using System.Text.Json
for their next JSON task | Partially Validated
System.Text.Json
for new APIs, but would stick to JSON.NET in code that already uses it.System.Text.Json
weren't the same thingJsonSerializer
UserControl
in WinForms and WPF) and both are referenced by the project.async
/await
are usability cliffsGlad to see the progress. I didn't know till now that F1 goes to the docs page for the type that's actually under the cursor, never saw this mentioned anywhere. F12 is probably used more because it's easier to dig through the code, especially for 3rd party libraries. Also lots of docs pages are nothing more than a print of the XML comments so looking at the code is just faster.
Nobody used Object Browser to explorer the APIs
Object Browser is good; however the usability to get to it is hard. You have to open it and then type in and search for the class or method. Am sure in a previous version of VS there was a right-click option that took you directly to it. It would good if this returned as object browser gives the most context and holistic overview.
F1 goes to the docs page for known types??? I've been using VS for like 10 years and didn't know this. I always thought it just went to the generic VS help page. Maybe this should be in the right click menu for better discoverability?
Also I get why everyone used F12 to view the API, Alt-F12 "Peek" works wonders too. Reading method signatures with doc strings is usually the easiest and fastest way to tell exactly what a library expects. Intellisense is fine, but it doesn't always have the concise detail developers crave. Object Browser is a little clunky and hidden away compared to F12 which is a frequently used tool.
That's good news! Had a headache in few projects trying to keep JSON.NET dependency version the same.
Any chance of getting YAML parser as a part of .NET Core? In particular it would be nice to be able to use it in PowerShell Core without adding third party modules (because of the company policies).
Just tried asp.net core 3.0 (w/ the new default JSON formatter), so here's a piece of feedback:
I understand that you are not aiming for full compatibility with JSON.NET but I feel it's a scenario worth covering.
I created an OData endpoint and when the client sends a query with $select
(i.e. a custom projection), the returned shape is an Expando object.
Any chance of getting YAML parser as a part of .NET Core?
Not any time soon. This isn't mainstream enough warranting us having to build one. NuGet packages already exist :-)
I'm closing this to get the release PMs off my back who freak out about open bugs right now. However, please keep the comments/questions coming :-)
Object Browser is good; however the usability to get to it is hard.
+1, I've tried and always end up frustrated because I can't quite remember how to.
In the future, we should do more API focused UX studies
馃挴 this was a great read @terrajobst!
Most helpful comment
F1 goes to the docs page for known types??? I've been using VS for like 10 years and didn't know this. I always thought it just went to the generic VS help page. Maybe this should be in the right click menu for better discoverability?
Also I get why everyone used F12 to view the API, Alt-F12 "Peek" works wonders too. Reading method signatures with doc strings is usually the easiest and fastest way to tell exactly what a library expects. Intellisense is fine, but it doesn't always have the concise detail developers crave. Object Browser is a little clunky and hidden away compared to F12 which is a frequently used tool.