|
| 1 | +# CoreRemoting API Reference |
| 2 | + |
| 3 | +This section provides comprehensive API documentation for all public classes, interfaces, and components in the CoreRemoting framework. The documentation is organized by namespace to help you quickly find the specific components you need. |
| 4 | + |
| 5 | +## Quick Navigation |
| 6 | + |
| 7 | +### Core API |
| 8 | +- **[CoreRemoting](API/CoreRemoting.md)** - Main remoting client and server classes, configuration, and core interfaces |
| 9 | + - `RemotingClient`, `RemotingServer`, `ClientConfig`, `ServerConfig` |
| 10 | + - `IRemotingClient`, `IRemotingServer`, `IServiceProxy` |
| 11 | + |
| 12 | +#### Classic .NET Remoting Compatibility |
| 13 | +- **[CoreRemoting.ClassicRemotingApi](API/CoreRemoting-ClassicRemotingApi.md)** - Classic .NET Remoting style APIs for migration |
| 14 | + - `RemotingConfiguration`, `WellKnownServiceTypeEntry`, `RemotingServices` |
| 15 | + - Configuration file support, service registration, and proxy utilities |
| 16 | + |
| 17 | +### Infrastructure Namespaces |
| 18 | + |
| 19 | +#### Transport Layer |
| 20 | +- **[CoreRemoting.Channels](API/CoreRemoting-Channels.md)** - Network transport channels and communication protocols |
| 21 | + - TCP, WebSocket, Named Pipe, and Null channels |
| 22 | + - `IClientChannel`, `IServerChannel`, `IRawMessageTransport` |
| 23 | + |
| 24 | +#### Security & Authentication |
| 25 | +- **[CoreRemoting.Authentication](API/CoreRemoting-Authentication.md)** - Authentication framework and credential management |
| 26 | + - `IAuthenticationProvider`, `Credential`, `RemotingIdentity` |
| 27 | + - `AuthenticationRequestMessage`, `AuthenticationResponseMessage` |
| 28 | + |
| 29 | +#### Dependency Injection |
| 30 | +- **[CoreRemoting.DependencyInjection](API/CoreRemoting-DependencyInjection.md)** - DI container abstractions and implementations |
| 31 | + - `IDependencyInjectionContainer`, Microsoft DI and Castle Windsor adapters |
| 32 | + |
| 33 | +#### Serialization |
| 34 | +- **[CoreRemoting.Serialization](API/CoreRemoting-Serialization.md)** - Serialization framework and built-in serializers |
| 35 | + - `ISerializerAdapter`, BSON, NeoBinary, and custom serializer support |
| 36 | + |
| 37 | +#### Messaging Framework |
| 38 | +- **[CoreRemoting.RpcMessaging](API/CoreRemoting-RpcMessaging.md)** - RPC message types and message building framework |
| 39 | + - `MethodCallMessage`, `MethodCallResultMessage`, `IMessageEncryptionManager` |
| 40 | + |
| 41 | +#### Remote Delegates & Events |
| 42 | +- **[CoreRemoting.RemoteDelegates](API/CoreRemoting-RemoteDelegates.md)** - Remote delegate invocation and event handling |
| 43 | + - `IDelegateProxy`, `IDelegateProxyFactory`, event subscription across boundaries |
| 44 | + |
| 45 | +#### Threading Utilities |
| 46 | +- **[CoreRemoting.Threading](API/CoreRemoting-Threading.md)** - Async synchronization primitives and utilities |
| 47 | + - `AsyncLock`, `AsyncManualResetEvent`, `AsyncReaderWriterLock` |
| 48 | + |
| 49 | +#### Utility Classes |
| 50 | +- **[CoreRemoting.Toolbox](API/CoreRemoting-Toolbox.md)** - General utility classes and extensions |
| 51 | + - `TaskExtensions`, `LimitedSizeQueue<T>` |
| 52 | + |
| 53 | +## Architecture Overview |
| 54 | + |
| 55 | +CoreRemoting follows a layered architecture where each namespace provides specific functionality: |
| 56 | + |
| 57 | +``` |
| 58 | +┌─────────────────────────────────────────────────────────────┐ |
| 59 | +│ Application Layer │ |
| 60 | +│ (Your Services and Client Code) │ |
| 61 | +├─────────────────────────────────────────────────────────────┤ |
| 62 | +│ CoreRemoting │ |
| 63 | +│ RemotingClient, RemotingServer, Configuration, Proxies │ |
| 64 | +├─────────────────────────────────────────────────────────────┤ |
| 65 | +│ Framework Layer │ |
| 66 | +│ Authentication | DependencyInjection | Serialization │ |
| 67 | +├─────────────────────────────────────────────────────────────┤ |
| 68 | +│ Messaging Layer │ |
| 69 | +│ RpcMessaging | RemoteDelegates │ |
| 70 | +├─────────────────────────────────────────────────────────────┤ |
| 71 | +│ Transport Layer │ |
| 72 | +│ Channels | Threading | Toolbox │ |
| 73 | +└─────────────────────────────────────────────────────────────┘ |
| 74 | +``` |
| 75 | + |
| 76 | +## Key Extension Points |
| 77 | + |
| 78 | +CoreRemoting is designed for extensibility. The main extension points are: |
| 79 | + |
| 80 | +1. **Custom Channels** - Implement `IClientChannel`/`IServerChannel` for new transport protocols |
| 81 | +2. **Custom Serializers** - Implement `ISerializerAdapter` for different data formats |
| 82 | +3. **Custom Authentication** - Implement `IAuthenticationProvider` for auth mechanisms |
| 83 | +4. **Custom DI Containers** - Implement `IDependencyInjectionContainer` for IoC frameworks |
| 84 | +5. **Remote Events** - Use the remote delegates framework for event-driven communication |
| 85 | + |
| 86 | +## Getting Started |
| 87 | + |
| 88 | +If you're new to CoreRemoting, we recommend this reading order: |
| 89 | + |
| 90 | +1. **[CoreRemoting](API/CoreRemoting.md)** - Understand the main API |
| 91 | +2. **[Configuration](Configuration.md)** - Learn how to configure client and server |
| 92 | +3. **[CoreRemoting.Channels](API/CoreRemoting-Channels.md)** - Choose appropriate transport channel |
| 93 | +4. **[CoreRemoting.Serialization](API/CoreRemoting-Serialization.md)** - Select serialization format |
| 94 | +5. **[CoreRemoting.Authentication](API/CoreRemoting-Authentication.md)** - Add security if needed |
| 95 | + |
| 96 | +## Legend |
| 97 | + |
| 98 | +- 🔄 **Interface** - Contract that must be implemented |
| 99 | +- 🏗️ **Class** - Concrete implementation |
| 100 | +- ⚙️ **Configuration** - Configuration class or related component |
| 101 | +- 🔧 **Utility** - Helper or utility class |
| 102 | +- 🚫 **Exception** - Exception class |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +*For conceptual documentation, tutorials, and getting started guides, see the main documentation sections.* |
0 commit comments