30% OFF - Use code HANDSON30 for 30% off any course or Dometrain Pro! Browse courses →
  • Courses
  • Learning Paths
  • Blogs
  • Authors
  • Leaderboard
  • Dometrain Pro
  • Shopping Basket

    Your basket is empty

  • Business Portal
  • Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    About This Course

    Caching is fundamental in building fast, scalable and resilient applications. It's also famously one of the two hardest things in software engineering, the other one being naming things. It's everywhere from apps to services, from hardware to software, from file systems to databases and at the very foundation of the internet and the web. In this course, Jody Donetti condensed over 20 years of real-world experience he gained while working on various cache types, including memory, distributed, hybrid, HTTP caching, offline caching, and CDNs. You'll explore the fundamentals of caching, both in general and on .NET, covering core concepts, mental models, techniques, best practices, common scenarios, recurring problems, and how to solve them with a focus on pragmatic solutions that can be immediately applied in the real world. The course will cover different caches, both from Microsoft and the amazing .NET open-source community, including FusionCache, which Jody created and is used even by Microsoft themselves. Ultimately, this knowledge will make your applications faster, more scalable, and robust - in short, better.

    Course Curriculum

    7h 11m 15 sections
    Welcome
    04:00 Free preview
    What will you learn in this course?
    02:32 Free preview
    Who is the course for and prerequisites
    01:21 Free preview
    What is caching?
    02:36
    Is caching important?
    05:53
    Cache all the things!
    00:41
    When should we cache? When not?
    03:06
    What should we cache? What not?
    01:07
    How should we cache? How not?
    01:14
    The "database"
    00:58
    Memoization
    01:37
    What is a cache?
    01:03
    Cache Key
    02:20
    Values & Entries
    01:06
    Cache Internals
    01:32
    Eviction & Friends
    02:03
    Invalidation
    01:59
    Expiration
    02:51
    Eviction Policies
    02:00
    Options
    01:42
    Core Methods
    05:42
    Factory
    02:15
    Hit & Miss
    01:07
    Refresh Cycle
    01:11
    A cache is not a database
    01:48
    Caching without a cache
    04:54
    Intro
    00:53
    The basics
    04:17
    Remove
    02:19
    Handling null
    04:39
    Expiration
    10:37
    Options
    06:08
    Validation
    03:35
    Concurrency
    02:06
    Eviction
    08:02
    Disposal
    09:10
    Last touches
    06:43
    The Prestige
    05:54
    Low Level VS High Level
    01:16
    Cache Types
    00:31
    Memory Caches
    01:52
    Distributed Caches
    03:34
    Hybrid Caches
    07:34
    Which Cache Type To Use?
    02:39
    A Memory Cache Is Not A Memory Cache
    01:48
    The caches we'll use
    01:00
    MemoryCache
    03:19
    FusionCache
    15:33
    HybridCache
    06:04
    HybridCache Limitations & Issues
    07:27
    FusionCache as HybridCache
    11:31
    Microsoft + OSS
    03:21
    OSS alternatives
    08:59
    Comparison
    02:16
    Public Constructors
    01:33
    Dependency Injection
    04:42
    Builder
    03:21
    Default Entry Options
    08:42
    Sharing A Single Cache
    02:59
    Multiple Named Caches
    10:57
    Cache Key Prefix
    04:01
    Cache Stampede
    09:44
    GetOrSet, don't Get + Set
    03:39
    Why nulls can be good
    04:01
    Alternatives to nulls
    02:19
    Describing Cache Entries
    02:18
    Priority
    00:57
    Manual Compaction
    03:57
    Size & SizeLimit
    02:08
    Automatic Compaction
    09:50
    Clear
    06:59
    Fallacies of Distributed Computing
    03:17
    Resiliency
    01:08
    Database Failures
    01:37
    Fail-Safe
    17:39
    Expire
    02:46
    Write Data: Then What?
    02:24
    Application Writes
    10:56
    External Writes
    06:39
    Strategies... not
    03:03
    Database Slowdowns
    01:48
    Eager Refresh
    06:39
    Database Slowdowns - Part II
    02:09
    Factory Timeouts
    10:05
    Eager Refresh VS Factory Timeouts
    08:20
    Background Factory Execution
    10:08
    Microcaching
    12:28
    Immutability
    08:00
    Cache Bypass
    03:48
    Adaptive Caching
    09:07
    Fallacies Of Distributed Computing (again)
    03:04
    Step By Step
    17:57
    Conclusion
    03:20

    Meet Your Instructor

    Jody Donetti

    Jody Donetti

    Jody is a Principal Engineer doing coding, R&D and architecture for the past 30 years. He enjoys designing, developing and evolving software, and has worked on all sorts of things: websites, services, offline pipelines, PWAs, native mobile apps, digital publishing systems, video streaming platforms and CDNs, all happily handling millions of users all around the world. Dealt with most types of caches: memory, distributed, hybrid, HTTP caching and offline caching. Created FusionCache, an easy to use, fast and robust hybrid cache with advanced resiliency features. FusionCache is also the world's first production-ready implementation of Microsoft HybridCache. For his work on FusionCache he received both a Google OpenSource Award and a Microsoft MVP Award.

    View all courses by Jody Donetti

    What's New

    Getting Started: Model Context Protocol (MCP)
    course

    Getting Started: Model Context Protocol (MCP)

    Learn how to get started with the Model Context Protocol (MCP) and integrate it into your applications.

    Learn more about Getting Started: Model Context Protocol (MCP)
    Hands-On: Learn TypeScript
    course

    Hands-On: Learn TypeScript

    Learn TypeScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn TypeScript
    Hands-On: Learn JavaScript
    course

    Hands-On: Learn JavaScript

    Learn JavaScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn JavaScript
    Hands-On: Data Structures & Algorithms in C#
    course

    Hands-On: Data Structures & Algorithms in C#

    Master data structures and algorithms through hands-on coding exercises in C#. Free to enroll for 7 days!

    Learn more about Hands-On: Data Structures & Algorithms in C#
    Blogsmith.ai
    feature

    Blogsmith.ai

    Turn your videos into blogs and newsletters with AI. Check out our new product at blogsmith.ai.

    Learn more about Blogsmith.ai
    Leaderboard
    feature

    Leaderboard

    See how you stack up against other learners. Track your progress, climb the ranks, and compete with the Dometrain community.

    Learn more about Leaderboard
    Hands-On: Learn PostgreSQL
    course

    Hands-On: Learn PostgreSQL

    Learn PostgreSQL through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn PostgreSQL
    Free Hands-On: C# for Beginners
    course

    Free Hands-On: C# for Beginners

    Learn C# through hands-on coding exercises. Practice what you learn with interactive challenges designed for everyone, from beginners to experts.

    Learn more about Free Hands-On: C# for Beginners
    Getting Started: AI for .NET Developers
    course

    Getting Started: AI for .NET Developers

    Get started with integrating AI into your .NET applications effectively using the latest LLM best practices.

    Learn more about Getting Started: AI for .NET Developers
    Getting Started: Building .NET Applications on AWS
    course

    Getting Started: Building .NET Applications on AWS

    Learn how to build and deploy .NET applications on AWS using CDK, Lambda, DynamoDB, S3, and more.

    Learn more about Getting Started: Building .NET Applications on AWS
    What's new in C# 14
    blog

    What's new in C# 14

    This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

    Learn more about What's new in C# 14
    Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    course

    Let's Build It: AI Chatbot with RAG in .NET Using Your Data

    Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

    Learn more about Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    From Zero to Hero: SignalR in .NET
    course

    From Zero to Hero: SignalR in .NET

    Enable enterprise-grade real-time communication for your web apps with SignalR.

    Learn more about From Zero to Hero: SignalR in .NET
    Deep Dive: Solution Architecture
    course

    Deep Dive: Solution Architecture

    Master solution architecture and turn business needs into scalable, maintainable systems.

    Learn more about Deep Dive: Solution Architecture
    Migrating: ASP.NET Web APIs to ASP.NET Core
    course

    Migrating: ASP.NET Web APIs to ASP.NET Core

    A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

    Learn more about Migrating: ASP.NET Web APIs to ASP.NET Core
    Getting Started: Caching in .NET
    course

    Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    Learn more about Getting Started: Caching in .NET
    From Zero to Hero: Testing with xUnit in C#
    course

    From Zero to Hero: Testing with xUnit in C#

    Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

    Learn more about From Zero to Hero: Testing with xUnit in C#
    Create a ChatGPT Console AI Chatbot in C#
    blog

    Create a ChatGPT Console AI Chatbot in C#

    This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

    Learn more about Create a ChatGPT Console AI Chatbot in C#