Coder Social home page Coder Social logo

queryexecutr's Introduction

QueryExecutR

Stripped down version of MediatR meant for creating / running queries over a single dispatch interface.

Use Case

The primary use case for QueryExecutR is... executing queries in a CQS style application. One approach to using CQS is to create a class for each different query type in your application, and then use these query classes as dependencies, possibly injected by a DI container. Like MediatR, QueryExecutR takes one step beyond that pattern and introduces a single IQueryExecutor interface so that any query can be executed from that single dependency using polymoprhic dispatch.

Why not just use MediatR?

If you're taking the route of creating classes for each of the queries in your application, chances are there's some re-usability between these queries, and perhaps even areas where you may consume results from multiple queries from the same class. However, MediatR includes the concept of a request pipeline and pipeline behaviors. The library is not designed for chaining multiple commands together in the same request, which can result undesired or undefined behaviors (see what I did there).

QueryExecutR has no pipeline and no behaviors to speak of, so it doesn't have the concern of chaining queries or otherwise running more than one query per request.

queryexecutr's People

Watchers

Dean Goodman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.