dotnet / dotnet/project-system

Improve architecture for Web IPA

Open
#8,371 0 comments 0 reactions 0 assignees View on GitHub
Triage-Approved
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.