.net core开发实战(转)
第一章 必备知识
04.StartUp:启动过程:
ConfigureWebHostDefaults
ConfigureHostConfiguration
ConfigureAppConfiguration
ConfigureServices
ConfigureLogging
Startup
Startup.ConfigureServices
Startup.Configure
05.依赖注入
生命周期:
1.单例 Singleton 全局
2.作用域 Scoped : 每一个请求内实例一致,不同请求不一致
3.瞬时,暂时 Transient
06.作用域与对象释放行为:
避免在根容器获取实现了 IDisposable 接口的瞬时服务
避免手动创建实现了 IDisposable 对象,应该使用容器来管理其生命周期
07.Autofac
• 基于名称的注入
• 属性注入
• 子容器
• 基于动态代理的 AOP
08.配置框架
15.选项框架
16.选项框架.热更新
• 范围作用域类型使用 IOptionsSnapshot
• 单例服务使用 IOptionsMonitor
20.结构化日志组件serilog
22.异常处理中间件:区分真异常和逻辑异常
第二章 微服务实战篇
26.工程结构概览
领域模型层 基础设施层 应用层 共享层
27.定义实体
28.工作单元模式
29.定义仓储
30.领域事件
31.APIController
32.33.集成事件
34.35.MediatR
36.HttpClientFactory:向外请求的最佳实践
37.38 gRPC:内部服务间通讯利器
39.Polly:用失败重试机制提升服务可用性
• 失败重试
• 服务熔断
• 超时处理
• 舱壁隔离
• 缓存策略
• 失败降级
• 组合策略
40.Polly:熔断慢请求避免雪崩效应
• 被动策略(异常处理、结果处理)
• 主动策略(超时处理、断路器、舱壁隔离、缓存)
41.网关与BFF(区分场景与职责)
BFF:服务于前端的后端 Ocelot
42.网关与BFF(使用JWT来实现身份认证与授权)
JWT:JSON Web Token
43.反跨站请求伪造
1. 通过cookie存储和传递身份信息(不用cookie,用jwt)
2. AntiforgeryToken 来防御
3. 避免使用get
44.防开放重定向攻击
1.使用localredirect来处理重定向(仅限于本站)
2.验证重定向的目标域名是否合法
45.防跨站脚本
对用户提交进行验证,编码;cookie设置为httponly;使用query传递
46.安全:跨域请求
1. 方案相同 ( HTTP/HTTPS ) 2. 主机(域名)相同 3. 端口相同
47.缓存:为不同的场景设计不同的缓存策略
缓存失效:数据不一致
缓存穿透:缓存不存在数据,(缓存数据为null,强制返回一个默认值)
缓存击穿:缓存失效瞬间,大量缓存访问数据库(二级缓存)
缓存雪崩:缓存key大量失效,导致数据库压力(缓存失效时间均匀分布)
MemoryCache,StackExchangeRedisCache,ResponseCaching(与身份认证冲突),EasyCaching
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2017-06-07 sql例子