User story
As a WinForms developer, I want Forms, UserControls, and components to participate in dependency injection and well-defined UI scopes without breaking drag-and-drop Designer workflows.
Rationale and user benefit
Constructor injection conflicts with parameterless design-time creation. Static service locators hide lifetime errors and make testing harder. A supported bridge must keep the out-of-process Designer, generated code, runtime activation, disposal, and scope ownership coherent.
Scope boundary
Own Designer/runtime service assignment, activation and factory contracts, Form/UserControl/component scopes, disposal, and scope-aware navigation. Depend only on the minimum host contracts from the lifetime story. Do not own configuration providers, logging providers, or project templates.
Acceptance criteria
Definition of Done
Parallelization
This is foundation stream B. Keep Designer/code-generation changes isolated from stream A's lifetime implementation and stream C's service integrations.
User story
As a WinForms developer, I want Forms, UserControls, and components to participate in dependency injection and well-defined UI scopes without breaking drag-and-drop Designer workflows.
Rationale and user benefit
Constructor injection conflicts with parameterless design-time creation. Static service locators hide lifetime errors and make testing harder. A supported bridge must keep the out-of-process Designer, generated code, runtime activation, disposal, and scope ownership coherent.
Scope boundary
Own Designer/runtime service assignment, activation and factory contracts, Form/UserControl/component scopes, disposal, and scope-aware navigation. Depend only on the minimum host contracts from the lifetime story. Do not own configuration providers, logging providers, or project templates.
Acceptance criteria
Definition of Done
Parallelization
This is foundation stream B. Keep Designer/code-generation changes isolated from stream A's lifetime implementation and stream C's service integrations.