Use ManagedCode.Orleans.SignalR when a distributed .NET application needs Orleans-based coordination of SignalR real-time messaging, hub delivery, and grain-driven push flows.
dotnet skills install managedcode-orleans-signalr
Integrate ManagedCode.Orleans.Graph into an Orleans-based .NET application for graph-oriented relationships, edge management, and traversal logic on top of Orleans grains. Use when the application models graph structures in a distributed Orleans system.
ManagedCode.Orleans.Graph into an Orleans-based system``bash dotnet add package ManagedCode.Orleans.Graph ``
- nodes map to grain identities - edges represent relationships between grains - traversal operations query across grain boundaries
``csharp // Define a graph grain interface public interface IGraphGrain : IGrainWithStringKey { Task AddEdge(string targetId, string edgeType); Task<IReadOnlyList<string>> GetNeighbors(string edgeType); Task<bool> HasEdge(string targetId, string edgeType); Task RemoveEdge(string targetId, string edgeType); } ``
- grain identity determines the node identity - persistence provider stores edge state - grain activation lifecycle affects traversal latency
```csharp // Breadth-first traversal across grains public async Task<IReadOnlyList<string>> TraverseAsync( IGrainFactory grainFactory, string startId, string edgeType, int maxDepth) { var visited = new HashSet<string>(); var queue = new Queue<(string Id, int Depth)>(); queue.Enqueue((startId, 0));
while (queue.Count > 0) { var (currentId, depth) = queue.Dequeue(); if (!visited.Add(currentId) || depth >= maxDepth) continue;
var grain = grainFactory.GetGrain<IGraphGrain>(currentId); var neighbors = await grain.GetNeighbors(edgeType); foreach (var neighbor in neighbors) queue.Enqueue((neighbor, depth + 1)); } return visited.ToList(); } ```
flowchart LR
A["Graph request"] --> B["Resolve node grain"]
B --> C["Query edges from grain state"]
C --> D{"Traversal needed?"}
D -->|Yes| E["Multi-hop grain calls"]
D -->|No| F["Return direct neighbors"]
E --> G["Aggregate results"]
F --> GUse ManagedCode.Orleans.SignalR when a distributed .NET application needs Orleans-based coordination of SignalR real-time messaging, hub delivery, and grain-driven push flows.
dotnet skills install managedcode-orleans-signalr
Build or review distributed .NET applications with Orleans grains, silos, persistence, streaming, reminders, placement, transactions, serialization, event sourcing, testing, and…
dotnet skills install orleans
Build long-running .NET background services with `BackgroundService`, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and…
dotnet skills install worker-services