CommunityToolkit / Graph-Controls

Set of Helpers and Controls for Windows development using the Microsoft Graph.
https://docs.microsoft.com/en-us/windows/communitytoolkit/graph/overview
Other
156 stars 39 forks source link

[Question] Can the CommunityToolkit.Authentication.Uwp package be converted to a WinRT component? #130

Open shweaver-MSFT opened 3 years ago

shweaver-MSFT commented 3 years ago

Does it make sense for the CommunityToolkit.Authentication.Uwp package to be a Windows Runtime Component? This would enable C++ devs to leverage the package as well.

Investigate and determine if the conversion is technically feasible.

ghost commented 3 years ago

Hello shweaver-MSFT, thank you for your interest in Graph Controls!

I have automatically added a "needs triage" label to help get things started. Our team will look into the question and answer ASAP. Other community members may also answer the question and provide feedback 🙌

michael-hawker commented 3 years ago

@azchohfi if a package is just using system APIs, can it be used by a WAS/WinUI 3 app or does the package need to be explicitly built for C#/WinRT to function?

azchohfi commented 3 years ago

If a managed project wants to be used by a native project, either the nuget package has to add the projections, or the user needs to do it. It makes more sense for a library, such as the Graph Controls, to expose the projections so you don't have conflicts if more than one library tries to use it, which would generate two "different" assemblies that project the same namespaces, which would be a conflict.

michael-hawker commented 3 years ago

Thanks @azchohfi. Yeah, I think we'll explore how restrictive it is for this smaller surface to be a UWP Windows Runtime Component.

I guess my question is how does a UWP Windows Runtime Component just using OS APIs translate to the WinUI 3 / Windows App SDK world, can they still be referenced directly as long as the OS contains those APIs or do we need to bundle them differently for the package to be consumed (by either a C# or C++ project)?