All Projects → damianh → Cedar.commandhandling

damianh / Cedar.commandhandling

Licence: mit
Middleware to handling commands over HTTP; typically used in CQRS applications.

Labels

Projects that are alternatives of or similar to Cedar.commandhandling

vcmi old mirror
[HISTORICAL] Old git mirror on VCMI subversion
Stars: ✭ 48 (+4.35%)
Mutual labels:  obsolete
Piranha
[DEPRECATED] This is the legacy version of Piranha CMS for .NET 4.5, MVC 5.2 & WebPages 3.2.
Stars: ✭ 418 (+808.7%)
Mutual labels:  obsolete
Mern Starter
⛔️ DEPRECATED - Boilerplate for getting started with MERN stack
Stars: ✭ 5,175 (+11150%)
Mutual labels:  obsolete
standard coding hook
Git hooks that verifies if your commit message respects the norm
Stars: ✭ 14 (-69.57%)
Mutual labels:  obsolete
Asepsis
a solution for .DS_Store pollution
Stars: ✭ 346 (+652.17%)
Mutual labels:  obsolete
Pygeoip
DEPRECATED: Pure Python API for Maxmind's binary GeoIP databases
Stars: ✭ 483 (+950%)
Mutual labels:  obsolete
Kwicks
⛔ Kwicks for jQuery - fork of jQuery Kwicks by Jeremy Martin
Stars: ✭ 50 (+8.7%)
Mutual labels:  obsolete
Arquillian Extension Liferay
Arquillian Extension for Liferay Portal Server. OSGi incontainer deployment.
Stars: ✭ 10 (-78.26%)
Mutual labels:  obsolete
Swarm
swarm docs
Stars: ✭ 403 (+776.09%)
Mutual labels:  obsolete
Docker Cleanup
DEPRECATED Automatic Docker image, container and volume cleanup
Stars: ✭ 582 (+1165.22%)
Mutual labels:  obsolete
Simpleauthentication
⛔️ [DEPRECATED] A really simple way for developers to add "Social Authentication" to their ASP.NET web application
Stars: ✭ 299 (+550%)
Mutual labels:  obsolete
Sphero.js
🚫 DEPRECATED: The Sphero JavaScript SDK to control Sphero robots.
Stars: ✭ 346 (+652.17%)
Mutual labels:  obsolete
Aawindow
[Deprecated] · UIWindow subclass to enable behavior like adaptive round-corners & detecting when Control Center is opened.
Stars: ✭ 486 (+956.52%)
Mutual labels:  obsolete
VRTK.Prefabs
*Deprecated* - A collection of productive prefabs for rapidly building spatial computing solutions in the Unity software.
Stars: ✭ 61 (+32.61%)
Mutual labels:  obsolete
Cordova Device Accounts
This plugin is not maintained anymore... Use it at your owns risks
Stars: ✭ 25 (-45.65%)
Mutual labels:  obsolete
pull facebook data for good
[DEPRECATED] Imitate an API for downloading data from Facebook Data For Good
Stars: ✭ 12 (-73.91%)
Mutual labels:  obsolete
Tinx
⛔️ Laravel Tinx is archived and no longer maintained.
Stars: ✭ 437 (+850%)
Mutual labels:  obsolete
Googlephonefix
Fix your Google Contact's phone numbers
Stars: ✭ 32 (-30.43%)
Mutual labels:  obsolete
Noty
⛔️ DEPRECATED - Dependency-free notification library that makes it easy to create alert - success - error - warning - information - confirmation messages as an alternative the standard alert dialog.
Stars: ✭ 6,725 (+14519.57%)
Mutual labels:  obsolete
Mern Cli
⛔️ DEPRECATED - A cli tool for getting started with MERN
Stars: ✭ 575 (+1150%)
Mutual labels:  obsolete

This project is discontinued as creating standalone dependency free middleware is not possible on netstandard/netcoreapp/aspnetcore.

Cedar CommandHandling

NuGet Status NuGet Status NuGet Status

Owin Middleware for handling commands, typically used in CQRS applications. In this library, the philosophy is that commands are treated as resources in their own right and are PUT (i.e. PUT http://example.com/commands/c9e714c8-c9c1-433b-bcc6-de971b384a03) to encourage idempotent handling.

Features

  1. Simple way to wire up handlers for commands.
  2. Easy way to create handler pipelines.
  3. Strategies to support command versioning using Content-Type.
  4. An optional .NET client library to facilitate simple command invocation.
  5. Supports IETF HTTP Problem Details for errors (json only). Problem details are extendable and exceptions are re-raised when using .NET client.
  6. Simple to test without any environmental dependencies.
  7. Commands can be invoked embedded, in-mem and in-proc allowing the same pipeline to be invoked remote or locally.
  8. No dependencies!

Getting started.

public class MyCommand {}

public class MyCommandModule : CommandHandlerModule
{
    public CommandModule()
    {
        For<MyCommand>()
            .Handle(commandMessage => /* handle */);
    }
}

public class Server
{
    static void Main()
    {
        var resolver = new CommandHandlerResolver(new CommandModule());
        var settings = new CommandHandlingSettings(resolver);
        var middleware = CommandHandlingMiddleware.HandleCommands(settings);

        Action<IAppBuilder> startup = (app) => app.Use(middleware);

        using(WebApp.Start("http://localhost:8080", startup))
        {
            Console.WriteLine("Press any key to exit");
        }
    }
}

/* In client code */
using(var client = new HttpClient(){ BaseAddress = new Uri("http://localhost:8080") })
{
    client.PutCommand(new MyCommand(), Guid.NewGuid());
}

See the examples for more advanced scenarios.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].