Consolidated ASP Classic MVC framework from best components
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6KB

Architecture Patterns

Date: 2026-03-11T11:59:39Z

Part: MVC-Starter

Primary Architecture Pattern

Server-rendered MVC monolith with a starter/framework hybrid structure: IIS and public/ handle request entry, core/ provides shared runtime and dispatch behavior, and app/ provides project-specific extensions.

Pattern Breakdown

  • End-to-end request path: IIS URL Rewrite sends requests to public/Default.asp, routes are registered there, the router resolves controller/action/params, core/mvc.asp validates and dispatches, and shared layout files wrap output when useLayout is enabled.
  • Routing pattern: Routes are declared centrally in public/Default.asp and resolved through the RouteKit router object.
  • Dispatch pattern: core/mvc.asp uses validation, controller whitelisting, and dynamic execution to resolve the current controller and action.
  • Application layering: core/ contains reusable framework/runtime behavior, while app/ contains project-specific controllers, views, models, and repositories.
  • Rendering pattern: Controllers orchestrate and include .asp view files; shared header/footer layout files provide common page chrome.
  • Data pattern: Data access is config-driven through public/web.config, with DAL libraries and generator-assisted repositories/POBOs supporting database interaction.
  • Operational tooling pattern: Schema and scaffolding workflows are handled by standalone VBScript tools under scripts/.

Architectural Implications

  • This codebase is optimized around a single IIS-hosted deployable unit rather than separable services.
  • Framework bootstrapping and request dispatch are centralized, so edits to public/ entry files or core/ runtime files have broad impact.
  • Dynamic dispatch is part of the framework design, which makes naming, registration, and validation rules part of the architecture contract.
  • Feature development typically extends existing seams in app/, db/, and scripts/ rather than introducing new application subsystems.
  • The architecture assumes server-side HTML rendering and config-driven runtime behavior rather than client-heavy SPA patterns.

Brownfield Notes

  • The most important architectural boundary is between the framework/runtime layer (core/) and the app extension layer (app/).
  • Controller activation is not automatic; routing, include registration, and whitelist registration are all part of the runtime contract.
  • Windows/IIS hosting is part of the architecture, not just deployment detail, because request flow and configuration depend on it.
  • Generator scripts are part of the implementation model, not just convenience tooling.

Powered by TurnKey Linux.