00 - Tech Stack

00 - Tech Stack

Skip to end of metadata

  • Created by Martin Nazari [X], last modified by Brent Woodhead on Nov 24, 2017

Go to start of metadata

Here is the list of patterns (and associated 3rd party library) we have used to build brand new ERRCD product:

  • SOLID fundamental especially:

    • Single Responsibility Principle

    • Open/Closed Principle

    • Dependency Inversion Principle

      • Using** Autofac** and .Net Core Container
  • Domain Driven Design (DDD)

    • Aggregate Pattern
    • Domain Entity Pattern
      • Create domain entity as POCO
    • Value Object Pattern
  • Microservice architecture

    • DDD-oriented microservice
  • Command Query Responsibility Segregation (CQRS)

    • Commands and Events
    • Command Handler pattern
  • Onion Architecture

  • Technology Agnostic layering

  • Repository

    • Entity Framework Core 2.0 as underlying engine for db interaction
      • Fluent API for EF configuration
  • Package Principle

    • By Nugets
  • Service Bus

    • MassTransit as transport layer
    • Message Queue provided by RabbitMQ
  • Event Driven Programming aka Messaging Oriented Middleware (MOM)

    • Raising/Consuming domain events
  • Task-based Asynchronous Pattern

  • Resiliency by Circuit Breaker pattern

    • Using Polly
  • RESTful Service

    • ASP.Net Core 2.0
    • Swagger as documentation upon API layer
  • Responsive UI

    • Angular
    • Graph QL - TBD
  • Denormalization pattern

  • PostgreSQL as alternative for read-side database - TBD

Other tools/library:

  • Serilog for capturing activity and errors
  • Redis Caching - TBD
  • dbup - Deploy mechanism for database
  • AutoMapper for map between objects/types
  • MOQ as mocking framework for unit testing
  • NUnit 3.8 as test framework
  • FluentAssertion as assertion engine when unit testing

你可能感兴趣的:(00 - Tech Stack)