-
Notifications
You must be signed in to change notification settings - Fork 5k
.NET and Native AOT improvements for CsWinRT 3.0 #114179
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
Comments
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas |
Tagging subscribers to this area: @dotnet/interop-contrib |
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas |
Tagging subscribers to this area: @dotnet/interop-contrib |
It’s probably too late to start an epic for .NET 10. We can probably get some of these in, but some stuff may slip past .NET 10. In general, themes of this size should be discussed around the start of release planning in November. |
Yup, that's completely fair. To clarify, we did discuss most of these early on (eg. the type map conversation has been going on for a while, and CsWinRT is not the only consumer), but we didn't think of creating a tracking epic for all these changes before. It's not a problem if not all of these get into .NET 10 (eg. I know we talked about the feature switch analyzer most likely slipping past .NET 10), but hopefully this at least helps to see all related changes in a single place (it certainly helps us with that too) 🙂 |
Thanks for putting this up, I'll add my concerns about CsWinRT 3.0 on two parts. As long as cswinrt (or at least the default version) is bundled with the .NET SDK, this will cause a cascade of forced upgrades. For instance, 9.0.200 updated cswinrt, and this required consumer of nuget packages to also upgrade to 9.0.200., if the produced updated its build-time SDK. It is then not clear for developers that this dependency exists when using WinAppSDK, causing all sorts of confusion around why version mismatches happen and where/how to fix them (whether it's a nuget package producer or consumer problem). If cswinrt stays part of the .NET SDK, adding breaking changes to cswinrt will cause a break in the ecosystem, requiring all the existing nuget packages to upgrade to that newer version. This generally takes a long while to happen. In short, please don't break any APIs if you keep including cswinrt in the .NET SDK :) |
I may be out of the loop here. Is CsWinRT part of the |
CsWinRT Is bundled as a targeting pack with the |
Thanks for the clarification @Sergio0694, will you link to the CsWinRT issue when that gets filed (will that happen soon as work is underway on this project)? It'd be great if it could address some of the concerns raised here in the process. |
This epic tracks all work items across .NET 10 and Native AOT, related to supporting CsWinRT. We're currently working on a new version (see CsWinRT/fhl/cswinrt-3.0) that will be built on top of .NET 10, and designed with trim/AOT as a first class citizen. We're also taking the opportunity to fix a number of known issues (both in terms of perf, binary size, memory use, and usability) that have accumulated in CsWinRT over time. Some of them would require new APIs or changes in .NET (and/or Native AOT), which are all linked here, so it's easier to see all of them at once. We're planning on adopting .NET 10 and CsWinRT 3.0 in the Microsoft Store, as well as in other inbox apps and Windows components.
Note
I'm listing both supporting work for CsWinRT 3.0, as well as general asks from the WinRT side in general (eg. PGO).
Runtime support
UnsafeAccessorTypeAttribute
for static or private type access #90081ComWrappers
and COM generator APIsNative AOT
Collections (nice to have)
Misc (nice to have)
Bugs (CoreCLR/AOT)
The text was updated successfully, but these errors were encountered: