syntheses:dotnet-solution-structure
Differences
This shows you the differences between two versions of the page.
| syntheses:dotnet-solution-structure [16/07/2026 03:54] – created - external edit 127.0.0.1 | syntheses:dotnet-solution-structure [15/10/2026 05:26] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== .NET Solution - product/ | ||
| - | |||
| - | ===== Notes ===== | ||
| - | |||
| - | |||
| - | |||
| - | ===== Summary ===== | ||
| - | |||
| - | ====== .NET Solution - product/ | ||
| - | |||
| - | ===== Location ===== | ||
| - | |||
| - | * **Repo:** '' | ||
| - | * **Path:** '' | ||
| - | * **Solution file:** '' | ||
| - | * **Build system:** .NET (Directory.Build.props, | ||
| - | * **Runtime: | ||
| - | |||
| - | ===== Project Structure ===== | ||
| - | |||
| - | < | ||
| - | product/ | ||
| - | ├── AdminSite/ | ||
| - | ├── Analyzers/ | ||
| - | ├── Authentication/ | ||
| - | ├── ClassicPanel/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── Configuration.* | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── Controllers.Shared/ | ||
| - | ├── Core/ — Core shared libraries | ||
| - | ├── Domain/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── Environment/ | ||
| - | ├── HostDaemon/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── Hosting.AspNetCore/ | ||
| - | ├── Hosting/ | ||
| - | ├── IntegrationTest/ | ||
| - | ├── Mammoth.Wooly/ | ||
| - | ├── MigratorDotNet/ | ||
| - | ├── MonoRail/ | ||
| - | ├── MpayClient/ | ||
| - | ├── PanelSite/ | ||
| - | │ | ||
| - | ├── Persistence/ | ||
| - | ├── Persistence.Mappings/ | ||
| - | ├── Schema/ | ||
| - | ├── StatsDaemon/ | ||
| - | ├── SynergyClient/ | ||
| - | ├── Tests/ | ||
| - | ├── WebApi/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── devenv/ | ||
| - | ├── lib/ — Shared libraries | ||
| - | ├── logs/ — Log files | ||
| - | ├── packages-custom/ | ||
| - | ├── scripts/ | ||
| - | </ | ||
| - | |||
| - | ===== Domain Entities (product/ | ||
| - | |||
| - | Core objects customers interact with: | ||
| - | |||
| - | * **Guest** — A VPS/server instance. Has FirewallRules, | ||
| - | * **GuestDisk** — Guest disk configuration | ||
| - | * **GuestDiskIndex** — Disk indexing | ||
| - | * **GuestExtras** — Guest extras/ | ||
| - | * **GuestFirewallRule** — Individual firewall rule with SourceAddresses, | ||
| - | * **GuestHostLog** — Guest host logging | ||
| - | * **GuestLocation** — Guest datacentre location | ||
| - | * **GuestMaintenanceCommand** — Maintenance window commands | ||
| - | * **GuestRuntimeInfo** — Runtime state | ||
| - | * **GuestUptimeCommand** — Uptime tracking | ||
| - | * **Host** — Physical compute node | ||
| - | * **HostCommand** — Commands sent to compute hosts | ||
| - | * **HostUtilization** — Host resource usage | ||
| - | * **Interface** — Network interface | ||
| - | * **Invoice** / **InvoiceLineItem** — Billing | ||
| - | * **InvoiceFoldingCommand** — Invoice aggregation | ||
| - | * **Kernel** — Guest kernel selection | ||
| - | * **Lease** — Billing lease | ||
| - | |||
| - | Entity interfaces (command markers): | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ===== Domain Validators (product/ | ||
| - | |||
| - | Key validators (attribute-based): | ||
| - | |||
| - | * **ValidateAddressListAttribute** — Validates individual IP addresses (NOT collection count) | ||
| - | * **ValidateCidrBlockAttribute** — CIDR block validation | ||
| - | * **ValidateCollectionNotEmptyAttribute** — Non-empty collection check | ||
| - | * **ValidateCreditCardNumberAttribute** — Credit card validation | ||
| - | * **ValidateDnsRecordValueAttribute** — DNS record value validation | ||
| - | * **ValidateEmailAttribute** — Email format | ||
| - | * **ValidateHostnameAttribute** — Hostname format | ||
| - | * **ValidateIPv4Attribute** — IPv4 address validation | ||
| - | * **ValidateNotCardNumberAttribute** — Anti-card-number validation | ||
| - | * **ValidatePasswordComplexityAttribute** — Password strength | ||
| - | * **ValidatePortListAttribute** — Port list validation | ||
| - | * **ValidateSshKeyAttribute** — SSH key format | ||
| - | * **CustomerEmailUniqueAttribute** — Email uniqueness | ||
| - | * **CustomerHostnameUniqueAttribute** — Hostname uniqueness | ||
| - | * **CustomerSshKeyNameUniqueAttribute** — SSH key name uniqueness | ||
| - | * **GuestIsEligibleForFacilityMigrationAttribute** — Migration eligibility | ||
| - | |||
| - | ===== WebApi Controllers (product/ | ||
| - | |||
| - | Customer-facing API endpoints: | ||
| - | |||
| - | ^ Controller ^ Resource ^ Notes ^ | ||
| - | | AccountsController | Account management | | | ||
| - | | ActionsController | Guest actions (start/ | ||
| - | | CustomersController | Customer profiles | | | ||
| - | | DataUsagesController | Data usage tracking | | | ||
| - | | DomainsController | Domain registration/ | ||
| - | | FailoverIpsController | Failover IP management | | | ||
| - | | ImagesController | Guest images | | | ||
| - | | InternalController | Internal/ | ||
| - | | InvoiceDocumentController | Invoice documents | | | ||
| - | | KeysController | SSH key management | | | ||
| - | | LoadBalancersController | Load balancer management | | | ||
| - | | NetworkAlertController | Network alerts | | | ||
| - | | RegionsController | Datacentre regions | | | ||
| - | | ReverseNamesController | Reverse DNS | | | ||
| - | | SampleSetsController | | | | ||
| - | | ServersController | Guest/ | ||
| - | | SizesController | Plan sizes | | | ||
| - | | SoftwareController | Guest software/OS | | | ||
| - | | TestController | Health/ | ||
| - | | VpcsController | VPC management | | | ||
| - | |||
| - | ===== Key Service: AdvancedFirewallApiService ===== | ||
| - | |||
| - | * **Method:** '' | ||
| - | * **Called by:** PanelSite frontend, binarylane-cli, | ||
| - | * **Authentication: | ||
| - | |||
| - | ===== Authentication Flow ===== | ||
| - | |||
| - | * WebApi supports API key and session-based auth | ||
| - | * ClassicPanel uses session-based auth via MonoRail | ||
| - | * PanelSite (SPA) uses session/API key auth with React frontend | ||
| - | |||
| - | ===== Build & Deployment ===== | ||
| - | |||
| - | * **Solution: | ||
| - | * **Package management: | ||
| - | * **Lock files:** '' | ||
| - | * **CI/CD:** '' | ||
| - | * **Code analysis:** '' | ||
| - | * **Pre-commit hooks:** '' | ||
| - | |||
| - | ===== Related ===== | ||
| - | |||
| - | ==== Related Pages ==== | ||
| - | |||
| - | * [[vps-monorepo-structure|VPS Monorepo - Structure Overview]] | ||
| - | * [[binarylane-architecture-panels-customer-entry-points|BinaryLane Architecture - Panels & Customer Entry Points]] | ||
| - | * [[customer-side-bug-finding-methodology|Customer-Side Bug Finding Methodology]] | ||
syntheses/dotnet-solution-structure.1784174059.txt.gz · Last modified: by 127.0.0.1
