OpenRakis / Spice86

Reverse engineer and rewrite real mode DOS programs!
Apache License 2.0
207 stars 18 forks source link

refactor: Inversion of control for all dependencies between classes in the UI #770

Closed maximilien-noal closed 6 days ago

maximilien-noal commented 1 week ago

Description of Changes

Introduces inversion of control for more of the UI code.

Rationale behind Changes

Centralizes dependency management in Program.cs. Centralizes lifetime management in Program.cs Makes the code base easier to change for the UI and internal debugger.

The next step will be the emulator project.

Suggested Testing Steps

Test existing overrides, and supported games, and report regressions, if any. This should not introduce any. If there are some, it means that some lifetime choices (Singleton vs Scoped vs Transient) were in error.

Status: Done.