1. Урок 1. 00:01:35
    Course Overview
  2. Урок 2. 00:03:30
    Introduction
  3. Урок 3. 00:05:31
    CQRS and Its Origins
  4. Урок 4. 00:03:39
    Why CQRS?
  5. Урок 5. 00:01:32
    CQRS in the Real World
  6. Урок 6. 00:01:29
    Summary
  7. Урок 7. 00:00:20
    Introduction
  8. Урок 8. 00:05:57
    Problem Domain Introduction
  9. Урок 9. 00:11:31
    Application Code Introduction
  10. Урок 10. 00:08:25
    Application Code Drawbacks
  11. Урок 11. 00:01:32
    Summary
  12. Урок 12. 00:00:21
    Introduction
  13. Урок 13. 00:07:27
    CRUD-based Interface
  14. Урок 14. 00:01:49
    Task-based Interface
  15. Урок 15. 00:08:31
    Untangling the Update Method
  16. Урок 16. 00:03:26
    Recap: Untangling the Update Method
  17. Урок 17. 00:02:34
    Task-based User Interface
  18. Урок 18. 00:04:35
    Dealing with Create and Delete Methods
  19. Урок 19. 00:03:43
    Summary
  20. Урок 20. 00:00:46
    Introduction
  21. Урок 21. 00:11:31
    Introducing a First Command
  22. Урок 22. 00:02:48
    Commands in CQS vs. Commands in CQRS
  23. Урок 23. 00:04:41
    Commands and Queries in CQRS
  24. Урок 24. 00:04:22
    Commands and Queries in the Onion Architecture
  25. Урок 25. 00:03:59
    Commands vs. DTOs
  26. Урок 26. 00:05:18
    Leveraging ASP.NET Core Dependency Injection to Resolve Handlers
  27. Урок 27. 00:06:44
    Introducing a Query
  28. Урок 28. 00:04:41
    Finishing up the Refactoring
  29. Урок 29. 00:03:33
    Recap: Introducing Commands and Queries
  30. Урок 30. 00:04:28
    Summary
  31. Урок 31. 00:00:33
    Introduction
  32. Урок 32. 00:02:48
    New Requirement: Database Retries
  33. Урок 33. 00:08:34
    Introducing a Database Retry Decorator
  34. Урок 34. 00:03:24
    Decorator Pattern
  35. Урок 35. 00:02:25
    Introducing Another Decorator
  36. Урок 36. 00:07:16
    Streamlining the Decorator Configuration
  37. Урок 37. 00:01:29
    Recap: Streamlining the Decorator Configuration
  38. Урок 38. 00:05:27
    Decorators vs. ASP.NET Middleware
  39. Урок 39. 00:04:01
    Command and Query Handlers Best Practices
  40. Урок 40. 00:02:32
    Summary
  41. Урок 41. 00:00:55
    Introduction
  42. Урок 42. 00:05:08
    The State of the Read Model
  43. Урок 43. 00:05:01
    Separation of the Domain Model
  44. Урок 44. 00:04:13
    Simplifying the Read Model
  45. Урок 45. 00:06:40
    Recap: Simplifying the Read Model
  46. Урок 46. 00:02:26
    The Read Model and the Onion Architecture
  47. Урок 47. 00:02:06
    Summary
  48. Урок 48. 00:00:17
    Introduction
  49. Урок 49. 00:05:02
    Meet Scalability
  50. Урок 50. 00:02:07
    Separation at the Data Level in the Real World
  51. Урок 51. 00:03:11
    Designing a Database for Queries
  52. Урок 52. 00:04:04
    Creating a Database for Queries
  53. Урок 53. 00:02:00
    Recap: Creating a Database for Queries
  54. Урок 54. 00:01:55
    Scalability
  55. Урок 55. 00:01:58
    A Word of Caution Regarding the Database for Reads
  56. Урок 56. 00:02:49
    Summary
  57. Урок 57. 00:00:21
    Introduction
  58. Урок 58. 00:06:36
    State-driven Projections
  59. Урок 59. 00:03:05
    Synchronous State-driven Projections
  60. Урок 60. 00:02:47
    Event-driven Projections
  61. Урок 61. 00:03:41
    Consistency
  62. Урок 62. 00:04:18
    Eventual Consistency
  63. Урок 63. 00:01:51
    Versioning
  64. Урок 64. 00:03:23
    CQRS and the CAP Theorem
  65. Урок 65. 00:02:16
    Summary
  66. Урок 66. 00:00:16
    Introduction
  67. Урок 67. 00:02:18
    CQRS and Event Sourcing
  68. Урок 68. 00:01:59
    Evolutionary Design
  69. Урок 69. 00:03:52
    Using Commands and Queries from Handlers
  70. Урок 70. 00:01:55
    One-way Commands
  71. Урок 71. 00:02:47
    CQRS vs. the Specification Pattern
  72. Урок 72. 00:00:59
    Resource List
  73. Урок 73. 00:01:55
    Course Summary