“作為 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 ,如果喜歡的給個小星星。