|
|
│ 价值390.png3 @/ x J9 @, C, l6 H: p5 ?# p g2 P
│
R B+ E3 T$ a) m$ o3 |& S. I Q7 [; q: X+ N9 _9 w├─01.Identity Server 4 准备' L* E+ u$ Y$ R" i# Q. i
- N, n2 S& F e4 z" G; ]* i│ 01.课程介绍 % _' W/ ^: ?: ^$ D+ H6 Z& x/ w9 n" {& e; `: B, w
│ 02.最小可行化产品MVP.mp4. w/ n) |: u2 G' ]0 i7 \
# a4 Q5 f/ V! |! K│ 03.两种软件开发模式:瀑布与敏捷.mp4) l2 R7 j$ h! a( z
: U+ z( T: |' q3 f" ?. _" E% O& o│ 04.第一章计划与目录.mp4 ^/ v# d; O2 {% U9 [
5 b" \( A, c0 @0 `│ 05.业务介绍.mp4! q8 z8 ?( w O
3 o+ O* o) ]( ^, T: K+ F/ f│ 06.架构设计.mp4
$ B. w, H" G3 _* _ q% ^! f9 P0 ?6 G4 R1 G│ 07.oAuth2介绍.mp4% y( v1 e; v# r' n2 K* A- K( b- [& [* g* b6 s) S
│ 08.IdentityServer4登录中心.mp4; g3 a1 `9 q) W! s
4 `+ {# v" c- {+ l' E│ 09.客户端集成IdentityServer.mp4' q0 ?" n4 f" Q/ f! T6 H+ w' a& R; N" d4 V; M) d0 l
│ 10.第三方ClientCredential模式调用.mp4* e! }2 Y% b; o, @" N e. s
6 ~, L/ f9 u) _3 k# {2 } R: G4 |│ 11.ClientCredential模式总结.mp49 `# I8 `( i5 d8 H& O
3 j) ]* P: T) B; v│ 12.oauth密码模式identity server4实现.mp4* p$ t, q+ V) ~1 d2 @, Z. I0 l- ^6 d3 v7 J
│ 13.详解oauth2授权码流程.mp4: f1 z g8 r% r$ F: k3 i- }
( l* L. I# ^& T7 E# t│ 14.oauth2与open id connect 对比.mp4: a6 R1 e' W. i9 t
" ?% L# s& a% y$ `+ U* Z* ~│ 15.oauth2 + oidc 实现 server部分.mp4 i4 d1 W2 _1 S) f. @1 W$ j0 E* R# O& c; y& N; b
│ 16.oauth2 + oidc 实现 client部分.mp4/ P7 i6 ^+ A: G7 v( c# n9 P7 _. i, n% P4 ]
│ 17.Identity Server 4回顾.mp4* u6 g4 N+ V. C/ x- U
/ H" q, y9 `% E7 ~+ F6 ]1 X│ 18.Consent 实现思路介绍.mp41 m. t8 n9 B1 ^. s9 \
0 w! W/ m. b5 q6 i5 o$ e│ 19.Consent视图制作.mp4
! ?2 O7 U$ c* k2 z! `9 {. `2 @/ H7 T1 G│ 20.Consent Controller Get请求逻辑实现.mp4& R, b" u* I$ j+ \" f$ o
8 w% R& A( c# _; V) a) C+ h* u│ 21.运行Consent Page.mp44 |1 I/ ]* m! V+ I# i0 F7 V; E0 ?# f, n2 Y' e: g( X, A1 ~6 X# K
│ 22.Consent 确认逻辑实现.mp42 }: m& t$ I+ K
8 q. R/ W& p) f; x│ 23.Consent 代码重构.mp45 a0 N# ~/ f" _* R$ R# ^& W
. E3 t. v- O& L' p* M& S& z│ 24.集成ASP.NETCore Identity.mp4: r" Z: K0 R2 R, v% p2 w7 ?; Z; g+ b0 l6 n/ ^6 |; n$ g
│ 25.ProfileService实现(调试).mp4
) E2 D/ d- C* c+ p/ A. {: l k# L- D│ 26.OpenIdConnect获取用户信息的两种方式.mp4
/ g" S2 Q2 `" | B$ R9 @# i( }" ~8 E2 R9 o# G+ R│ 27.集成EFCore配置Client和API.mp42 \/ {3 S N: P# s! B1 h1 k, x! W4 R/ E, c8 p4 T& H
│ $ p9 o0 i/ a, f! r! s
; ?& o* f1 J8 u├─02.Docker 准备4 m0 n+ u+ | N3 i9 B
, y! L5 J8 @7 X5 W W│ 28.Docker介绍与目录.mp41 y) u5 k0 p4 h- \( b/ c
8 u( @3 ?; D6 i8 M" M. T5 c# U│ 29.镜像容器与仓库.mp42 y9 ^# W A( s# T* d6 S9 c2 N6 ]$ |' W2 h1 U8 U$ a% @
│ 30.构建单机多容器环境-故障.mp4# R; b" W# [% H. i# s1 p1 t! f W/ E" p* c9 d2 N
│ 31.构建单机多容器环境.mp4
5 \ |( h* |6 D1 `, u1 t: m/ w- d8 f: a1 [│ 32.Docker安装MongoDb.mp4
2 `1 g( D% i; z! o# g- b0 V% g7 F. Z. q0 Q& T│ 33.Docker安装Mysql及用户配置.mp4# A. Y& @- |* a# m, v E1 q
. v1 T2 O8 c6 ]! o- Z│ 34.Docker安装Mysql参数及环境变量使用.mp4, t4 `! r% N" q6 _8 t' p g
( B( a, j4 p+ C9 i* J│ 35.Docker安装Mysql挂载Host Volume.mp4& ?3 ~& a+ ]/ n- e1 _
* N/ ~7 l( X0 R% d! G) L│ 36.Docker安装MongoDB挂载Host Volume.mp4
' x. Y: k& V$ \: @% h( \$ c" N# x: }8 T8 ~( z5 \' I5 s6 e. }│ 37.Docker制作dotnet core控制台程序镜像.mp4& I: z- G L( v3 m- j+ m
( p# l8 @( C/ d# Z9 W( A│ 38.Mysql EF Core 快速构建 web api.mp4
+ r& [- U3 {. F* [: q7 v1 H k2 h6 {+ n+ ?) L3 d│ 39.ASPNETCORE WEB API与MYSQL互联.mp4
7 r+ Y2 W5 G0 _) w1 E9 ]$ L0 y* A* u8 o" \ o│ 40.Docker Network.mp4# }1 P8 J( c- F& u" A' v8 S1 X9 n4 {! P1 z2 F9 {1 j1 ?9 P
│ 41.制作 docker compose.mp40 i Y: r6 v) r2 G9 G- @9 {* O s; Y- m. j9 G* ~) L( U
│ 42.docker compose 启动容器.mp4 `- w+ | ^1 W; R$ b' [
& A3 p; Z0 E' Y│ 43.启动问题解决方式.mp42 G: k% G8 }: J) L$ c. m$ ]
$ c' m \: x2 _ ]+ q% \. O│ 44.Gitlab安装.mp45 j( U9 |; H; K3 R; f7 e
, t6 R. U' j" I. w7 ]+ q│ 45.GitFlow的三种流程.mp4
# \1 C% F* E$ E; S! f" e+ I9 t% U│ 46.GitLab Runner注册和安装.mp41 ~7 B. I4 O: v' k j% C
! T2 h8 U8 t7 h4 z0 p- B│ 47.Gitlab-CI Build Docker-compose自动发布.mp42 R9 \+ r A8 L9 H- d1 |' n9 ?0 @
' x7 g: G/ {/ u& Q4 ?! l% e│ 48.Giitlab-CI yml语法说明以及第二章总结.mp4
& g7 h/ S% x/ e$ a( P' d8 W \) a# r, r. x│ 49.Docker仓库介绍以及阿里云镜像仓库的使用.mp4; W: a/ c# O9 E g6 ~
" N5 N- @) v' |8 s. a" Z│ 50.本地部署Registry.mp4
9 M0 F# ^; ?$ w+ J5 N. \, q3 u+ J. L2 x0 @* M v│ 51.Registry公网https带认证部署.mp4* j; ]- d6 n! E* ~7 k/ x7 x* f1 s9 K0 Y6 R# A4 k' S
│ 6 \' H) x5 T8 b' ^" o
; o U+ X ]" h2 L7 T4 O├─03.项目开发-用户服务
, R9 k# l8 J, [% n% f( d, s! [) C( U2 T# D│ 52.架构设计之单体架构.mp4
9 n% ^2 ^# X& V n, B, j9 y! S3 G5 k* r4 L7 ]) U0 | L│ 53.系统扩展升级演进思路.mp4. Y4 B" T" {' z% |/ O" F: o* j1 \$ l: G5 C
│ 54.微服务架构介绍.mp4/ l0 g( c1 r0 D' F2 K, N" T% N" S7 s+ B1 t: O# s7 n5 e
│ 55.面向微服务架构的单体架构.mp4
' r3 [0 N4 t0 M( A6 M! k" J0 p* D5 K/ }: M+ _( }6 r│ 56.UML业务分析之用户.mp4/ V: @- i. { Q1 U$ z* `: f2 P' o( o9 \* V7 p
│ 57.UML业务分析之项目机会与消息.mp4- e5 A& I E" @. P6 D
3 Y% `6 M( v3 i0 m- H│ 58.UML业务分析之项目流程详细介绍.mp4. h+ X- x+ j! T _# ]) g( |3 s0 o) R# J, e7 m& ^( `, q1 `3 _
│ 59.微服务拆分与界限上下文的确定.mp4
2 ? _( g: B1 N/ r3 O0 s+ v% v& u/ E' H/ ~│ 60.用户服务EF Core模型设计.mp4- M2 Z- E: z- t9 Z* ?3 J9 X5 |* f/ k. x. [! D5 n
│ 61.EF Core 数据库初始化.mp43 T2 z: x; t' |) {7 C- r6 R
' F8 @8 C& V2 q! O: O│ 62.用户服务API设计.mp4
7 Q2 }$ y' t" J$ Q, M1 B* p5 q9 n* P$ o│ 63.获取用户信息-数据访问与模型处理.mp48 n: R$ ?: m7 ?" M. J2 v
/ Q+ x; P; |9 f│ 64.全局异常处理与日志记录.mp4 ~! b/ x" K/ B; i7 ^; j
& [. P9 W! V1 `6 F│ 65.通过HTTP Patch更新用户信息.mp4* q+ e- {& p' L0 e7 T. K5 g. }* `8 P$ b
│ 66.单元测试初探.mp4# ]) n1 X* c% G$ S& Y; g( \3 ?: Z( u+ m! m, U
│ 67.xunit+Moq+MemoryEFDbContext测试UserController.mp4& m+ ^2 w" F0 v% b9 C8 s0 s- S' j: H0 N" V' b/ I
│ 68.FluentAPI写UserController测试用例(上).mp49 l' D8 D6 f/ l% G$ _3 z+ U: S) e+ E7 o; w! C* O
│ 69.FluentAPI写UserController测试用例(下).mp46 W5 r6 M0 h0 A1 V5 g
! t: t: M* P, `9 z& v│ 70.GitLab CI完整部署UserAPI到线上测试环境-上.mp4
- D+ m* x$ B9 ~& b8 n/ W, n: W( h$ h. _, a$ L: S& S R│ 71.GitLab CI完整部署UserAPI到线上测试环境-中.mp45 p' w. o' c3 Y
; H ^4 K" Y0 |, \: Z│ 72.GitLab CI完整部署UserAPI到线上测试环境-下.mp4% h/ q+ s/ ]& q* F; r6 x* c
0 k! x# w5 u1 q* f% f│ ( x$ v4 F8 P5 r+ `5 f
6 D4 n2 O( _9 L6 ~- _& A- T├─04.项目开发-网关与认证1 L) E7 S+ w8 q9 J- B
% N# x6 G6 r3 ]" W9 J│ 74.API网关与服务发现.mp4- Z; m6 G1 Q2 \7 Q1 p
- `/ l, {, N0 Y2 C a+ N. x; F│ 75.用户注册与登录.mp4
7 z5 l' |7 L# }# |" O1 ?% y& k" s0 e8 v+ l% ~) w│ 76.IdentityService4自定义Validator.mp4& ` u9 F! R* G
+ P5 ~ d8 N, l/ ]$ Q│ 77.自定义Validator与UserService互通.mp4 ]4 J" {6 W4 T5 u8 j$ v6 F! w$ x
4 E2 ?5 G- j. j│ 78.集成Identity Server4到Identity api并调试通过.mp4/ B) Q( I, F3 Q% R
! ^& A1 Z1 p. H% B% V: p│ 79.添加Ocelot网关并集成identity server4认证.mp44 K6 d/ t; ~/ N c& X' U5 w; q p; g5 c& B0 ~" y! J% L v& A
│ 80.Ocelot集成Consul服务发现.mp46 m$ L/ a! B* e
8 J& d/ ]) [2 P2 k" X: c│ 81.微服务之间的服务发现.mp4
2 _+ Y) S7 c' Z/ c& D6 M B! Z% |5 f# a+ c2 w2 Y( s! W/ X│ 82.Polly在eShopsOnContainer项目中的使用设计解析.mp4# x+ V1 i, r- Y- @5 _: C, ?; x* Y; O1 G3 N! U2 J' |2 e
│ 83.实现ResilienceHttpClient.mp4) Y1 @: W$ J2 i* q- u% [
7 ^$ ]: a8 q, ~# Q' Q│ 84.集成ResilienceHttpClient到IdentityAPI.mp4
* F7 Y J5 k. ?0 u- f6 @2 i7 J3 N% G1 d2 {+ n9 q│ 85.调试ResilienceHttpClient和IdentityAPI.mp4, U. F$ M: p# N5 D! Q5 l9 A8 G7 |4 C! X7 |+ L0 J& V
│ ; u" b f% A# s7 O2 I2 D
- g' y% B# h5 u' t├─05.项目开发-通讯录服务& C/ B" C5 d1 N T$ ]
( c' F: S3 F; o# h│ 86.通讯录服务实现章节介绍.mp46 p' G h# n4 C+ v" C" |2 o: @
/ R' t, u) o9 f4 u│ 87.详细业务分析设计及外部依赖检查.mp4% V% {) x. }2 H2 G# W
9 Z* Y/ M+ z3 f│ 88.外部依赖UserService实现.mp4 W+ J, A _6 O; t5 z! g: \1 c; V
8 v" `, g3 r! N0 \: j4 G│ 89.内部实现 - 用户好友申请接口.mp43 K+ I$ F8 U3 W3 d, M
6 S* |1 {$ d! D9 y9 M2 s) [│ 90.内部实现 - 用户好友申请实现MongoRepository上.mp45 T+ q0 S* T4 Y' g( [8 W% |+ ]/ Y, r
│ 91.用户好友申请实现Mongo查询与更新的基本用法.mp4* Q: N+ V7 S! Y
9 n: J( g, s, A0 ~│ 92.实现 - 用户好友申请实现.mp4% c* t! u z/ U" G8 f+ ?8 w' f c
│ 93.实现 - 用户好友通过实现.mp4. d) [* V5 r% b( P1 z# Z5 |8 @
7 ^) J% W) C7 s2 e' f) u% M│ 94.将Contact API加入网关.mp43 ~! \. U9 t% i( p0 ~* n3 r6 }1 T7 v0 Z, l$ f% V% L
│ 95.将profile添加到identity api和网关.mp42 r# X# H+ g/ |4 ^
7 h3 s- Z$ L7 `8 \│ 96.profile调试.mp4/ w% R& f& o. C+ G& O' h
( G1 w9 r4 ^5 h( A. n1 Z! t│ 97.在contact api 中获取profile.mp4( W) C$ P% R' B& [5 y2 [1 Q1 Z9 X
│ 98.Contact API 调试.mp4
7 X+ r- W9 `' G( A# U- n" g2 l2 U1 L- b9 d│ 99.实现Contact API 向 User API的调用.mp49 C$ U# A5 _4 e( \2 H* N# k9 `; B$ m7 [+ W# B
│ 100.Contact API 完整运行.mp46 ?- Q8 Q3 b* |$ P& {2 |
4 v/ B! r! K0 {% a6 C│ 101.服务交互 - RabbitMQ介绍.mp4
5 ]! _6 E* ?* Z' C, D/ q0 V: G5 ]0 N3 i/ Q/ ?3 `# r# [. ]$ _: j│ 102.服务交互 - EventBus 之 MediatR,RawRabbit, eShopsOnContainer.mp4
6 j" s2 w+ S% a5 d L" m. g$ Y& }8 w2 n9 N. b# g0 a│ 104.User API事件发送实现.mp4: M2 U% v4 C) \8 P7 x6 |$ H" q1 k" ?
│ 105.Contact API集成CAP.mp4
. m. X. \6 w; o, p: {% Y8 ~; M" m. Y$ K│
+ p* E* l7 K# M6 s' k. Q8 T, n/ D7 w% ], w3 s" S$ p* N├─06.项目开发-[项目][推荐]服务6 m5 ?6 O9 s7 H( i
) b5 h7 P2 q3 R$ ^( D Z│ 106.章节介绍.mp41 K& i+ K9 s. [3 m3 H( U
& g- d7 A6 i2 }- P│ 107.DDD介绍-从三层到OOD OOP.mp4) u* J" O% `3 V' ?! B( g9 g. Q
: e) r- I* F: |; |8 m W, F│ 108.DDD介绍-结合业务需求来认识各种名词.mp4
" p8 h$ h( O6 _3 Y" z0 W4 N/ @9 p- K2 i ~│ 109.DDD介绍-分层.mp4
7 s: g: a! l' }, [ V, A9 c+ v3 p. S8 r9 H│ 110.DDD介绍-CQRS基本介绍.mp4
# X# R2 S" {( y* p# s) s. n1 [0 K1 d3 T6 L7 J" _6 i, P│ 111.项目业务介绍 - 领域事件与集成事件.mp4
. P- Z0 V4 J. L1 j. K2 H {; e, z2 y7 f# K5 |3 F' E$ Y* t/ G6 l│ 112.项目服务实现- 搭建框架.mp4
) m0 C5 R" P/ f+ B% q* l' N/ r* X; ` l' z│ 113.项目服务实现- 实现领域entity.mp46 `) Z, N" m( A
$ E5 ^3 Z3 C; x/ \; ?% |0 U6 Q│ 114.项目服务实现 -MediatR与领域事件.mp4+ y4 G- X* y" s: B5 k8 H8 H
8 v* {, G; b. k1 ^. c│ 115.项目服务实现- 创建查看加入Commands.mp4
; ^6 j/ h& r9 I/ z) D% N5 M2 P2 q6 y, |│ 116.项目服务实现 -通过MediatR完成API到Commands调用.mp47 i* ^& n! B# G- D5 [ I5 W" m( ~! U; l3 ^: Y6 I7 c
│ 117.项目服务实现 -添加EF Repository.mp4( t( }& j& B9 e4 U" L
, J3 G. e1 b' E$ {. D" Y9 T. t( o│ 118.项目服务实现 - 实现EF Repository.mp4- Y: T7 Z; P) ^7 x [8 w) a. M
│ 119.项目服务实现 - EF 实体配置和migrations数据库生成.mp4- l' M6 g8 k$ e, _+ ~, ]$ K. G4 b
z1 ]6 P8 w2 D/ K" O│ 120.项目服务实现 - 添加推荐服务调用.mp4) W5 @* y6 @5 O A7 g
( G: Y! A) s+ R6 ~( g, l│ 121.项目服务实现 - 添加Dapper Queries.mp4( j" q! B- j/ `6 Q
6 {# v2 v1 G9 C) R5 ~* F0 M! P4 n- k│ 122.项目服务实现 - 添加Dapper Queries下.mp47 `+ w! ~! O1 J
* a; C5 ~# [' Q- p│ 123.项目服务实现 - 添加服务注册与发现debugging queries.mp4& N1 }; K. i4 b0 p
1 K& }( b) c1 V2 t( Q2 Y n: A│ 124.项目服务实现 - debugging commands.mp4
* F% @3 ~' Q+ m$ g5 C+ q0 h* j# ~2 X9 T│ 125.项目服务实现 - 响应领域事件发布集成事件上.mp4: a0 h1 l; T2 p+ I1 r
" a3 p4 b% x" U# u4 |# u( t│ 126.项目服务实现 - 响应领域事件发布集成事件下.mp4% T# Q5 B. ^+ f) C. J( a. U+ l' v
: J8 }* E. w5 ?, X│ 127.推荐服务实现 - 添加集成事件处理器.mp43 w1 |" z. w( w" t. d# N# j5 ]5 i. ]3 w3 U. p0 b
│ 128.推荐服务实现 - 添加EF和生成数据库.mp4$ Z9 n1 `. V9 A: Q
0 `6 |! W% e( B& P" U│ 129.推荐服务实现 - 访问用户服务获取用户信息.mp41 M# y; V$ z0 \+ L m- x& d
0 q! p' ?2 Q7 [1 e( e; G( Q! n) }│ 130.推荐服务实现 - 访问联系人服务获取好友信息.mp4" B! V9 G ~2 r P: l
+ C# E; h0 i6 @* i; a- B' T│ 131.推荐服务实现 - 调试推荐服务.mp4- D2 `1 w, M, @2 G4 l8 f7 ~2 z" o! p# g* ?
│ 132.推荐服务实现 - 推荐服务加入网关.mp4
% t) g; I$ a& O9 s& Y( z. {$ C4 z5 `! s" Z3 E% E│ * O* `: ? \4 K* o4 J* J# m: a( m) G1 o' m! G
├─07.微服务监控与部署
7 P7 ~9 }7 J0 d& {6 i6 H; X6 h( Z│ 133.分布式追踪介绍以及zipkin server初始化.mp44 {4 x" L: I3 v/ J% T. b/ H# K4 u1 j6 k
│ 134.集成zipkin需要安装的nuget包.jpg
5 ^& e5 D5 ]( o) }- i% I8 \$ V+ F. C: `) M0 T3 \│ 135.使用zipkin .NET客户端完成追踪和数据发送.mp4+ K- X$ A0 d6 y: F3 F: J0 @1 p% }: k2 X
│ 136.在ResilienceHttpClient中添加 zipkin TrackingHandler.jpg
C3 e+ n( a5 Q6 T) \( s1 G* K) ~' Z+ q9 e9 D0 ~* \2 y! p3 i│ 137.Elastic Search30分钟快速入门.mp45 l& i, o- b) m
: e; M& o$ l6 k9 y. v0 \& [│ 138.日志系统开篇.mp49 T# E) F# u; q o% Y" p0 A
/ f- v0 o" m+ r. Z# s│ 139.日志的类别.mp4
; m3 q& m) O& A$ K4 `" @, o$ n3 g8 i3 ^8 j r│ 140.日志的生命周期.mp4 ^- M: p+ [9 d7 U! f) a; g9 f# t: y, J9 }6 ^# F- ^
│ 141.EFK介绍.mp4# H- c# @, N" N, \/ g
9 K/ [8 k! M$ a o: K& E3 P5 c# z│ 142.Fluentd介绍.mp4( n6 S+ `( Q1 }1 H' w* X. g
7 a5 L4 H7 |1 g' r│ 143.Serilog介绍.mp4& Z( W' H8 E: j: c
8 B$ }' {8 t5 g" l1 z- `│ 144.Net Core日志通过 Kibana展示.mp4$ H; V8 a/ x" c9 o3 N
* x4 Q2 }; n2 z* U% g7 l│ 145.日志过滤与筛选.mp4: I" j0 y& W; I% w0 |
. e( E; L7 n: ~2 |) `│ 146.API性能与正确率搜集.mp4! m, H a) t: [" g8 |
|