dotnet-drmanhatan 0.1.1

dotnet add package dotnet-drmanhatan --version 0.1.1
                    
NuGet\Install-Package dotnet-drmanhatan -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="dotnet-drmanhatan" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="dotnet-drmanhatan" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="dotnet-drmanhatan" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add dotnet-drmanhatan --version 0.1.1
                    
#r "nuget: dotnet-drmanhatan, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package dotnet-drmanhatan@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=dotnet-drmanhatan&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=dotnet-drmanhatan&version=0.1.1
                    
Install as a Cake Tool

dotnet-drmanhatan

dotnet-drmanhatan is the .NET member of the DrManhatan observability family.

It expresses the same observability model for C# applications with explicit event construction and protocol timeline tracking.

The package provides a compact runtime for:

  • immutable event modeling
  • observer-based event delivery
  • event enrichment pipelines
  • protocol lifecycle telemetry
  • session-oriented tracking for stateful channels
  • WebSocket-focused convenience helpers in the core runtime

The goal is to make event flow easier to standardize, easier to reason about, and less vulnerable to common implementation mistakes around vendor coupling, protocol lifecycle tracking, retry visibility and message-oriented observability.

Why Use DrManhatan

dotnet-drmanhatan is useful when a system needs observability but should not let transport or telemetry concerns leak into business code.

Typical gains include:

  • a single event vocabulary across UI, network and protocol layers
  • lower coupling to analytics, logging and monitoring vendors
  • easier migration between providers because the domain emits neutral events
  • more explicit communication timelines for stateful protocols
  • better operational visibility during failures, retries and reconnect flows

What DrManhatan Does Not Claim

dotnet-drmanhatan does not try to replace your network stack, your analytics provider or your monitoring backend.

It does not open WebSocket connections, execute HTTP calls or guarantee that every team will model events with identical naming conventions.

Repository

Coordinates

  • package: dotnet-drmanhatan
  • version: 0.1.1

Installation:

dotnet add package dotnet-drmanhatan

Public API

  • Event
  • IEventObserver, DelegateEventObserver
  • IEventEnricher, DelegateEventEnricher
  • IEventBus
  • DefaultEventBus
  • CommonMetadata
  • CommonMetadataEnricher
  • HttpError
  • Protocol
  • ProtocolEndpoint
  • ProtocolMessage
  • ProtocolMessageDirection
  • ProtocolFailure
  • ProtocolClose
  • EventFactory
  • DrManhatan
  • ProtocolSessionTracker
  • WebSocketSessionTracker

Basic Example

using DotNetDrManhatan;

var bus = new DefaultEventBus();
bus.Subscribe(new DelegateEventObserver(@event =>
{
    Console.WriteLine($"{@event.Name} -> {string.Join(", ", @event.Attributes.Select(item => $"{item.Key}={item.Value}"))}");
}));

var tracker = new DrManhatan(
    bus,
    new EventFactory(
        new CommonMetadata("1.0.0", "dotnet", "prod")
    )
);

tracker.ScreenViewed("Home");
tracker.HttpError("Checkout", new HttpError(500, "server_error"));

Session Example

var session = tracker.ProtocolSession(
    Protocol.Mqtt,
    new ProtocolEndpoint("broker"),
    "mqtt-9"
);

session.ConnectionStarted();
session.HeartbeatSent("hb-out-1");
session.ReconnectScheduled(2, 1500, "network_lost");

Validation

dotnet build
dotnet run --project tests/DotNetDrManhatan.Validation/DotNetDrManhatan.Validation.csproj

Publishing

See PUBLICATION.md.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.1 144 6/24/2026