Implements a high-performance raw byte[] protocol path for SignalR DataSource GetAll/LoadDataSource, using a new IsRawBytesData flag in SignalParams. When enabled, the server pre-serializes response data and sends it as a byte array, which the protocol passes through without further (de)serialization. The client receives the raw bytes and deserializes as needed, avoiding double serialization/deserialization and improving performance for large payloads. Adds SerializerType selection to DataSource, propagates SignalParams through hub and protocol layers, and updates client/server/test code to support the new path. Also includes diagnostics flags for binary serialization debugging and fixes for multi-segment buffer handling. |
||
|---|---|---|
| .. | ||
| README.md | ||
| SignalRDataSourceTestBase.Collections.cs | ||
| SignalRDataSourceTestBase.ContextAndFilter.cs | ||
| SignalRDataSourceTestBase.CrudOperations.cs | ||
| SignalRDataSourceTestBase.LoadDataSource.cs | ||
| SignalRDataSourceTestBase.LoadItem.cs | ||
| SignalRDataSourceTestBase.SaveChanges.cs | ||
| SignalRDataSourceTestBase.Tracking.cs | ||
| SignalRDataSourceTestBase.cs | ||
| SignalRDataSourceTests_List_Binary.cs | ||
| SignalRDataSourceTests_List_Binary_NoRef.cs | ||
| SignalRDataSourceTests_List_Json.cs | ||
| SignalRDataSourceTests_Observable_Binary.cs | ||
| SignalRDataSourceTests_Observable_Json.cs | ||
| TestOrderItemListDataSource.cs | ||
| TestOrderItemObservableDataSource.cs | ||
README.md
SignalRDatasources
DataSource CRUD, collection, tracking, and filter tests. Tested with List and AcObservableCollection over Binary and JSON serialization.
Key Files
Test Base (partial class)
SignalRDataSourceTestBase.cs— Abstract generic base with SignalR infrastructure setup.SignalRDataSourceTestBase.Collections.cs— Count, Clear, Contains tests.SignalRDataSourceTestBase.ContextAndFilter.cs— ContextIds, FilterText, Expression filter with AcExpressionNode.SignalRDataSourceTestBase.CrudOperations.cs— Add (auto-save, tracking-only, duplicate/default ID validation).SignalRDataSourceTestBase.LoadDataSource.cs— Full DataSource load.SignalRDataSourceTestBase.LoadItem.cs— Single item load by ID.SignalRDataSourceTestBase.SaveChanges.cs— Persist tracked changes.SignalRDataSourceTestBase.Tracking.cs— Change tracking states (Add, Update, Delete).
Concrete Test Classes
SignalRDataSourceTests_List_Binary.cs— List + Binary.SignalRDataSourceTests_List_Binary_NoRef.cs— List + Binary without references.SignalRDataSourceTests_List_Json.cs— List + JSON.SignalRDataSourceTests_Observable_Binary.cs— ObservableCollection + Binary.SignalRDataSourceTests_Observable_Json.cs— ObservableCollection + JSON.
Test DataSources
TestOrderItemListDataSource.cs— DataSource with List.TestOrderItemObservableDataSource.cs— DataSource with AcObservableCollection.