Core aycode behaviour, business logic or general models
Go to file
Loretta 9f8c027366 Add expression serialization & chain API for JSON deserialization
- Introduced a high-performance, reusable "chain" API for JSON deserialization and object population, enabling parsed JSON to be reused for multiple deserializations without reparsing. Exposed via new extension methods and interfaces (`IDeserializeChain<T>`, `IPopulateChain`).
- Added comprehensive infrastructure for serializing and deserializing .NET Expression trees to a universal DTO (`AcExpressionNode`), with full round-trip support and robust handling of constants, closures, and queryable expressions.
- Centralized all property accessor and expression utilities in `AcSerializerCommon` to avoid duplication and improve maintainability.
- Enhanced both JSON and binary serializers to support Expression and IQueryable types, with automatic conversion to/from `AcExpressionNode`.
- Refactored type metadata and property accessor logic for performance and code reuse.
- Added extensive unit tests for the new chain API and expression serialization, and reorganized test models and namespaces for clarity.
- Improved logging, error handling, and test infrastructure.
- Misc: Added settings for local builds, updated project files, and cleaned up obsolete code.
2025-12-29 15:28:46 +01:00
.claude Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AyCode.Benchmark Refactor: Add high-perf JSON serializer & merge support 2025-12-14 19:34:49 +01:00
AyCode.Core Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AyCode.Core.Server Enhance JSON handling and add hybrid reference support 2025-12-08 15:50:48 +01:00
AyCode.Core.Tests Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AyCode.Core.Tests.Internal Enhance JSON handling and add hybrid reference support 2025-12-08 15:50:48 +01:00
AyCode.Database Enhance JSON handling and add hybrid reference support 2025-12-08 15:50:48 +01:00
AyCode.Database.Tests microsoft packages update 2025-12-01 16:18:36 +01:00
AyCode.Database.Tests.Internal Refactor JSON/SignalR infra; add full test & benchmark suite 2025-12-11 21:25:50 +01:00
AyCode.Entities AcModelDtoExtension improvements 2025-09-12 13:36:11 +02:00
AyCode.Entities.Server Add .targets file 2025-08-31 13:07:34 +02:00
AyCode.Interfaces improvements, fixes 2025-11-26 09:42:00 +01:00
AyCode.Interfaces.Server Add .targets file 2025-08-31 13:07:34 +02:00
AyCode.Models Add .targets file 2025-08-31 13:07:34 +02:00
AyCode.Models.Server Add .targets file 2025-08-31 13:07:34 +02:00
AyCode.Services Add opt-in binary diagnostics for SignalR serialization 2025-12-20 08:43:22 +01:00
AyCode.Services.Server Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AyCode.Services.Server.Tests Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AyCode.Services.Tests Refactor: Add high-perf JSON serializer & merge support 2025-12-14 19:34:49 +01:00
AyCode.Utils microsoft packages update 2025-12-01 16:18:36 +01:00
AyCode.Utils.Server Add .targets file 2025-08-31 13:07:34 +02:00
TestChainRunner Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
.gitattributes first commit 2023-11-08 09:35:34 +01:00
.gitignore Add size_output.txt to .gitignore 2025-12-14 04:46:54 +01:00
AllBenchmarksDropdown.html Refactor serializer tests, fix deserializer bugs, add Gzip 2025-12-19 19:29:12 +01:00
AyCode.Core.sln Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AyCode.Core.targets CollectionExtensions UpdateCollectionById<TId> 2025-11-07 14:10:30 +01:00
Directory.Build.props Centralize test/benchmark results; optimize deserializer 2025-12-13 09:59:18 +01: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
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
test.runsettings Centralize test/benchmark results; optimize deserializer 2025-12-13 09:59:18 +01:00