# MVC-Starter - Architecture **Date:** 2026-03-11T11:59:39Z **Project Type:** web **Architecture:** Server-rendered MVC monolith ## Executive Summary MVC-Starter is a Classic ASP starter application built around a single IIS-hosted deployable unit. Requests enter through `public/Default.asp`, flow through a shared runtime in `core/`, and resolve into application-specific controllers and views under `app/`. ## Technology Stack - Classic ASP / VBScript - Windows IIS with URL Rewrite - RouteKit-style router and MVC dispatcher - Microsoft Access via ACE OLE DB - Bootstrap 5.3.3 and Bootstrap Icons 1.11.3 from CDN - VBScript tooling for scaffolding and migrations ## Architecture Pattern Starter/framework hybrid MVC monolith: - `public/` handles web entry and IIS-facing config - `core/` handles routing, dispatch, validation, helpers, and DAL concerns - `app/` contains project-specific behavior and server-rendered views - `db/` and `scripts/` support data and operational workflows ## Request Flow 1. IIS receives the request. 2. `public/web.config` rewrites non-static requests to `public/Default.asp`. 3. `Default.asp` registers routes and calls `MVC.DispatchRequest`. 4. `core/mvc.asp` validates controller/action names, checks whitelist registration, resolves the current controller dynamically, and executes the target action. 5. Shared layout files wrap the response if `useLayout` is enabled. ## Data Architecture - Database configuration is read from `public/web.config`. - `db/webdata.accdb` is the included Access database. - DAL and migration helpers live in `core/`. - Repositories and POBOs are expected to be generated via `scripts/GenerateRepo.vbs`. ## Component Overview - Controllers: `app/controllers/` - Views: `app/views/` - Shared layout: `app/views/shared/` - Runtime/framework: `core/` - Scaffolding/tooling: `scripts/` ## Source Tree See [source-tree-analysis.md](./source-tree-analysis.md) for the annotated directory breakdown. ## Development Workflow - Generate migration - Generate POBO/repository - Generate controller - Register controller include, whitelist, and routes - Add views and validate via IIS-hosted execution ## Deployment Architecture - Single IIS site - `public/` as web root - XML config in `public/web.config` - No separate service/process topology detected ## Testing Strategy - No automated test framework detected - Manual request-flow verification is required - Script tooling can be validated via `cscript` ## Architectural Constraints - Dynamic dispatch means naming and registration consistency are part of runtime correctness. - `core/`, `public/Default.asp`, and `public/web.config` are high-impact files. - The architecture assumes Windows/IIS hosting rather than cross-platform portability.