|
1 | 1 | # Code311 |
2 | 2 |
|
3 | | -Code311 is a modular, design-system-neutral UI framework ecosystem for ASP.NET Core (.NET 10). |
| 3 | +Code311 is a modular, design-system-neutral UI framework ecosystem for ASP.NET Core (.NET 10), with a Tabler-backed implementation and an official hybrid MVC + Razor demo host. |
4 | 4 |
|
5 | | -This repository currently contains Phase 0 governance scaffolding and Phase 1 abstraction contracts. |
| 5 | +## Repository status |
| 6 | + |
| 7 | +This repository now includes: |
| 8 | + |
| 9 | +- **Foundation and governance**: solution layout, SDK pinning, centralized package versions, analyzer/nullability/doc enforcement. |
| 10 | +- **Framework-neutral contracts and core orchestration**: |
| 11 | + - `Code311.Ui.Abstractions` |
| 12 | + - `Code311.Ui.Core` |
| 13 | +- **Tabler implementation packages**: |
| 14 | + - `Code311.Tabler.Core` |
| 15 | + - `Code311.Tabler.Components` |
| 16 | + - `Code311.Tabler.Dashboard` |
| 17 | + - `Code311.Tabler.Widgets.DataTables` |
| 18 | + - `Code311.Tabler.Widgets.Calendar` |
| 19 | + - `Code311.Tabler.Widgets.Charts` |
| 20 | + - `Code311.Tabler.Mvc` |
| 21 | + - `Code311.Tabler.Razor` |
| 22 | +- **Infrastructure packages**: |
| 23 | + - `Code311.Persistence.EFCore` |
| 24 | + - `Code311.Licensing` |
| 25 | +- **Hybrid demo/integration portal**: |
| 26 | + - `Code311.Host` |
| 27 | + |
| 28 | +## High-level architecture |
| 29 | + |
| 30 | +Code311 is intentionally layered: |
| 31 | + |
| 32 | +1. **Abstractions layer** (`Ui.Abstractions`) defines semantics/contracts with no design-system coupling. |
| 33 | +2. **Core layer** (`Ui.Core`) provides neutral orchestration services (theme/feedback/loading). |
| 34 | +3. **Design-system layer** (`Tabler.*`) maps abstractions into concrete UI behavior and rendering for MVC/Razor, dashboard, and widgets. |
| 35 | +4. **Cross-cutting infrastructure** (`Persistence.EFCore`, `Licensing`) remains independent from `Ui.Core` and Tabler component primitives. |
| 36 | +5. **Host layer** (`Code311.Host`) composes the ecosystem and demonstrates real integration flows without pushing host concerns down into framework packages. |
| 37 | + |
| 38 | +## Run the host demo (`Code311.Host`) |
| 39 | + |
| 40 | +> Prerequisites |
| 41 | +> |
| 42 | +> - .NET SDK 10 (preview) |
| 43 | +
|
| 44 | +From repository root: |
| 45 | + |
| 46 | +```bash |
| 47 | +dotnet restore Code311.sln |
| 48 | +dotnet build Code311.sln |
| 49 | +dotnet run --project src/Code311.Host/Code311.Host.csproj |
| 50 | +``` |
| 51 | + |
| 52 | +Default host behavior: |
| 53 | + |
| 54 | +- Uses **SQLite** demo persistence at `src/Code311.Host/App_Data/code311-host-demo.db`. |
| 55 | +- Runs explicit startup licensing validation (demo in-memory license configured in host startup). |
| 56 | +- Hosts both MVC and Razor Pages routes. |
| 57 | + |
| 58 | +## Key demo sections/routes |
| 59 | + |
| 60 | +Base URL assumes local launch profile default (`https://localhost:5001` or similar): |
| 61 | + |
| 62 | +- Home: `/` |
| 63 | +- Components: |
| 64 | + - Forms: `/ComponentsDemo/Forms` |
| 65 | + - Navigation: `/ComponentsDemo/Navigation` |
| 66 | + - Layout: `/ComponentsDemo/Layout` |
| 67 | + - Feedback: `/ComponentsDemo/Feedback` |
| 68 | + - Data: `/ComponentsDemo/Data` |
| 69 | + - Media: `/ComponentsDemo/Media` |
| 70 | +- Dashboard: `/Dashboard` |
| 71 | +- Widgets: |
| 72 | + - DataTables: `/Widgets/DataTables` |
| 73 | + - Calendar: `/Widgets/Calendar` |
| 74 | + - Charts: `/Widgets/Charts` |
| 75 | +- Preferences / Theme: `/Preferences` |
| 76 | +- Licensing Diagnostics (Razor Page): `/Diagnostics/Licensing` |
| 77 | +- Architecture / About: `/Architecture/About` |
| 78 | + |
| 79 | +## Test and validation |
| 80 | + |
| 81 | +Run the full test matrix: |
| 82 | + |
| 83 | +```bash |
| 84 | +dotnet test Code311.sln |
| 85 | +``` |
| 86 | + |
| 87 | +## Repository layout |
| 88 | + |
| 89 | +- `src/` — product/framework/host packages |
| 90 | +- `tests/` — unit and integration test projects |
| 91 | +- `docs/` — ADRs and architecture proposal |
0 commit comments