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.
An unhandled error has occurred. Reload 🗙