Core aycode behaviour, business logic or general models
Go to file
Loretta b1cdf80fad Fix SignalR binary protocol: VarUInt framing & type-safe ser
- Add type-explicit ToBinary/SerializeToBinary overloads to preserve runtime type info for object? serialization, fixing deserialization bugs.
- Refactor VarUInt encoding/decoding to a prefix-tiered scheme (1–5 bytes), replacing LEB128 and preventing buffer overrun/corruption.
- Update all SignalR and serialization call sites to use new overloads.
- Sync SignalR binary protocol VarUInt decoding logic; fix test regressions.
- Add SIGNALR_BINARY_PROTOCOL_VARUINT.md with new wire-format spec and rationale.
- Add debug logging for argument serialization.
- Update .gitignore to not ignore itself.
- Resolves 65 KB value cap and missing in-band abort marker; requires both sender/receiver to use new framing for full compatibility.
2026-05-27 05:47:23 +02:00
.claude SGen null-handling parity, micro-opt CV, doc & bench fixes 2026-05-24 07:39:21 +02:00
.github [LOADED_DOCS: 3 files, no new loads] 2026-05-06 13:52:35 +02:00
AyCode.Benchmark Refactor AcBinarySerializer to use declared type dispatch 2026-05-26 07:56:25 +02:00
AyCode.Core Fix SignalR binary protocol: VarUInt framing & type-safe ser 2026-05-27 05:47:23 +02:00
AyCode.Core.Serializers.Console SGen null-handling parity, micro-opt CV, doc & bench fixes 2026-05-24 07:39:21 +02:00
AyCode.Core.Serializers.SourceGenerator Unify AcBinary string marker; prefix-tier VarUInt encoding 2026-05-26 16:24:33 +02:00
AyCode.Core.Server AcBinary: Hot/cold marker split for string deserialization 2026-05-18 15:20:56 +02:00
AyCode.Core.Tests SGen null-handling parity, micro-opt CV, doc & bench fixes 2026-05-24 07:39:21 +02:00
AyCode.Core.Tests.Internal Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
AyCode.Database [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00
AyCode.Database.Tests Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
AyCode.Database.Tests.Internal Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
AyCode.Entities [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00
AyCode.Entities.Server [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00
AyCode.Interfaces Add structured metadata blocks to all project/repo docs 2026-03-30 08:53:56 +02:00
AyCode.Interfaces.Server Add structured metadata blocks to all project/repo docs 2026-03-30 08:53:56 +02:00
AyCode.Models Add structured metadata blocks to all project/repo docs 2026-03-30 08:53:56 +02:00
AyCode.Models.Server [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00
AyCode.Services Fix SignalR binary protocol: VarUInt framing & type-safe ser 2026-05-27 05:47:23 +02:00
AyCode.Services.Server Fix SignalR binary protocol: VarUInt framing & type-safe ser 2026-05-27 05:47:23 +02:00
AyCode.Services.Server.Tests Refactor MaxDepth handling: explicit Throw/Truncate/Disable 2026-05-14 14:13:48 +02:00
AyCode.Services.Tests Fix SGen null complex prop bug, add CHUNK_ABORT to SignalR 2026-05-23 09:26:48 +02:00
AyCode.Utils Add structured metadata blocks to all project/repo docs 2026-03-30 08:53:56 +02:00
AyCode.Utils.Server Add structured metadata blocks to all project/repo docs 2026-03-30 08:53:56 +02:00
docs Fix SGen ref-handling asymmetry; add regression tests 2026-05-19 08:32:39 +02:00
.gitattributes
.gitignore Add /reports to .gitignore 2026-01-06 08:58:03 +01:00
.plan Refactor: move buffer/position to context for zero dispatch 2026-02-11 13:02:24 +01:00
AllBenchmarksDropdown.html Refactor serializer tests, fix deserializer bugs, add Gzip 2025-12-19 19:29:12 +01:00
AyCode.Core.sln Add SGenOnly build config and centralize build settings 2026-05-19 17:41:06 +02:00
AyCode.Core.targets Switch to net9.0; improve AcBinary diagnostics & chunk fallback 2026-05-22 23:37:44 +02:00
CLAUDE.md SignalR: Add streaming & zero-copy binary protocol 2026-04-04 00:47:48 +02:00
CONSUMERS.md [LOADED_DOCS: 3 files, no new loads] 2026-04-26 19:29:21 +02:00
Directory.Build.props Add SGenOnly build config and centralize build settings 2026-05-19 17:41:06 +02:00
MergeBenchmarksHtmlDropdown.bat Refactor serializer tests, fix deserializer bugs, add Gzip 2025-12-19 19:29:12 +01:00
MergeBenchmarksHtmlDropdown.ps1 Refactor serializer tests, fix deserializer bugs, add Gzip 2025-12-19 19:29:12 +01:00
README.md [LOADED_DOCS: 3 files, no new loads] 2026-04-28 06:36:39 +02:00
RunFullBenchmark.bat Refactor serializer tests, fix deserializer bugs, add Gzip 2025-12-19 19:29:12 +01:00
RunQuickBenchmark.bat Expand QuickBenchmark suite & add CLI scripts 2025-12-15 12:00:03 +01:00
RunQuickBenchmark.ps1 Expand QuickBenchmark suite & add CLI scripts 2025-12-15 12:00:03 +01:00
TestChainApi.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
nuget.config AcBinary: Hot/cold marker split for string deserialization 2026-05-18 15:20:56 +02:00
test.runsettings Centralize test/benchmark results; optimize deserializer 2025-12-13 09:59:18 +01:00

README.md

AyCode.Core Solution

.NET 9 core framework providing serialization (Binary, JSON, Toon), entity abstractions, database access, services, and shared utilities. Used as the foundation layer for AyCode applications.

LLM Context

Domain rules and key pitfalls live in a single file: .github/copilot-instructions.md

Tool Auto-loaded Action needed
GitHub Copilot copilot-instructions.md None
Claude Code CLAUDE.md → references above None
Cursor / Windsurf README.md Read copilot-instructions.md via @file

Solution-level docs in docs/:

Document Topic
GLOSSARY.md Core terminology reference
ARCHITECTURE.md Solution layers, dependency rules
CONVENTIONS.md Coding conventions

Project-level docs — each project's docs/ folder documents the code it defines:

Project Documents
AyCode.Core/docs/ BINARY/ (README, FORMAT, FEATURES, OPTIONS, …), LOGGING/ (README, ISSUES, TODO)
AyCode.Core.Server/docs/ LOGGING/README.md (server-side variant)
AyCode.Services/docs/ SIGNALR/, SIGNALR_BINARY_PROTOCOL/, LOGGING/README.md (remote variant)
AyCode.Services.Server/docs/ SIGNALR/ (README), SIGNALR_DATASOURCE/ (README + ISSUES + TODO)

Solution Structure

Project Purpose README
AyCode.Core Core library: serializers, compression, logging, validation README
AyCode.Core.Server Server-side core extensions (GlobalLogger) README
AyCode.Core.Serializers.SourceGenerator Roslyn source generator for binary serializers README
AyCode.Core.Serializers.Console Serializer benchmark console app README
AyCode.Interfaces Entity interfaces: IId, IForeignKey, profiles, addresses README
AyCode.Interfaces.Server Server-side interfaces (login services) README
AyCode.Entities Abstract entity base classes (User, Profile, Address, Company) README
AyCode.Entities.Server Server-side entities (LogItem) README
AyCode.Models DTOs and view models README
AyCode.Models.Server Server-side models (Login, DynamicMethods) README
AyCode.Services Client-side services (SignalR, logging, login) README
AyCode.Services.Server Server-side services (SignalR hub, email, login) README
AyCode.Database EF Core data access layer with DAL pattern README
AyCode.Utils Zero-dependency utilities (string, datetime, lock wrappers) README
AyCode.Utils.Server Server-side utilities (placeholder) README

Test & Benchmark Projects

Project Purpose README
AyCode.Benchmark BenchmarkDotNet performance suite README
AyCode.Core.Tests Serialization, compression, and utility tests README
AyCode.Core.Tests.Internal Internal entity implementations for DB tests README
AyCode.Database.Tests Database layer test base classes README
AyCode.Database.Tests.Internal Concrete database integration tests README
AyCode.Services.Tests Service layer tests README
AyCode.Services.Server.Tests Server-side SignalR and service tests README