Skip to content
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

Update feature switches documentation #41739

Open
LakshanF opened this issue Jul 12, 2024 · 3 comments
Open

Update feature switches documentation #41739

LakshanF opened this issue Jul 12, 2024 · 3 comments
Assignees
Labels

Comments

@LakshanF
Copy link
Member

LakshanF commented Jul 12, 2024

Ensure that the feature switches documentation is up to date with the recently added new ones. Also, it would be good to have the AppContext settings for each build property.

The following public feature switches are not yet in the docs

  • DisableDependencyInjectionDynamicEngine
  • DynamicCodeSupport
  • EnableGeneratedComInterfaceComImportInterop
  • HybridGlobalization
  • JsonSerializerIsReflectionEnabledByDefault
  • PredefinedCulturesOnly
  • VerifyDependencyInjectionOpenGenericServiceTrimmability

These public feature switches are documented but the AppContext setting strings are not defined.

  • BuiltInComInteropSupport
  • CustomResourceTypesSupport
  • DebuggerSupport
  • EnableCppCLIHostActivation
  • EnableUnsafeBinaryFormatterInDesigntimeLicenseContextSerialization
  • EnableUnsafeBinaryFormatterSerialization
  • EnableUnsafeUTF7Encoding
  • EventSourceSupport
  • HttpActivityPropagationSupport
  • MetadataUpdaterSupport
  • MetricsSupport
  • StartupHookSupport
  • UseNativeHttpHandler
  • UseSystemResourceKeys
@MichalStrehovsky
Copy link
Member

Cc @eerhardt @dotnet/illink I don't know how may of these are actually implementation details. The repo docs in the dotnet/runtime repo are not public docs, they're docs on implementation details. E.g. I'm not sure about scenarios where we'd want to support/document the appcontext switches.

@eerhardt
Copy link
Member

I think there's a different level of "public" between things like the runtime and higher-level app models (like MAUI and WinForms), versus "public" that we want .NET application developers to be aware of.

A decent amount of these feature switches should never be used by .NET application developers, but they were created for specific app model needs. For example DisableDependencyInjectionDynamicEngine was created for Android, but could be useful for other app models in the future. These kinds of switches feel like they shouldn't be given the same level of publicity as things like InvariantGlobalization, which can be specified by application devs.

I think the switches that are meant for .NET application developers should be documented on learn.microsoft.com. The switches that aren't, I don't think they need to be.

Of the above list, ones that I think application developers should be aware of:

  • PredefinedCulturesOnly
  • JsonSerializerIsReflectionEnabledByDefault (maybe? cc @eiriktsarpalis for thoughts)
  • HybridGlobalization (probably? cc @ilonatommy for thoughts on whether app devs should know about this)
  • DebuggerSupport
  • EventSourceSupport
  • UseNativeHttpHandler
  • UseSystemResourceKeys

@ilonatommy
Copy link
Member

@eerhardt, you are correct, we want to make sure developers are aware of HybridGlobalization on WASM. We have it in our docs but adding it here as well would be helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants