**## 前言
.NET 技术栈的不断发展和完善,我们面临着越来越多的选择和挑战。无论是后端开发、前端应用还是部署运维,都需要掌握一系列关键技术。
本文全面梳理 .NET 技术栈中的重要组成部分,帮助大家系统地了解从后端到前端以及部署运维方面的核心技术点,为实际项目开发提供有价值的参考。
一、后端
1、框架
C#
- 异步多线程:利用
async和await关键字处理并发任务,提高应用程序响应能力。 - 委托:一种类型安全的函数指针,用于传递方法作为参数。
- 事件(标准事件模式):用于封装观察者模式,实现对象之间的解耦。
- 泛型:提供类型安全的通用类和方法。
- 特性:用于元数据标注,如
[Serializable]。 - 反射:动态加载类型、创建实例、调用方法等。
- LINQ:语言集成查询,用于数据查询和操作。
- Lambda 表达式:简化匿名方法的语法。
- Expression 表达式树:用于编译时构建表达式,常用于 ORM 查询。
- PLINQ:并行 LINQ,用于并行处理集合数据。
- IO 文件操作:处理文件读写操作。
- XML 操作:处理 XML 文档的读写和解析。
.NET
- IOC/DI 依赖注入:通过依赖注入框架管理对象生命周期。
- 中间件:在请求处理链中插入逻辑。
- 鉴权授权、角色策略:确保只有授权用户才能访问特定资源。
- Filters 过滤器:在请求执行前后添加逻辑。
- IMemoryCache 缓存:用于高速内存缓存。
- SignalR:实现实时通信。
- 身份认证系统
- SSO 单点登录:实现一次登录,多处使用。
- OAuth2.0 第三方应用授权框架:授权第三方应用访问用户资源。
- MVC:模型-视图-控制器架构模式。
- WebAPI:用于构建 RESTful 服务。
- WebForms:传统的 ASP.NET WebForms。
- Windows 服务:后台运行的服务应用程序。
- WPF:Windows Presentation Foundation,用于创建图形用户界面。
- WinForms:Windows Forms,用于创建桌面应用程序。
- gRPC 远程过程调用(微服务进程间通信)
.proto文件:定义服务接口和消息类型。- 基础数据类型:如 int32、string 等。
- Message 类似对象:用于定义复杂的数据结构。
- Repeated 类似数组:表示消息中的数组。
- Ocelot 网关
- 路由、请求聚合、服务发现、认证、鉴权、限流熔断、负载均衡、Service Fabric、Butterfly Tracing 集成:提供全面的微服务网关功能。
2、数据库
- SQL Server
- 存储过程:预编译的 SQL 语句集。
- 悲观锁、乐观锁:不同的并发控制机制。
- 主从复制、读写分离:提高数据库的可用性和性能。
- MongoDB:NoSQL 数据库,适合非结构化数据存储。
- Redis
- 五种数据格式:string、hash、list、set、sorted set。
- Redis 读写操作都是单线程。
- 6.0 之前:网络请求处理是单线程,IO 多路复用原理。
- 6.0 之后:网络请求处理是多线程,默认关闭了 IO 多路复用。
- 缓存存取:高效的数据存储和检索。
- 过期时间策略:设置键值的生存周期。
- 发布订阅:实现消息的发布与订阅。
- 分布式缓存
- 缓存一致性解决方案:保证数据的一致性。
- 缓存击穿:防止高并发下的热点数据失效。
- 缓存穿透:防止查询不存在的数据。
- 缓存雪崩:防止大量数据同时失效导致系统压力过大。
- 分布式锁、事务:保证数据操作的原子性。
- KingbaseES:国产数据库系统,支持 SQL 标准。
3、ORM
- EF Core
- 悲观并发控制、乐观并发控制:处理并发更新冲突。
- FreeSql
- SqlSugar
4、中间件
- JWT:JSON Web Token,用于身份验证。
- IdentityServer4:开放标准的身份验证和授权服务。
- NLog:日志记录框架。
- Redis:用于缓存和消息队列。
- RabbitMQ:消息队列服务。
- Quartz:作业调度框架。
- Hangfire:后台作业处理框架。
- AutoMapper:对象到对象映射工具。
- Autofac:依赖注入框架。
5、设计模式
- OOP:面向对象编程。
- AOP:面向切面编程。
- IOC/DI:依赖注入。
- DDD:领域驱动设计。
- 分层
- 基础设施层(仓储层):负责与外部系统交互。
- 领域层:业务逻辑实现。
- 应用层:协调业务逻辑和服务。
- 领域事件:处理业务逻辑中的事件。
- 分层
6、分布式、微服务
- 分布式 CAP 原则/定理
- 在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。这三个要素最多只能同时实现两点,不可能三者兼顾。
- 分布式缓存
- 分布式事务、锁
- 分布式事件总线 EventBus 实现 DDD 领域事件
- 分布式日志搜索框架 ELK
- Elasticsearch:分布式搜索引擎。
- Logstash:日志收集和处理工具。
- Kibana:日志可视化工具。
- 数据库主从复制、读写分离
- 网关 Ocelot 框架
- 服务发现:自动发现服务实例。
- 负载均衡:分配请求到不同服务实例。
- 配置中心
- gRPC 远程过程调用
二、前端
HTML5
CSS3
JavaScript
ES6
jQuery
Bootstrap4
Layui
EasyUI
Vue3
- Vite4:前端构建工具。
- Router 路由:用于页面导航。
- Axios HTTP 请求:处理 HTTP 请求。
- Sass/Less CSS 拓展:CSS 预处理器。
- Pinia 状态管理:用于状态管理。
TypeScript
Element Plus
H5+App
微信小程序
三、网络协议
TCP/IP
- OSI 七层模型 / 四层模型:网络分层结构。
- 建立连接:三次握手
- 断开连接:四次挥手
- HTTP
- WebSocket
- Modbus 协议(工控物联网 WPF 相关)
- 可串口通信,也可 TCP/IP 网络通信。
UDP
四、部署/运维
IIS 部署 .NET 6
Linux
- Linux 部署 .NET 6
Nginx
- 负载均衡
- 反向代理
Docker
- 镜像、容器、仓库
- Docker 常用命令
- Docker 部署
Kubernetes
- Master
- Node
- Rancher 可视化工具
- Pod
- Deployment
- Service
五、开发协作工具
团队代码版本管理
- Git
- SVN
接口调试、抓包工具
- Postman
- Apifox(接口文档、自动化测试)
- Charles(代理、抓包)
团队协作工具
- TAPD
总结
本文全面梳理了 .NET 技术栈中的多个重要组成部分,涵盖了后端开发、前端应用以及部署运维等多个方面。通过详细介绍各个领域的关键技术点,希望能帮助大家对 .NET 技术栈的全面认识,并在实际项目开发中灵活运用这些技术。
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!**