.NET Core 开发实战
肖伟宇
校宝在线架构师、SkyWalking .NET 探针贡献者、NetCorePal 组件库创建者
20086 人已学习
新⼈⾸单¥59
课程目录
已完结/共 61 讲
第一章:必备知识 (25讲)
时长 06:28
时长 02:13
.NET Core 开发实战
登录|注册
留言
20
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 26 | 工程结构概览:定义应用分层及依赖关系
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | .NET Core的现状、未来以及环境搭建
04 | Startup:掌握ASP.NET Core的启动过程
05 | 依赖注入:良好架构的起点
06 | 作用域与对象释放行为:你知道IDisposable对象释放的时机和坑吗?
07 | 用Autofac增强容器能力:引入面向切面编程(AOP)的能力
08 | 配置框架:让服务无缝适应各种环境
09 | 命令行配置提供程序:最简单快捷的配置注入方法
10 | 环境变量配置提供程序:容器环境下配置注入的最佳途径
11 | 文件配置提供程序:自由选择配置的格式
12 | 配置变更监听:配置热更新能力的核心
13 | 配置绑定:使用强类型对象承载配置数据
14 | 自定义配置数据源:低成本实现定制化配置方案
15 | 选项框架:服务组件集成配置的最佳实践
16 | 选项数据热更新:让服务感知配置的变化
17 | 为选项数据添加验证:避免错误配置的应用接收用户流量
18 | 日志框架:聊聊记日志的最佳姿势
19 | 日志作用域:解决不同请求之间的日志干扰
20 | 结构化日志组件Serilog:记录对查询分析友好的日志
21 | 中间件:掌控请求处理过程的关键
22 | 异常处理中间件:区分真异常与逻辑异常
23 | 静态文件中间件:前后端分离开发合并部署骚操作
24 | 文件提供程序:让你可以将文件放在任何地方
25 | 路由与终结点:如何规划好你的Web API
26 | 工程结构概览:定义应用分层及依赖关系
27 | 定义Entity:区分领域模型的内在逻辑和外在行为
28 | 工作单元模式(UnitOfWork):管理好你的事务
29 | 定义仓储:使用EF Core实现仓储层
30 | 领域事件:提升业务内聚,实现模块解耦
31 | APIController:定义API的最佳实践
32 | 集成事件:解决跨微服务的最终一致性
33 | 集成事件:使用RabbitMQ来实现EventBus
34 | MediatR:轻松实现命令查询职责分离模式(CQRS)
35 | MediatR:让领域事件处理更加优雅
36 | HttpClientFactory:管理向外请求的最佳实践
37 | gRPC:内部服务间通讯利器
38 | gRPC:用代码生成工具提高生产效率
39 | Polly:用失败重试机制提升服务可用性
40 | Polly:熔断慢请求避免雪崩效应
41 | 网关与BFF:区分场景与职责
42 | 网关与BFF:使用JWT来实现身份认证与授权
43 | 安全:反跨站请求伪造
44 | 安全:防开放重定向攻击
45 | 安全:防跨站脚本
46 | 安全:跨域请求
47 | 缓存:为不同的场景设计合适的缓存策略
48 | 部署:演示一个部署流程
49 | ConfigMap:实现基本配置方案
50 | 配置:使用分布式配置中心方案版本化管理配置
51 | 健康检查:与Liveness、Readiness、Startup探测集成实现高可用
52 | 健康检查:搭建全量健康检查探针和看板
53 | ForwardedHeaders:确保服务在负载均衡下正常工作
54 | 安全:介绍强制HTTPS的两种方式
55 | 日志:与EFK日志三件套集成
56 | 日志:Exceptionless日志系统
57 | 追踪:集成SkyWalking .NET实现追踪
58 | 监控与告警:Prometheus与AlertManager
59 | 监控与告警:用Granfana实现监控看板
60 | prometheus-net:自定义监控指标利器
61 | 结课测试&结束语
本节摘要
登录 后留言

全部留言(20)

  • 最新
  • 精选
川杰
建议:简单讲下DDD是什么,不然不清楚的人会不明白领域模型,聚合根这些概念;介绍下CQRS设计模式的理念,为什么要把命令和查询分离开,有什么好处;

作者回复: 感谢建议,后面我补充一下

2020-02-14
3
7
Geek_7c4953
后面会讲讲Nuget包的开发和发布吗?还一直挺想了解这个的。

作者回复: 感谢建议。

2020-02-13
2
5
Geek_d38f30
应用层<=基础设施层<=领域模型层<=领域模型抽象层 应用层<=基础设施的核心层<=领域模型抽象层 共享层用NuGet引入 领域模型层:实现聚合,领域事件,领域模型 基础设施层:实现仓储Repository,Context的配置,还有注册领域模型与数据库的映射关系

作者回复: 总结得很棒

2020-02-23
4
Sun
您好, 有几个问题想找您咨询下 1. 是否有一个HTTP Request 中处理多Command的场景, 他们如何共享事物 2. Domain中需要请求外部服务如何处理? 在什么场景下需要引入Domain Service 3. 在这个分层中缓存改如何设计会比较优雅 谢谢

作者回复: 1.一个request应该对应一个command 2.domain对象不应该处理外部逻辑,在command中处理,然后传递给domain对象。 3.缓存的设计尽量靠前,就是靠近输出的位置,需要看业务场景。优先级建议: 接口输出缓存》业务服务结果缓存》数据库查询结果缓存

2020-05-09
2
SuperSnow
Application下的IntegrationEvents,是用来处理 不同领域间 的事件传递,这个订阅类是应该放在与发布类同样的项目中吗?然后在订阅类中去调用其他微服务的接口进行处理。只所以用CAP组件,是因为该中间件提供了保证事务的同步,保证数据的最终一致性机制,这么理解没问题吧?

作者回复: 你的理解是对的,CAP是确保了两个微服务之间传递Event的可靠性。 视频的示例没有分开在两个项目中,需要改进。

2020-03-09
2
川杰
问题:发布订阅的各个组件适合放在哪个层次呢?比如,下单成功事件,触发,库存减少命令;主题:下单成功;订阅者:库存服务。 库存减少,放在 库存领域; 下单成功,放在 订单领域; 库存减少,订阅,下单成功,放在 应用层; 是这样吗?

作者回复: 事件的监听和处理,放在应用层,事件的触发,由领域模型驱动

2020-02-14
2
Geek_7c4953
老师我最近有一个疑惑,您把Command/Handler定义在Api这个程序集中,如果自动任务想要使用这些Command应该依赖Api吗?还是说应该每一个应用模块都有自己独立的应用服务?

作者回复: 自动任务可以复用这些command,它们应该是一体的,只是运行部署时host有所区分

2020-06-12
1
jovi.li
为什么不把api下面的 application单独一个层?这里的东西应该是很多api共用的??

作者回复: 一般application的业务范围与API的业务范围是对应的

2020-03-19
2
1
SuperSnow
肖老师,为什么分层里面没有领域服务层,PO层呢?

作者回复: CommandHandler的作用与领域服务的作用是一样的

2020-03-04
1
jacky
微服务肯定不止一个geek.api,如果是多个api,是新建解决方案还是在app层新建项目?

作者回复: 新建项目,每个API可以理解为一个微服务

2020-02-16
1
收起评论