dotnet / dotnet/project-system
Improve architecture for Web IPA
- Dominant language
- C#
- Stars
- 1k
- Forks
- 415
- PR merge metrics
- No merged PRs in 30d
Description
Designing a system where other teams can tell dotnet project system what components ids to check for and when (conditions) we should check for them, so dotnet project system don't need to have this logic in our own repo.
The logic in WebWorkloadDescriptorDataSource.WpfDetected() should be handled by the corresponding team.
Component Ids to install:
`private static readonly string s_webComponentId = "Microsoft.VisualStudio.Component.Web";`
Condition to check:
`private static bool WpfDetected(bool dotnetCoreRazor, bool windowsForm, bool wpf) => dotnetCoreRazor && (windowsForm || wpf);`
https://github.com/dotnet/project-system/blob/main/src/Microsoft.VisualStudio.ProjectSystem.Managed/ProjectSystem/Workloads/WebWorkloadDescriptorDataSource.cs#L37-L60
Contributor guide
Research direction
Start with WebWorkloadDescriptorDataSource.cs at the linked lines, especially the Web component ID and WpfDetected condition. Trace how this workload logic is consumed and determine what design would let corresponding teams provide component IDs and conditions. Done means those team-owned details no longer need to remain in the project-system repository.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100