-
Notifications
You must be signed in to change notification settings - Fork 11
Open
2 / 22 of 2 issues completedOpen
2 / 22 of 2 issues completed
Copy link
Description
Epic Objective
This epic tracks the complete decoupling of the legacy pNode class from the Windows Forms UI framework, specifically the TreeNode dependency, by implementing the SOLID-compliant architecture and migration strategy described in issue #67.
Goal
- Achieve a fully testable, UI-agnostic core node data model
- Ensure the core library (
pWordLib) contains no direct references to Windows Forms orTreeNode - Provide a migration path with minimal disruption to the existing codebase
Tasks (Sub-issues)
- Create SOLID Core Interfaces
- Implement
INodeDataand related interfaces in a newInterfacesfolder.
- Implement
- Implement Pure Data Model
- Develop
PNodeDatainImplementationfolder with no UI dependencies.
- Develop
- Build Adapter Pattern for UI
- Implement
ITreeNodeAdapterandPNodeTreeAdapterin anAdaptersfolder to bridge with Windows Forms as needed.
- Implement
- Add Initial Unit Tests for pWordLib library PR 70
- Build working tests that are debuggable are runable.
- Write Comprehensive Unit Tests - Create a test suite for
PNodeDatafocusing on data manipulation, attributes, and operations. - Refactor Existing Code to Use New Interfaces
- Gradually replace direct usage of
pNode/TreeNodewithINodeData/adapters throughout the codebase.
- Gradually replace direct usage of
- Implement Dependency Injection
- Refactor constructors/services to accept abstractions instead of concrete classes.
- Migrate Serialization and XML Logic
- Move XML/serialization logic out of UI classes into pure service classes.
- Remove Legacy Windows Forms Dependencies
- Deprecate/remove all Windows Forms references from
pWordLibexcept in adapters.
- Deprecate/remove all Windows Forms references from
- Document the Migration and API Changes
- Update documentation to reflect the new architecture and usage patterns.
- Final Cleanup and Legacy Code Removal
- Remove/deprecate the old
pNodeclass and related obsolete code.
- Remove/deprecate the old
Each of these tasks will be tracked as a sub-issue under this epic. The epic is considered complete when all sub-issues are resolved, and pWordLib is UI-framework agnostic.
Reference: See Refactor pNode to align with solid principles for full context, architecture, and migration phases.
Acceptance Criteria:
- No direct references to
TreeNodeor Windows Forms in core library code - All functionalities covered by unit tests
- Adapters are the only UI-specific bridge
- Documentation and codebase reflect the new design
This issue serves as the parent epic. Please link all related sub-issues here.
Sub-issues
Metadata
Metadata
Assignees
Labels
No labels