
说明
1. 先决条件
-
Entity Framework(https://www.pluralsight.com/search?q=entity framework core)
-
ASP.NET Core(https://www.pluralsight.com/search?q=asp.net core)
-
SQL基础知识
2. 通用开发技能
-
学习GIT, 在GitHub中创建开源项目
-
掌握HTTP(S)协议, 及其请求方法(GET, POST, PUT, PATCH, DELETE, OPTIONS)
-
不要害怕使用 Google, Google搜索技巧(http://www.powersearchingwithgoogle.com/)
-
学习 dotnet CLI(https://docs.microsoft.com/zh-cn/dotnet/core/tools)
-
阅读一些关于算法和数据结构的书籍
3. 依赖注入
- DI容器
-
Microsoft.Extensions.DependencyInjection(https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection)
-
AutoFac(https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html)
-
Ninject(http://www.ninject.org/)
-
StructureMap(https://github.com/structuremap/structuremap)
-
Castle Windsor(https://github.com/castleproject/Windsor)
-
生命周期(https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection#service-lifetimes)
-
Scrutor(https://github.com/khellang/Scrutor)
4. 数据库
-
关系数据库
-
SQL Server(https://www.microsoft.com/zh-cn/sql-server/sql-server-2017)
-
PostgreSQL(https://www.postgresql.org/)
-
MariaDB(https://mariadb.org/)
-
MySQL(https://www.mysql.com/)
-
云数据库
-
DynamoDB(https://aws.amazon.com/dynamodb/)
- 搜索引擎
-
ElasticSearch(https://www.elastic.co/)
-
Sphinx(http://sphinxsearch.com/)
- NoSQL
-
MongoDB(https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mongo-app)
-
Redis(https://redis.io/)
-
Apache Cassandra(http://cassandra.apache.org/)
-
RavenDB(https://github.com/ravendb/ravendb)
-
CouchDB(http://couchdb.apache.org/)
5. 缓存
-
Entity Framework 二级缓存
-
EFSecondLevelCache.Core(https://github.com/VahidN/EFSecondLevelCache.Core)
-
EntityFrameworkCore.Cacheable(https://github.com/SteffenMangold/EntityFrameworkCore.Cacheable)
-
分布式缓存(https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed)
-
Redis(https://redis.io/)
-
Memcached(https://memcached.org/)
-
内存缓存(https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory)
6. 日志
- 日志框架
-
Serilog(https://github.com/serilog/serilog)
-
Elmah(https://elmah.github.io/)
-
log4net(https://github.com/huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore)
- 日志管理系统
-
Sentry.io(http://sentry.io)
-
Loggly.com(https://loggly.com)
-
Elmah.io(http://elmah.io)
7. 模板引擎
-
Razor(https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/razor)
-
DotLiquid(https://github.com/dotliquid/dotliquid)
-
Scriban(https://github.com/lunet-io/scriban)
8. 实时通信
9. 对象映射
-
AutoMapper(https://github.com/AutoMapper/AutoMapper)
-
AgileMapper(https://github.com/agileobjects/AgileMapper)
-
ExpressMapper(http://expressmapper.org/)
10. API客户端
- REST
- GraphQL
- GraphQL-dotnet(https://github.com/graphql-dotnet/graphql-dotnet)
11. 最好掌握
-
MediatR(https://github.com/jbogard/MediatR)
-
Fluent Validation(https://github.com/JeremySkinner/FluentValidation)
-
Swashbuckle(https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
-
Benchmark.NET(https://github.com/dotnet/BenchmarkDotNet)
-
NodaTime(https://github.com/nodatime/nodatime)
12. 测试
-
单元测试
-
测试框架
-
MSTest(https://docs.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-with-mstest)
-
NUnit(https://docs.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-with-nunit)
-
xUnit(https://docs.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-with-dotnet-test)
- 模拟工具
-
NSubstitute(https://github.com/nsubstitute/NSubstitute)
-
FakeItEasy(https://github.com/FakeItEasy/FakeItEasy)
- 断言工具
-
FluentAssertion(https://github.com/fluentassertions/fluentassertions)
-
Shouldly(https://github.com/shouldly/shouldly)
- 行为测试
-
SpecFlow(https://github.com/techtalk/SpecFlow/tree/DotNetCore)
-
LightBDD(https://github.com/LightBDD/LightBDD)
- 集成测试
-
WebApplicationFactory(https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests)
-
TestServer(https://koukia.ca/integration-testing-in-asp-net-core-2-0-51d14ede3968)
- 端到端测试
-
Selenium(https://www.automatetheplanet.com/webdriver-dotnetcore2/)
-
Puppeteer-Sharp(https://github.com/kblok/puppeteer-sharp)
13. 任务调度
-
HangFire(https://github.com/HangfireIO/Hangfire)
-
Coravel(https://github.com/jamesmh/coravel)
-
Fluent Scheduler(https://github.com/fluentscheduler/FluentScheduler)
14. 微服务
- 消息队列
-
RabbitMQ(https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html)
-
Apache Kafka(https://github.com/confluentinc/confluent-kafka-dotnet)
-
ActiveMQ(https://github.com/apache/activemq)
-
Azure Service Bus(https://docs.microsoft.com/zh-cn/azure/service-bus-messaging/service-bus-messaging-overview)
- 消息总线
-
MassTransit(https://github.com/MassTransit/MassTransit)
-
NServiceBus(https://github.com/Particular/NServiceBus)
15. SOLID原则
-
单一责任原则(SRP)(https://www.dotnetcurry.com/software-gardening/1148/solid-single-responsibility-principle)
-
开放封闭原则(OCP)(https://www.dotnetcurry.com/software-gardening/1176/solid-open-closed-principle)
-
里氏替换原则(LSP)(https://www.dotnetcurry.com/software-gardening/1235/liskov-substitution-principle-lsp-solid-patterns)
-
依赖倒置原则(ISP)(https://www.dotnetcurry.com/software-gardening/1257/interface-segregation-principle-isp-solid-principle)
-
接口分离原则(DIP)(https://www.dotnetcurry.com/software-gardening/1284/dependency-injection-solid-principles)
16. 设计模式
-
CQRS(https://docs.microsoft.com/zh-cn/azure/architecture/patterns/cqrs)
-
装饰模式(https://www.dofactory.com/net/decorator-design-pattern)
-
观察者模式(https://www.dofactory.com/net/observer-design-pattern)
-
单例模式(https://www.dofactory.com/net/singleton-design-pattern)
-
中介者模式(https://www.dofactory.com/net/mediator-design-pattern)
地址
此文章是转载Github上的一个项目,地址: https://github.com/MoienTajik/AspNetCore-Developer-Roadmap/blob/master/ReadMe.zh-Hans.md ,如果喜欢的给个小星星。