Skip to content

Commit 7e356a9

Browse files
committed
Updated documentation.
1 parent 5d660bd commit 7e356a9

20 files changed

+5251
-0
lines changed

docs/API-Reference.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
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

Comments
 (0)