7.3 KiB
sessionId
| sessionId |
|---|
| session-260925-234832-1pc0 |
Requirements
Overview & Goals
Rename all projects in the repository from single-word names (Build, Deploy, Model, Web) to qualified names starting with the ZeroSpace. prefix (ZeroSpace.Build, ZeroSpace.Deploy, ZeroSpace.Model, ZeroSpace.Web). Ensure all solution definitions, project files, folder paths, project references, namespaces, and script paths are updated consistently.
Scope
- In Scope:
- Renaming project directories:
ZS/Build→ZS/ZeroSpace.Build,ZS/Deploy→ZS/ZeroSpace.Deploy,ZS/Model→ZS/ZeroSpace.Model,ZS/Web→ZS/ZeroSpace.Web. - Renaming
.csprojfiles:Build.csproj→ZeroSpace.Build.csproj,Deploy.csproj→ZeroSpace.Deploy.csproj,Model.csproj→ZeroSpace.Model.csproj,Web.csproj→ZeroSpace.Web.csproj. - Updating
ZS/ZeroSpace.slnproject declarations and configuration mappings. - Updating
<ProjectReference>inZeroSpace.Web.csproj. - Updating C# namespaces and
@usingdirectives to match theZeroSpace.*convention. - Updating hardcoded project/folder paths in
ZeroSpace.Build/Program.csandZeroSpace.Deploy/Program.cs.
- Renaming project directories:
- Out of Scope:
- Modifying business logic or UI behavior in the Blazor web application.
- Renaming Markdown documentation files under
zs.docs.
Technical Design
Current Implementation
The solution contains 4 projects in ZS/:
ZS/Model/Model.csproj: Class library declaringnamespace Model;.ZS/Build/Build.csproj: Console generator referencingModel/Units.g.csand scanning forZS.sln.ZS/Deploy/Deploy.csproj: Deployment tool targeting../Web/Web.csproj.ZS/Web/Web.csproj: Blazor WebAssembly app referencing..\Model\Model.csprojand usingWeb,Web.Layout, andModel.ZS/ZeroSpace.sln: Solution listingWeb,Build,Model, andDeploy.
Key Decisions
- Rename Project Directories: Project folder names will be updated to match the project names (
ZeroSpace.Build,ZeroSpace.Deploy,ZeroSpace.Model,ZeroSpace.Web) to maintain standard .NET convention where directory name matches the assembly/project name. - Update Namespaces: Align namespaces (
ZeroSpace.Model,ZeroSpace.Web) with project naming for consistency across the solution. - Fix Solution Search in Build Tool: Update
FindSolutionRootinZeroSpace.Build/Program.csto locateZeroSpace.sln(or any*.sln).
Proposed Changes
- Project Structure & Naming:
ZS/Build/→ZS/ZeroSpace.Build/ZS/Build/Build.csproj→ZS/ZeroSpace.Build/ZeroSpace.Build.csprojZS/Deploy/→ZS/ZeroSpace.Deploy/ZS/Deploy/Deploy.csproj→ZS/ZeroSpace.Deploy/ZeroSpace.Deploy.csprojZS/Model/→ZS/ZeroSpace.Model/ZS/Model/Model.csproj→ZS/ZeroSpace.Model/ZeroSpace.Model.csprojZS/Web/→ZS/ZeroSpace.Web/ZS/Web/Web.csproj→ZS/ZeroSpace.Web/ZeroSpace.Web.csproj
- Solution File (
ZS/ZeroSpace.sln):- Update project name strings and project file paths to
ZeroSpace.*.
- Update project name strings and project file paths to
- Project Reference (
ZS/ZeroSpace.Web/ZeroSpace.Web.csproj):- Change
..\Model\Model.csprojto..\ZeroSpace.Model\ZeroSpace.Model.csproj.
- Change
- Source Files & Namespaces:
ZS/ZeroSpace.Model/UnitData.cs:namespace ZeroSpace.Model;ZS/ZeroSpace.Model/UnitEfficiency.cs:namespace ZeroSpace.Model;ZS/ZeroSpace.Model/Units.g.cs:namespace ZeroSpace.Model;ZS/ZeroSpace.Build/Program.cs: update model path toZeroSpace.Model, generatenamespace ZeroSpace.Model;, checkZeroSpace.sln.ZS/ZeroSpace.Deploy/Program.cs: update path lookups forZeroSpace.WebandZeroSpace.Web.csproj.ZS/ZeroSpace.Web/Program.cs:using ZeroSpace.Web;ZS/ZeroSpace.Web/_Imports.razor:@using ZeroSpace.Web,@using ZeroSpace.Web.Layout,@using ZeroSpace.ModelZS/ZeroSpace.Web/Pages/Units.razor:@using ZeroSpace.Model
Architecture Diagram
graph TD
Sln[ZS/ZeroSpace.sln] --> Web[ZS/ZeroSpace.Web]
Sln --> Model[ZS/ZeroSpace.Model]
Sln --> Build[ZS/ZeroSpace.Build]
Sln --> Deploy[ZS/ZeroSpace.Deploy]
Web --> Model
Build -. generates Units.g.cs .-> Model
Deploy -. publishes .-> Web
Testing
Validation Approach
- Verify solution builds cleanly via CLI (
dotnet build ZS/ZeroSpace.sln). - Run code generation via
dotnet run --project ZS/ZeroSpace.Build/ZeroSpace.Build.csprojto confirmUnits.g.csis generated with the proper namespace. - Validate project references and dependencies resolve without warnings or missing assembly errors.
Key Scenarios
dotnet build ZS/ZeroSpace.slnsucceeds with 0 errors and 0 warnings.ZeroSpace.Webcompiles with reference toZeroSpace.Model.ZeroSpace.Buildlocateszs.docsand writes generated code intoZS/ZeroSpace.Model/Units.g.cs.
Edge Cases
- Relative path traversal from build outputs (
AppContext.BaseDirectoryinZeroSpace.Deploy) resolving the renamedZeroSpace.Webproject directory. FindSolutionRoothelper locatingZeroSpace.slnaccurately.
Delivery Steps
✓ Step 1: Rename project directories and project files
Project folders and .csproj files follow the ZeroSpace.* naming convention.
- Rename directory
ZS/ModeltoZS/ZeroSpace.Modeland project fileModel.csprojtoZeroSpace.Model.csproj. - Rename directory
ZS/BuildtoZS/ZeroSpace.Buildand project fileBuild.csprojtoZeroSpace.Build.csproj. - Rename directory
ZS/DeploytoZS/ZeroSpace.Deployand project fileDeploy.csprojtoZeroSpace.Deploy.csproj. - Rename directory
ZS/WebtoZS/ZeroSpace.Weband project fileWeb.csprojtoZeroSpace.Web.csproj.
✓ Step 2: Update solution file and project references
ZeroSpace.sln and project reference paths correctly reference the renamed projects and directories.
- Update
ZS/ZeroSpace.slnproject entries and relative paths forZeroSpace.Web,ZeroSpace.Build,ZeroSpace.Model, andZeroSpace.Deploy. - Update project reference
<ProjectReference Include="..\ZeroSpace.Model\ZeroSpace.Model.csproj" />inZS/ZeroSpace.Web/ZeroSpace.Web.csproj.
✓ Step 3: Update namespaces and code path references
Source code files, generator scripts, and deployment scripts use the updated ZeroSpace.* namespaces and folder paths.
- Update C# namespaces in
ZS/ZeroSpace.Model/UnitData.cs,ZS/ZeroSpace.Model/UnitEfficiency.cs, andZS/ZeroSpace.Model/Units.g.cstoZeroSpace.Model. - Update code generator in
ZS/ZeroSpace.Build/Program.csto targetZeroSpace.Modelfolder, outputnamespace ZeroSpace.Model;, and verify solution root resolution forZeroSpace.sln. - Update deploy script paths in
ZS/ZeroSpace.Deploy/Program.csto locateZeroSpace.WebandZeroSpace.Web.csproj. - Update
ZS/ZeroSpace.Web/Program.cs,ZS/ZeroSpace.Web/_Imports.razor, andZS/ZeroSpace.Web/Pages/Units.razorto referenceZeroSpace.Web,ZeroSpace.Web.Layout, andZeroSpace.Model.
✓ Step 4: Validate solution build and code generation
The entire solution builds cleanly with zero errors/warnings and code generation runs successfully.
- Run
dotnet build ZS/ZeroSpace.slnto ensure all projects compile and link without errors. - Run
ZeroSpace.Buildconsole application to ensure unit code generation completes and updatesZeroSpace.Model/Units.g.cscorrectly.