Branch by Abstraction
- The original project was MVC Classic with the domain-layer embedded in the same project as the MVC UI.
- Unit tests for the domain-layer exist in a separate test project.
-
Introduce abstraction. The domain layer was extracted into its own project behind a clear domain abstraction.
Unit tests ensured the domain functionality remained unchanged.
- Redirect existing UI to the abstraction. The MVC Classic UI was refactored to depend on the new domain abstraction.
-
Reuse the abstraction for additional UIs:
- A new Razor Hybrid (MVC/Razor Pages and Blazor components) UI was added, also consuming the shared domain layer.
- A new Blazor Server UI was added, also consuming the shared domain layer.