# WSC-MVC A small, WSC-first MVC framework for Classic ASP on IIS: VBScript Windows Script Components registered as COM, dispatched by a single thin `Default.asp` bootstrap. See `SPEC.md` for the full contract, `IMPLEMENTATION_PLAN.md` for milestone status, and `docs/` for architecture, decisions, and test evidence — those are the authoritative, kept-current docs; this file is just an orientation map. ## Layout Two separate IIS sites, sharing one set of framework/controller COM components: - `public/` — the production site's IIS physical path. Contains only `Default.asp` and `web.config`. - `test-app/public/` — a second, separate site exposing `GET /self-test` (JSON test harness), so diagnostics aren't reachable on the production site/port. See `docs/ARCHITECTURE.md`. - `Framework/`, `Controllers/` — the actual WSC components (`.wsc`), registered once via COM and used by both sites. Never served over HTTP by either site. - `logs/`, `test-app/logs/` — each site's own runtime log, written by the app, never served over HTTP. - `tests/`, `tools/`, `docs/` — test scripts, deployment/registration tooling, and documentation. Never served over HTTP. ## Deploy and register (on the target Windows/IIS host) ```powershell powershell -File tools\Register-Components.ps1 powershell -File tools\Setup-Site.ps1 powershell -File tools\Setup-Site.ps1 -SiteName WscMvcTests -PoolName WscMvcTests -PhysicalPath \test-app\public -Port 8091 ``` Both `Setup-Site.ps1` invocations are idempotent — safe to re-run after any deploy. ## Test ```powershell cscript //nologo tests\Test-Components.vbs # WSH smoke test, no IIS needed powershell -File tests\Test-Http.ps1 -BaseUrl http://localhost:8090 # production site ``` ```bash ./tests/run-self-test.sh http://:8091 # test-app site, plain curl+JSON, any CLI ``` ## Status M0–M2 gated PASS with real test evidence on Windows/IIS; see `docs/TEST-RESULTS.md`. Next milestone: M3 (explicit route table) per `IMPLEMENTATION_PLAN.md`.