dotnet / dotnet/docs

Documentation request: statement on .NET Platform Extensions' support for previous versions of runtime targets

Open
#31,974 6 comments 9 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
4.8k
Forks
6.1k
Avg merge
15h 21m
Merged PRs (30d)
370

Description

* I saw this QA today: https://stackoverflow.com/questions/74159708/are-microsoft-extensions-libraries-intended-to-be-backward-compatible#comment130934545_74159708 - though the TL;DR: is:
* .NET Platform Extensions' libraries' versions correspond with the current version of .NET, for example, the current latest version of `Microsoft.Extensions.Logging` as of October 2022 is version 6.0 to go-along with .NET 6.
* ...but _somewhat surprisingly_ these _Platform Extensions_ libraries aren't just a sidekick for their .NET big-brother, but they support a much wider range of .NET runtime versions than you'd think... indeed, [`Microsoft.Extensions.Logging/6.0.0` doesn't actually have any dependencies on .NET 6, and in-fact, still supports .NET Framework 4.6.1](https://www.nuget.org/packages/Microsoft.Extensions.Logging/6.0.0#dependencies-body-tab).
* ...which is great, honestly (as plenty of my projects are stuck on .NET Fx 4.8), but I don't know if I can depend on the Platform Extension libraries always supporting versions of .NET much older than the corresponding version of the Platform Extension library (i.e. `Microsoft.Extensions.Logging/6.0.0` **does not** have a hard dependency on .NET 6), so I spent too much time searching online for some official documentation page, an official statement, or even a devblog article, but I couldn't find anything resembling a statement-of-commitment regarding .NET Platform Extensions' libraries support for older .NET runtimes.

* Here are some of the pages I _did_ find, and note their lack of content w.r.t. support/lifecycle/targets/etc for .NET Platform Extensions libraries:
* [The "homepage" of the .NET Platform Extensions API](https://learn.microsoft.com/en-us/dotnet/api/?view=dotnet-plat-ext-6.0) documentation is the first place I'd expect to see a summary or explanation of compatibility or support, but _nope_.
* Nothing here either: https://learn.microsoft.com/en-us/dotnet/standard/runtime-libraries-overview
* The next place I looked was all the pages re: .NET Support and Lifecycle...
* https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
* https://github.com/dotnet/core/blob/main/microsoft-support.md
* https://github.com/dotnet/core/blob/main/os-lifecycle-policy.md?WT.mc_id=dotnet-35129-website
* No obvious `.md` files in the [dotnet/runtime](https://github.com/dotnet/runtime/tree/main/src/libraries) repo either.

**Describe the new article**

Something like this FAQ... except with answers, and signed-off by the head-honchos of .NET who can speak authoritatively, of course:

> ## .NET Platform Extensions
> * What is/are the .NET Platform Extensions?
> ([This is not currently explained in the .NET glossary](https://learn.microsoft.com/en-us/dotnet/standard/glossary))
> * Why do .NET Platform Extensions' versions coincide with major releases of .NET, but in don't actually have dependencies on those .NET releases and even support the oldest still-supported .NET runtimes?
> * What is the official support/lifecycle/policy for the .NET Platform Extensions libraries?
> * Why is some functionality in-box in the runtime and other functionality delegated to optional libraries? What's the decision-process for deciding where something goes?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.