Skip to content

RCommon-Team/RCommon

Repository files navigation

RCommon

Overview

RCommon is a cohesive set of libraries with abstractions for widely used implementations of design patterns, and architectural patterns which are common (see what we did there?) to many applications used today. The primary goals of this toolset are:

  1. Future proofing applications against changing architectural or infrastructure needs.
  2. Solve common problems under the presentation layer. Presentation frameworks are something else entirely. We try to keep everything nice under the hood. Cross cutting concerns, persistence strategies, transaction management, event handling, and messaging is where we want to shine.
  3. Code testability. We try to limit the "magic" used. Things like dependency injection are used but in a very straightforward manner. Unit tests, and integration tests should be implemented to the highest degree possible. Afterall, we want the applications you build on top of this to work :)
  4. Last but not least - open source forever.

We track bugs, enhancement requests, new feature requests, and general issues on GitHub Issues and are very responsive. General "how to" and community support should be managed on Stack Overflow.

Patterns & Abstractions Utilized

  • Specification
  • Mediator
  • Command Query Responsbility Segregation (CQRS)
  • Repository
  • Unit Of Work
  • Event Sourcing (Coming Soon)
  • Event Bus
  • Message Bus
  • Generic Factory
  • Guard
  • Data Transfer Objects (DTO)

Pattern Implementations

  • Mediator: MediatR
  • Repository: Entity Framework Core, Dapper, Linq2Db
  • Message Bus: MassTransit, Wolverine
  • Email: SMTP, SendGrid

Documentation

We have begun maintaining and publishing our documentation at https://docs.rcommon.com