Goal:
Refactor the application architecture by isolating all business logic from the Windows Forms UI. This will create a stable, comprehensively tested foundation (OpNode.Core) essential for supporting a Free/Pro tiered business model.
Rationale:
The current tight coupling with WinForms prevents reliable unit testing. This Epic restructures the application to handle naming conventions, core operations (e.g., ulu:op="sum"), and robust bidirectional serialization (XML and JSON) in a decoupled, testable library.
Epic Roadmap and Sub-Issues
Phase 1: Architectural Decoupling and Naming Conventions
Issue 1.1: Setup OpNode.Core and Test Projects
Issue 1.2: Refactor and Test Namespace Validation
Issue 1.3: Refactor and Test Prefix Logic
Issue 1.4: Define and Test Suffix/Versioning Logic
Phase 2: Data Modeling and Core Operations
Issue 2.1: Define the PNode/OpNode Data Model (DTO)
Issue 2.2: Define Operation Schema and Abstractions (ulu:op)
Issue 2.3: Implement and Test Basic Arithmetic Operations
Phase 3: Serialization and Interoperability
Issue 3.1: Implement and Test XML Serialization Round-Tripping
Issue 3.2: Implement and Test JSON Serialization Round-Tripping
Issue 3.3: Cross-Format Integrity Testing
This Epic will track the creation and progress of all sub-issues/tasks described above. Each sub-issue can be created as a separate GitHub issue and linked to this Epic for holistic tracking of architectural refactor and modernization.
Goal:
Refactor the application architecture by isolating all business logic from the Windows Forms UI. This will create a stable, comprehensively tested foundation (
OpNode.Core) essential for supporting a Free/Pro tiered business model.Rationale:
The current tight coupling with WinForms prevents reliable unit testing. This Epic restructures the application to handle naming conventions, core operations (e.g.,
ulu:op="sum"), and robust bidirectional serialization (XML and JSON) in a decoupled, testable library.Epic Roadmap and Sub-Issues
Phase 1: Architectural Decoupling and Naming Conventions
Issue 1.1: Setup OpNode.Core and Test Projects
OpNode.Core(Class Library) for business logic.OpNode.Core.Tests(Unit Test Project).OpNode.Coremust have NO dependency onSystem.Windows.Forms.NamingValidatorservice andValidationResultstructure in Core.Issue 1.2: Refactor and Test Namespace Validation
NamingValidator.ValidateNamespace().Issue 1.3: Refactor and Test Prefix Logic
NamingValidator.ValidatePrefix().Issue 1.4: Define and Test Suffix/Versioning Logic
NamingValidator.ValidateSuffix().Phase 2: Data Modeling and Core Operations
Issue 2.1: Define the PNode/OpNode Data Model (DTO)
PNodeclass structure.Issue 2.2: Define Operation Schema and Abstractions (
ulu:op)IOperationinterface (or abstract class) with anExecute()method.OperationResolverorOperationFactorythat maps the string identifier (e.g.,"sum") to a concreteIOperationinstance.Issue 2.3: Implement and Test Basic Arithmetic Operations
SumOperation,SubtractOperation,MultiplyOperation, andDivideOperation.Phase 3: Serialization and Interoperability
Issue 3.1: Implement and Test XML Serialization Round-Tripping
NodeXmlSerializer.<Node xmlns:ulu="..." ulu:op="sum" version="...">).Issue 3.2: Implement and Test JSON Serialization Round-Tripping
ulu:opin JSON).NodeJsonSerializer(usingSystem.Text.Json).Issue 3.3: Cross-Format Integrity Testing
PNodeserialized to XML and the samePNodeserialized to JSON can both be deserialized back into identical object structures.This Epic will track the creation and progress of all sub-issues/tasks described above. Each sub-issue can be created as a separate GitHub issue and linked to this Epic for holistic tracking of architectural refactor and modernization.