Skip to content

Commit f768091

Browse files
committed
Updated README: Add support for Named Pipe channel, introduce NeoBinaryFormatter and move BinaryFormatter to separate package
1 parent dd7bfec commit f768091

1 file changed

Lines changed: 32 additions & 1 deletion

File tree

README.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ Documentation: https://github.com/theRainbird/CoreRemoting/wiki
2121
- Creates proxy objects for remote services at runtime (uses Castle.DynamicProxy under the hood)
2222
- Services can have `SingleCall` or `Singeton` lifetime
2323
- Uses duplex TCP network communication by default (based on WatsonTcp library)
24+
- Supports Named Pipe channel for inter-process communication
2425
- Custom transport channels can be plugged in (Just implement `IServerChannel` and `IClientChannel`)
2526
- Used Bson serialization by default (via Json.NET)
26-
- Also supports classic BinaryFormatter for best possible DataSet / DataTable support
27+
- Includes NeoBinaryFormatter as built-in binary serializer
28+
- BinaryFormatter support is available in separate CoreRemoting.Serialization.Binary package
2729
- BinaryFormatter is hardened against known deserialization attack patterns
2830
- Custom serializers can be plugged in (Just implement `ISerializerAdapter`)
2931
- Support for custom authentication (Just implement `IAuthenticationProvider`)
@@ -161,3 +163,32 @@ Source code of this example is also available in the repository at https://githu
161163

162164
To test the hello world solution, start the server (HelloWorld.Server) and then multiple clients (HelloWorld.Client).
163165
Have fun.
166+
167+
## Breaking Changes in Version 1.3
168+
169+
### BinaryFormatter Moved to Separate Assembly
170+
Starting with version 1.3, the classic BinaryFormatter support has been moved to a separate assembly:
171+
- **Package**: `CoreRemoting.Serialization.Binary`
172+
- **Purpose**: Maintains compatibility for applications requiring DataSet/DataTable serialization
173+
- **Security**: Includes hardened BinaryFormatter implementation against deserialization attacks
174+
175+
### NeoBinaryFormatter Added to Core System
176+
A new binary serializer is now included in the core system:
177+
- **Name**: NeoBinaryFormatter
178+
- **Location**: Built into CoreRemoting core assembly
179+
- **Benefits**: Better security than classic BinaryFormatter, also supports DataSets/DataTables if needed
180+
- **Performance**: Currently slower than BinaryFormatter but faster than Hyperion (performance improvements in progress)
181+
- **Usage**: Recommended binary serializer when binary serialization is desired (BSON from Newtonsoft remains default)
182+
183+
### New Named Pipe Channel
184+
Version 1.3 introduces a new Named Pipe channel for inter-process communication:
185+
- **Purpose**: High-performance communication between processes on the same machine
186+
- **Benefits**: Faster than TCP for local inter-process communication
187+
- **Usage**: Ideal for client-server applications running on the same host
188+
189+
### Migration Guide
190+
If you were using BinaryFormatter in version 1.2 or earlier:
191+
1. For new applications requiring binary serialization, use NeoBinaryFormatter (recommended)
192+
2. For existing .NET Remoting applications requiring 100% compatibility, add the `CoreRemoting.Serialization.Binary` NuGet package
193+
3. Update your serializer configuration to use the appropriate serializer adapter
194+
4. Note: BSON from Newtonsoft remains the default serializer

0 commit comments

Comments
 (0)