欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Core学习路线图

程序员文章站 2023-11-14 13:57:52
“作为 ASP.NET Core 开发者,我接下来应该学习什么?”,下面将介绍需要学习的东西,其中包括:依赖注入、数据库、缓存、日志、模板引擎、实时通信、测试、任务调度、设计模式等。 免责声明 该指南的目的是为了给读者心有个大概的轮廓。如果你对接下来要学习的内容感到困惑,这张路线图将指导你,而不是鼓 ......

“作为 asp.net core 开发者,我接下来应该学习什么?”,下面将介绍需要学习的东西,其中包括:依赖注入、数据库、缓存、日志、模板引擎、实时通信、测试、任务调度、设计模式等。

免责声明

该指南的目的是为了给读者心有个大概的轮廓。如果你对接下来要学习的内容感到困惑,这张路线图将指导你,而不是鼓励你选择时髦的东西。 你应该逐渐理解为什么一种工具比另一种工具更适合某些场景,并且记住时髦和新颖的东西并不总是意味着最适合这个工作。

 

ASP.NET Core学习路线图

说明

1. 先决条件

- [c#](https://www.pluralsight.com/paths/csharp)
- [entity framework](https://www.pluralsight.com/search?q=entity%20framework%20core)
- [asp.net core](https://www.pluralsight.com/search?q=asp.net%20core)
- 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. 依赖注入

1. 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)
2. [生命周期](https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection#service-lifetimes)
3. [scrutor](https://github.com/khellang/scrutor)

4. 数据库

1. 关系数据库
1. [sql server](https://www.microsoft.com/zh-cn/sql-server/sql-server-2017)
2. [postgresql](https://www.postgresql.org/)
3. [mariadb](https://mariadb.org/)
4. [mysql](https://www.mysql.com/)
2. 云数据库
- [cosmosdb](https://docs.microsoft.com/zh-cn/azure/cosmos-db)
- [dynamodb](https://aws.amazon.com/dynamodb/)
3. 搜索引擎
- [elasticsearch](https://www.elastic.co/)
- [solr](http://lucene.apache.org/solr/)
- [sphinx](http://sphinxsearch.com/)
4. nosql
- [mongodb](https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mongo-app)
- [redis](https://redis.io/)
- [apache cassandra](http://cassandra.apache.org/)
- [litedb](https://github.com/mbdavid/litedb)
- [ravendb](https://github.com/ravendb/ravendb)
- [couchdb](http://couchdb.apache.org/)

5. 缓存

1. entity framework 二级缓存
1. [efsecondlevelcache.core](https://github.com/vahidn/efsecondlevelcache.core)
2. [entityframeworkcore.cacheable](https://github.com/steffenmangold/entityframeworkcore.cacheable)
2. [分布式缓存](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed)
1. [redis](https://redis.io/)
2. [memcached](https://memcached.org/)
3. [内存缓存](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory)

6. 日志

1. 日志框架
- [serilog](https://github.com/serilog/serilog)
- [nlog](https://github.com/nlog/nlog)
- [elmah](https://elmah.github.io/)
- [log4net](https://github.com/huorswords/microsoft.extensions.logging.log4net.aspnetcore)
2. 日志管理系统
- [sentry.io](http://sentry.io)
- [loggly.com](https://loggly.com)
- [elmah.io](http://elmah.io)

7. 模板引擎

1. [razor](https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/razor)
2. [dotliquid](https://github.com/dotliquid/dotliquid)
3. [scriban](https://github.com/lunet-io/scriban)
4. [fluid](https://github.com/sebastienros/fluid)

8. 实时通信

1. [signalr](https://docs.microsoft.com/en-us/aspnet/core/signalr)

9. 对象映射

- [automapper](https://github.com/automapper/automapper)
- [mapster](https://github.com/mapstermapper/mapster)
- [agilemapper](https://github.com/agileobjects/agilemapper)
- [expressmapper](http://expressmapper.org/)

10. api客户端

1. rest
- [odata](https://blogs.msdn.microsoft.com/odatateam/2018/07/03/asp-net-core-odata-now-available/)
- [sieve](https://github.com/biarity/sieve)
2. 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)
- [polly](https://github.com/app-vnext/polly)
- [nodatime](https://github.com/nodatime/nodatime)
- [genfu](https://github.com/misterjames/genfu)

12. 测试

1. 单元测试
1. 测试框架
- [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)
2. 模拟工具
- [moq](https://github.com/moq/moq4)
- [nsubstitute](https://github.com/nsubstitute/nsubstitute)
- [fakeiteasy](https://github.com/fakeiteasy/fakeiteasy)
3. 断言工具
- [fluentassertion](https://github.com/fluentassertions/fluentassertions)
- [shouldly](https://github.com/shouldly/shouldly)
2. 行为测试
- [bddfy](https://github.com/teststack/teststack.bddfy)
- [specflow](https://github.com/techtalk/specflow/tree/dotnetcore)
- [lightbdd](https://github.com/lightbdd/lightbdd)
3. 集成测试
- [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)
4. 端到端测试
- [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. 微服务

1. 消息队列
- [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)
2. 消息总线
- [masstransit](https://github.com/masstransit/masstransit)
- [nservicebus](https://github.com/particular/nservicebus)
- [cap](https://github.com/dotnetcore/cap)

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/strategy-design-pattern)
- [观察者模式](https://www.dofactory.com/net/observer-design-pattern)
- [建造者模式](https://www.dofactory.com/net/builder-design-pattern)
- [单例模式](https://www.dofactory.com/net/singleton-design-pattern)
- [外观模式](https://www.dofactory.com/net/facade-design-pattern)
- [中介者模式](https://www.dofactory.com/net/mediator-design-pattern)

地址

此文章是转载github上的一个项目,地址: https://github.com/moientajik/aspnetcore-developer-roadmap/blob/master/readme.zh-hans.md ,如果喜欢的给个小星星。