00 - Tech Stack
- Created by Martin Nazari [X], last modified by Brent Woodhead on Nov 24, 2017
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
-
Entity Framework Core 2.0 as underlying engine for db interaction
-
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
网友评论