dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.34k stars 4.74k forks source link

User Story: Developers using C# nullable reference types can use them with more Microsoft SDKs to validate correctness of their code #43619

Closed cathysull closed 1 year ago

cathysull commented 4 years ago

In .NET 5, 94% of Microsoft.NetCore.App has been completed, which is the lowest layer in the shared framework and represents the set of APIs that are referenced by default by all applications types. We’ll work to get this number to 100% and we intend to maintain 100% coverage into the future.

What’s still missing are the higher layers (WPF, WinForms, ASP.NET Core) as well as the out-of-band packages (such as EFCore and several out-of-band packages from dotnet/runtime, as well as assemblies that aren't in netcoreapp but are included with aspnetcoreapp). While each is likely to be too big to be completed in .NET 6, we will start planning and making inroads for the rest of the stack and decide if we are comfortable introducing new libraries which may have no nullable annotations (e.g. mobile SDKs/Forms for .NET 6). An MVP (minimum viable product) for this, we believe (and will test) that any new libraries are annotated, moving forward nullable reference types are just part of the language, and when you decide the data type of some method parameter or return value, it's just one of the things you need to factor in, just as we need to factor in new types added in the libraries, new language features around optional parameters or params arguments and such things.

Work Items

safern commented 4 years ago

Related to: https://github.com/dotnet/runtime/issues/41720

terrajobst commented 4 years ago

@safern thanks! I've linked from the user story.

danmoseley commented 3 years ago

@cathysull @terrajobst @jeffhandley is there any more here for 6.0? I assume not - we made progress, but none of these were "completed" (which is OK) so we should change the milestone to 7.0

jeffhandley commented 3 years ago

Agreed. We did hit 100% annotated across netcoreapp, which was the firm commitment we made from the libraries team; the rest can carry over to 7.0.0.

mairaw commented 1 year ago

I'm cleaning up the .NET 6 project. This shows as completed on the project dashboard but still open here. Should any remaining work be on a new issue attached to a new milestone?

jeffhandley commented 1 year ago

I'm leaving https://github.com/dotnet/runtime/issues/41720 open and will get that updated with the remaining efforts, but I'm closing this User Story since the rest of the work was completed already.