.NET 技术栈全攻略后端、前端与部署运维

695 阅读6分钟

**## 前言

.NET 技术栈的不断发展和完善,我们面临着越来越多的选择和挑战。无论是后端开发、前端应用还是部署运维,都需要掌握一系列关键技术。

本文全面梳理 .NET 技术栈中的重要组成部分,帮助大家系统地了解从后端到前端以及部署运维方面的核心技术点,为实际项目开发提供有价值的参考。

一、后端

1、框架

C#

  • 异步多线程:利用 asyncawait 关键字处理并发任务,提高应用程序响应能力。
  • 委托:一种类型安全的函数指针,用于传递方法作为参数。
  • 事件(标准事件模式):用于封装观察者模式,实现对象之间的解耦。
  • 泛型:提供类型安全的通用类和方法。
  • 特性:用于元数据标注,如 [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技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!**