当前位置: 首页 > news >正文

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 ,如果喜欢的给个小星星。

 

相关文章:

ASP.NET Core学习路线图

说明 1. 先决条件 - [C#](https://www.pluralsight.com/paths/csharp) - [Entity Framework](https://www.pluralsight.com/search?qentity%20framework%20core) - [ASP.NET Core](https://www.pluralsight.com/search?qasp.net%20core) - SQL基础知识 2. 通用开发技能 -…...

无涯教程-Lua - for语句函数

for 循环是一种重复控制结构,可让您有效地编写需要执行特定次数的循环。 for loop - 语法 Lua编程语言中 for 循环的语法如下- for init,max/min value, increment dostatement(s) end 这是 for 循环中的控制流程- 首先执行 init 步骤,并且仅执行一…...

二叉树的相关题目

目录 1、根据二叉树创建字符串 2、二叉树的层序遍历 3、二叉树的最近公共祖先 4、搜索二叉树与双向链表 5、从前序与中序遍历序列构造二叉树 6、 从中序与后序遍历序列构造二叉树 7、二叉树的前序遍历(非递归实现) 8、二叉树的中序遍历&#xff08…...

【antd之tabs踩坑篇】Tabs有items时切换不起作用

<TabsdefaultActiveKey"1"tabPosition{mode}style{{ height: 220 }}items{new Array(30).fill(null).map((_, i) > {const id String(i);return {label: Tab-${id},key: id,disabled: i 28,children: Content of tab ${id},};})}/>官网上如果tabs有很多it…...

简单模拟livedata数据倒灌

简单模拟livedata数据倒灌 数据倒灌&#xff0c;就是将旧的或只展示一次的数据再次展现出来。 livedata内部通过版本号更新可见视图数据&#xff0c;而在view在活跃与不活跃之间反复横跳时&#xff0c;livedata也会通知数据。 class MainActivity : AppCompatActivity() {pri…...

python爬虫-加速乐cookie混淆解析实例小记

注意&#xff01;&#xff01;&#xff01;&#xff01;某XX网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01; 第一步&#xff1a;抓包工具第一次请求页面&#xff0c;得到响应。本次我使用的fiddle进行抓包&#…...

TensorFlow 中前缀 prefix

前缀 prefix 主要用于命名 TensorFlow 中的变量&#xff0c;以避免变量名冲突。在 TensorFlow 中&#xff0c;每个变量都有一个唯一的名称&#xff0c;由变量的作用域和变量的名称组成。作用域可以通过 tf.variable_scope() 函数来创建&#xff0c;而变量的名称通常是由用户指定…...

SystemVerilog scheduler

文章目录 简介调度器simulation regionPreponed regionActive regionInactive regionNBA(Non-blocking Assignment Events region)Observed regionReactive regionRe-Inactive Events regionRe-NBA RegionPostponed Region PLI region:Pre-active regionPre-NBA regionPost-NBA…...

Qt 5. QSerialPort串口收发

1. 代码 //ex2.cpp #include "ex2.h" #include "ui_ex2.h" #include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPortInfo>int static cnt 0;Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2) {ui->setupUi…...

什么是Java中的JVMTI(JVM Tool Interface)?

Java中的JNI&#xff08;Java Native Interface&#xff09;和JVMTI&#xff08;JVM Tool Interface&#xff09;都是与Java运行时环境&#xff08;JVM&#xff09;交互的工具&#xff0c;但它们有不同的目的和使用场景。下面我从新手的角度来幽默地解释一下它们的区别和用途。…...

WAF独木难支 RASP与ADR将成应用安全防护2.0时代新宠

曾几何时&#xff0c;黑客攻击大多通过网络层进行&#xff0c;但随着基于网络层的基础安全防护措施趋于严密&#xff0c;防火墙、入侵防御、防病毒等安全软硬件构建起了相对完善的防护体系&#xff0c;想再从网络层钻空子的难度增大。如今&#xff0c;黑客攻击从网络层转入Web为…...

四、Unity中颜色空间

Unity中的设置 通过点击菜单Edit->Project Settings->Player页签->Other Settings下的Rendering部分进行修改&#xff0c;参数Color Space可以选择Gamma或Linear。 当选择Gamma Space时&#xff0c;Unity不会做任何处理。当选择Linear Space时&#xff0c;引擎的渲染…...

Java程序员面试题

Java程序员面试题目 1.Java基础1.1 Java有list&#xff0c;list有很多种&#xff0c;你平时开发喜欢用哪个list&#xff1f;&#xff08;容易&#xff09;1.2 Java的map&#xff0c;你知道有哪几种map&#xff0c;你平时喜欢用哪个&#xff1f;&#xff08;容易&#xff09; 2.…...

【自动化剧本】Role角色

目录 一、Roles模块1.1roles的目录结构1.2roles 内各目录含义解释1.3在一个 playbook 中使用 roles 的步骤 二、使用Role编写LNMP剧本2.1 搭建Nginx角色2.2搭建Mysql角色2.3搭建php角色2.4lnmp剧本 一、Roles模块 roles用于层次性、结构化地组织playbook。roles能够根据层次型结…...

安全文件传输:如何避免数据泄露和黑客攻击

网络安全问题日益严重&#xff0c;导致许多数据被泄露和黑客袭击的事件频发。为了保证文件传输的安全&#xff0c;需要实施一系列安全文件传输策略来防止数据被泄露和黑客袭击。 第一、选择适合的加密方法是非常关键的 加密是一种将明文转换成密文的过程&#xff0c;这样只有授…...

web基础与http

一&#xff0c;dns与域名 网络基于tcp/ip协议进行通信和连接的&#xff0c;其中主机以ip地址做固定的地址标识&#xff0c;用以区分用户和计算机。ip地址是由32位二进制数组成&#xff0c;不方便记忆。为了方便记忆&#xff0c;采用了域名。但是网络通信的唯一标识是ip地址&…...

寒假作业(蓝桥杯2016年省赛C++A组第6题 )

题目&#xff1a; 注&#xff1a;蓝桥杯2016年省赛CA组第6题 请填写表示方案数目的整数。 题解&#xff1a; 由题可知这是一道全排列问题&#xff0c;因此我们可以使用c的next_permutation函数对于1-13的数字进行全排列即可&#xff0c;并每次排列判断是否满足题意。 注意…...

NUMA架构在kubernetes中的应用

numactl使用 numactl 通过将 CPU 划分多个 node 减少 CPU 对总线资源的竞争,一般使用在高配置服务器部署多个 CPU 消耗性服务使用。 numactl使用,numa常用命令,numa命令行使用 #numactl -H available: 2 nodes (0-1) node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 node 0…...

Gogs Git windos服务搭建指南

Gogs Git服务器搭建指南 背景&#xff1a; 近期在Linux 麒麟 v10 系统上开发&#xff1b;为了团队协同编程&#xff1b;选用了Git服务器&#xff1b;之前在windos开始时候使用的visualSVN server; visualSVN server从4.x.x.x开始收费&#xff1b;限制15个开发者用户&#xff…...

leetcode 983. 最低票价

在一个火车旅行很受欢迎的国度&#xff0c;你提前一年计划了一些火车旅行。在接下来的一年里&#xff0c;你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有 三种不同的销售方式 &#xff1a; 一张 为期一天 的通行证售价为 costs[0] …...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...