Commit Graph

20 Commits

Author SHA1 Message Date
Loretta c29b3daa0e Refactor JSON/SignalR infra; add full test & benchmark suite
Major overhaul of JSON serialization/deserialization:
- Added AcJsonDeserializationException for clearer error reporting.
- Robust JSON validation, type checking, and double-serialization detection.
- Fast-path primitive (de)serialization for all common .NET types.
- Direct support for Dictionary<TKey, TValue> and improved collection handling.
- Enhanced $id/$ref reference resolution and in-place merging.
- Optimized property metadata caching and filtering.
- Comprehensive error handling with detailed messages.
- Extensive new tests for primitives, collections, references, and error cases.
- Benchmarks for serialization, deserialization, and merge scenarios.

SignalR infrastructure improvements:
- Refactored AcSignalRClientBase/AcWebSignalRHubBase for testability (virtual methods, test constructors).
- Added SignalRRequestModelPool for efficient request/response tracking.
- Improved parameter deserialization and IdMessage handling.
- New tags (PingTag, EchoTag) for SignalR messaging.

New test and benchmark infrastructure for SignalR:
- Shared test models and data factories for DTOs, primitives, and complex graphs.
- In-memory, dependency-free SignalR client/hub for round-trip testing.
- Exhaustive test suites for message processing, method invocation, and edge cases (including prior production bugs with Task<T>).
- Benchmarks for SignalR serialization, deserialization, and round-trip performance.

Other changes:
- Improved TaskHelper.WaitTo/WaitToAsync with more accurate polling and cancellation support.
- ExtensionMethods.InvokeMethod now properly unwraps Task/ValueTask results.
- General code cleanup, improved comments, and removal of obsolete code.
- Project references updated for shared test/benchmark infrastructure.

These changes deliver a robust, high-performance, and fully tested JSON/SignalR (de)serialization system, ready for production and advanced testing scenarios.
2025-12-11 21:25:50 +01:00
Loretta f3ec941774 microsoft packages update 2025-12-01 16:18:36 +01:00
Loretta a56f96903e nuget packages update 2025-10-20 16:45:31 +02:00
Loretta 1a73253867 nuget packages update 2025-09-19 14:42:54 +02:00
Loretta 2edc099017 Add .targets file 2025-08-31 13:07:34 +02:00
Loretta af2eb897f1 build outputpath set to "bin\FruitBank\" 2025-08-28 14:53:12 +02:00
Loretta 6bea2c458d packages update 2025-08-28 14:03:40 +02:00
Loretta ff59d2c2df upgrade to net9.0 2025-08-28 13:58:55 +02:00
Loretta 3e6ba01df2 IAcSoftRemoveEntity 2024-11-13 10:58:39 +01:00
Loretta 4b9fff9521 updates 2024-10-28 14:02:06 +01:00
Loretta 007d01a115 packages updates 2024-08-28 14:20:38 +02:00
Loretta e9af9b1f1f .net packages update to 8.0.8; fixes, etc... 2024-08-14 16:05:32 +02:00
Loretta 956aaa2db6 json fix 2024-07-18 19:20:51 +02:00
Loretta 231c487d5e nuget packages update 2024-06-17 07:03:32 +02:00
jozsef.b@aycode.com 4f736312cc Microsoft packages update 2024-05-29 16:16:00 +02:00
jozsef.b@aycode.com 4ce3ffea84 improvements, fixes, etc 2024-05-25 22:16:22 +02:00
jozsef.b@aycode.com 986e70bfe5 refactroing, improvements, fixes, etc... 2024-05-18 05:12:23 +02:00
jozsef.b@aycode.com c1b0fcd0d7 refactoring, improvements, fixes... 2024-05-03 15:37:41 +02:00
jozsef.b@aycode.com 7360291242 refactoring, improvements... 2024-04-24 06:50:45 +02:00
jozsef.b@aycode.com daf35ebf04 Login, Register, ProjectSalt, PasswordHash, meg a faszom sem tudja már... 2024-04-22 17:29:35 +02:00