A modular, enterprise-grade framework starting from a single foundational library. This repository contains the source, documentation, samples and tests for the VisionaryCoder Framework ecosystem.
# Clone
git clone https://github.com/visionarycoder/Framework.git
cd Framework
# Restore
dotnet restore VisionaryCoder.Framework.sln
# Build & Test
dotnet build VisionaryCoder.Framework.sln --configuration Release
dotnet test VisionaryCoder.Framework.sln --configuration ReleaseThis repository currently contains a single main library that aggregates foundational capabilities. The intent is to progressively decompose this monolith into smaller packages (see ADRs and roadmap in docs/), and this README serves as the top-level index linking to module-level READMEs and developer guidance to make that process easier.
src/VisionaryCoder.Frameworkβ Core library and shared utilities (seesrc/VisionaryCoder.Framework/README.md)tests/VisionaryCoder.Framework.Testsβ Unit tests validating framework behaviors
- Core project README:
src/VisionaryCoder.Framework/README.md - Filtering subsystem:
src/VisionaryCoder.Framework/Filtering/README.md - Querying serialization & helpers:
src/VisionaryCoder.Framework/Querying/README.md - Documentation and architecture decisions:
docs/(ADRs, best-practices, diagrams)
Use these module READMEs as the canonical documentation when splitting the project into multiple packages.
/.copilot
/docs
/src/VisionaryCoder.Framework
ββ Filtering/
ββ Querying/
ββ VisionaryCoder.Framework.csproj
/tests/VisionaryCoder.Framework.Tests
/.github
- Architectural Decision Records (ADRs):
docs/adr/index.md - Design diagrams and best-practice capsules:
docs/* - Roadmap notes:
docs/reviews/*
If you plan to split this repository into multiple packages, follow these high-level steps:
- Identify volatility boundaries using VBD (Volatility-Based Decomposition). Good candidates: Filtering, Querying/Serialization, Execution Strategies, POCO helpers, EFCore adapters.
- Create new projects under
src/for each package and move code with one-class-per-file, preserving namespaces (e.g.,VisionaryCoder.Framework.Filtering.Abstractions). - Keep
IFilterExecutionStrategyand other small provider-agnostic interfaces in their own*.Abstractionspackage to avoid circular references. - Introduce
VisionaryCoder.Framework.*.csprojprojects with clear dependencies and update solution file. - Add module README files (use those in this repo as templates) and ADRs to justify the split.
Contributions are welcome. Please open an issue or ADR proposal for large architectural changes. Keep PRs focused and update module READMEs when moving code.
This document is the canonical solution-level index. See module READMEs for implementation details and examples.
Last synchronized with solution structure: 2025-11-14