# RouteKit Classic ASP - MVC Starter A clean starting point for building Classic ASP applications with the RouteKit MVC framework. ## Quick Setup 1. Copy this folder to your IIS server 2. Point your IIS site root to the `public/` folder 3. Update `public/web.config`: - Set `ConnectionString` to your database path - Set `ErrorLogPath` if you want file logging 4. Ensure the IIS URL Rewrite module is installed 5. Browse to `http://localhost/` — you should see the welcome page ## Project Structure ``` MVC-Starter/ public/ # IIS ROOT - point your IIS site here Default.asp # Front controller (entry point) web.config # IIS config, routes, connection strings core/ # Framework core (do not modify) autoload_core.asp # Loads all core libraries router.wsc # Route matching engine mvc.asp # MVC dispatcher lib.*.asp # Core libraries app/ controllers/ # Your controllers go here views/ # Your views go here shared/ # Shared layout (header, footer) models/ # POBOs go here repositories/ # Repository classes go here db/ migrations/ # Database migrations webdata.accdb # Access database scripts/ # Code generators generateController.vbs generateMigration.vbs GenerateRepo.vbs runMigrations.vbs ``` ## Adding a New Feature ### 1. Generate a migration ```bash cscript //nologo scripts\generateMigration.vbs create_my_table ``` ### 2. Generate POBO and Repository ```bash cscript //nologo scripts\GenerateRepo.vbs /table:my_table /pk:id ``` Move generated files to `app/models/` and `app/repositories/`. ### 3. Generate a controller ```bash cscript //nologo scripts\generateController.vbs MyController "Index;Show(id);Create;Store" ``` Move generated file to `app/controllers/`. ### 4. Wire it up - Register in `core/lib.ControllerRegistry.asp` - Include in `app/controllers/autoload_controllers.asp` - Add routes in `public/Default.asp` - Create views in `app/views/MyController/` ## Included Controllers - **HomeController** - Welcome page at `/` - **ErrorController** - 404 handler at `/404` ## Requirements - Windows Server with IIS - Classic ASP enabled - IIS URL Rewrite module - Microsoft Access Database Engine (for .accdb support) ## Testing This repo now includes a dev-only `aspunit` harness under `tests/`. It is intentionally separate from the production app rooted at `public/`. - Configure a separate IIS application rooted at `tests/` - Ensure Classic ASP parent paths are enabled for that IIS app - If you change `tests/web.config`, refresh the nested test-folder copies with `cscript //nologo tests\sync-webconfigs.vbs` - Open `run-all.asp` inside that IIS app to execute the test suite - See `TESTING.md` for setup, manifest registration, and extension guidance