CsWinRT icon indicating copy to clipboard operation
CsWinRT copied to clipboard

Proposal: Support for contract versioning (and other WinRT attributes) on published WinRT interfaces

Open jevansaks opened this issue 7 months ago • 0 comments
trafficstars

Summary

There's a set of WinRT attributes that affect the WinMD generation that enable devs to create stable ABIs. Currently to meet this need we have devs write IDL, then we implement those interfaces in C#/WinRT. This works ok but you then have a vcxproj in your .sln (yuck!) and you have to deal with IDL (double yuck) and there's a handful of clumsy workarounds to implement runtimeclasses you didn't author in C#/WinRT.

What we'd like is to close those gaps and support:

  • Contract versioning
  • Method name overloading
  • Interface naming and interface GUID specifications

Rationale

  • Fixing this would get us fully onto C# and drop the need for any vcxproj in our solutions, which would be glorious
  • Would greatly speed up dev inner loop as vcxproj and MIDL are very slow to run and compile

Important Notes

No response

Open Questions

No response

jevansaks avatar Apr 21 '25 22:04 jevansaks