26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
# Solution Structure
|
|
|
|
The solution uses a minimal project structure with four projects in a single deployable.
|
|
|
|
## Project Layout
|
|
|
|
```
|
|
NEW/
|
|
├── JdeScoping.sln
|
|
├── src/
|
|
│ ├── JdeScoping.Host/ # ASP.NET Core host + Blazor server
|
|
│ │ ├── Program.cs # Entry point, service configuration
|
|
│ │ ├── Controllers/ # API endpoints
|
|
│ │ ├── Hubs/ # SignalR hubs
|
|
│ │ ├── BackgroundServices/ # Search processor, data sync
|
|
│ │ └── wwwroot/ # Blazor WASM published output
|
|
│ │
|
|
│ ├── JdeScoping.Client/ # Blazor WebAssembly UI
|
|
│ │ ├── Pages/ # Razor pages
|
|
│ │ ├── Components/ # Reusable Radzen components
|
|
│ │ ├── Services/ # HTTP + SignalR clients
|
|
│ │ └── wwwroot/ # Static assets
|
|
│ │
|
|
│ ├── JdeScoping.Core/ # Shared business logic
|
|
│ │ ├── Models/ # Domain models (WorkOrder, Search, etc.)
|
|
│ │ ├── Interfaces/ # Repository/service contracts
|
|
│ │ ├── Repositories/ # Dapper data access
|
|
│ │ └── Services/ # Business logic
|
|
│ │
|
|
│ └── JdeScoping.Database/ # Database schema migrations
|
|
│ ├── Scripts/ # Versioned SQL scripts
|
|
│ │ ├── 001_CreateSearchTable.sql
|
|
│ │ ├── 002_CreateDataUpdateTable.sql
|
|
│ │ └── ...
|
|
│ └── DatabaseMigrator.cs # DbUp runner
|
|
│
|
|
└── tests/
|
|
└── JdeScoping.Tests/ # xUnit + Shouldly tests
|
|
├── Unit/
|
|
└── Integration/
|
|
```
|
|
|
|
## Project Responsibilities
|
|
|
|
### JdeScoping.Host
|
|
|
|
The deployable Windows Service. Hosts the Blazor WASM client, REST API, SignalR hub, and background services. References `JdeScoping.Core` for business logic.
|
|
|
|
### JdeScoping.Client
|
|
|
|
The Blazor WebAssembly UI. Compiled and published into Host's `wwwroot` folder. Uses Radzen Blazor for components. No direct database access - communicates via HTTP and SignalR.
|
|
|
|
### JdeScoping.Core
|
|
|
|
Business logic and data access. Contains domain models, repository interfaces and implementations, and services. No ASP.NET dependencies - fully testable in isolation.
|
|
|
|
### JdeScoping.Database
|
|
|
|
Database schema management using DbUp. Contains versioned SQL scripts that are embedded as resources and executed in order on application startup. Scripts are idempotent - DbUp tracks which scripts have run in a `SchemaVersions` table.
|
|
|
|
### JdeScoping.Tests
|
|
|
|
Unit and integration tests using xUnit, Shouldly for assertions, and NSubstitute for mocking.
|
|
|
|
## Related Documentation
|
|
|
|
- [Overview](./Overview.md)
|
|
- [Host Project](./HostProject.md)
|
|
- [Blazor Client](./BlazorClient.md)
|
|
- [Core Project](./CoreProject.md)
|
|
- [Database](./Database.md)
|