نقشه راه برای یک برنامه مدرن دات نت در سال 00

در این پست سرفصل تمامی تکنولوژی ها، فریم ورک ها و معماری هایی که برای نوشتن یک برنامه مدرن .Net در سال 1400 نیاز دارید رو آوردیم. قصد داریم تا قبل از شروع سال 1400 بخش های مختلف هر سرفصل رو در پست های جدا گانه ای بررسی کنیم.

نقشه راه
نقشه راه

1) مدیریت رابطه اشیاء (ORM)

از Entity Framework Core

از Dapper

از NHibernate

2) تزریق وابستگی (Dependency Injection)

برای DI Containers

  • از Microsoft.Extensions.DependencyInjection
  • از AutoFac
  • از Ninject
  • از Structure Map
  • از Castle Injector

برای Life Cycles

  • از Scope
  • از Transient
  • از Singleton

از Scrutor

3) بانک اطلاعاتی (Database)

برای رابطه ای Relational

  • از SQL Server
  • از PostgreSQL
  • از MariaDB
  • از MySQL

برای بانک های اطلاعاتی ابری Cload Databases

  • از Azure CosmosDB
  • از Amazon DynamoDB

برای موتور جستجو Search Engines

از ElasticSearch

از Solr

از Sphinx

برای غیر رابطه ای NoSQL

  • از Redis
  • از MongoDB
  • از LiteDB
  • از Apache Cassandra
  • از RavenDB
  • از CouchDB

4) ذخیره سازی موقت (Caching)

از Memory Cache

برای Distributed Cache

  • از Redis
  • از Memcached

برای Entity Framework 2nd Level Cache

  • از EFCoreSecondLevelCacheInterceptor
  • از EntityFrameworkCore.Cacheable


5) چارچوب ثبت وقایع (Log Framework)

از Serilog

از NLog

برای Log Management System

  • از ELK Stack
  • از Sentry.io
  • از loggly.com
  • از elmah.io

6) رابط برنامه نویسی برنامه کلاینت ها و ارتباطات (API Clients & Communications)
برای Rest

  • از OData
  • از Sieve

از gRPC

برای GraphQL

  • از HotChocolate
  • از GraphQL-dotnet

7) ارتباط بلادرنگ (Real-Time Communication)

  • از SignalR Core
  • از Web Sockets

8) نگاشت اشیاء (Object Mapping)

  • از AutoMapper
  • از Mapster
  • از ExpressMapper
  • از AgileMapper

9) زمان بندی وظیفه (Task Scheduleing)

  • از Coravel
  • از HangFire
  • از Native BackgroundService
  • از Fluent Scheduler


10) آزمایش (Testing)

بخش Unit Testing

از Frameworks

  • از xUnit
  • از NUnit
  • از MSTest

از Mocking

  • از Moq
  • از NSubstitute
  • از FakeItEasy

از Assertion

  • از FluentAssertions
  • از Shoudly

بخش Integration Testing

  • از WebApplicationFactory
  • از TestServer

بخش Behavior Testing

  • از SpecFlow
  • از BDDfy
  • از LightBDD

بخش E2E Testing

  • از Selenium
  • از Puppeterr Sharp


11) میکرو-سرویس ها (Micro-Services)

بخش Message-Broker

  • از RabbitMQ
  • از Apache Kafka
  • از ActiveMQ
  • از Azure Service Bus
  • از NetMQ

بخش Message-Bus

  • از MassTransit
  • از NServiceBus
  • از EasyNetQ
  • از CAP

بخش API Gateway

  • از Ocelot

بخش Containerization

  • از Docker

بخش Orchestration

  • از Kubernates
  • از Docker Swarm

بخش Reverse Proxy

  • از Yarp

سایر بخش ها

  • از Orleans
  • از SteelToe
  • از Dapr
  • از Tye


12) الگوهای طراحی (Design Patterns)

  • از Singleton
  • از CQRS
  • از Strategy
  • از Observer
  • از Builder
  • از Decorator
  • از Facade
  • از Mediator


13) معماری های برنامه (Application Architectures)

  • از Clean/Hexagonal/Onion [CHO] Architecture
  • از N-Layer Architecture


منابع

https://github.com/MoienTajik/AspNetCore-Developer-Roadmap

https://www.reddit.com/r/csharp/comments/ap1ggj/aspnet_core_developer_roadmap_in_2019/

https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures

https://hygger.io/blog/what-is-software-development-roadmap/