Exercise 1: Configuration Block vs. Ordinary Function — Possible Solution ==================================================================== THE CORE DIFFERENCE ------------------------------ Per this chapter, every ordinary PowerShell function (as covered throughout the rest of this course) is imperative - it describes a sequence of STEPS to execute, once, in order, and you're responsible for making it safe to re-run yourself. A DSC Configuration block is declarative instead - rather than listing steps to perform, it describes the desired END STATE (a feature should be Present, a service should be Running), and DSC's own engine is responsible for figuring out what actions, if any, are actually needed to reach that state. WHY THIS IS A GENUINE PARADIGM SHIFT ------------------------------ Per this chapter, this is explicitly contrasted against the Fundamentals capstone's own imperative Remove-Item pattern, which needed a manually written try/catch specifically to be safe to re-run. A DSC resource doesn't need that same manual safety logic, because "check current state, only act if different" is built into the resource itself as a fundamental design principle, not something the configuration author has to hand-code the way an ordinary function author does. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains the declarative (desired end state) vs. imperative (sequence of steps) distinction as this chapter frames it, and correctly connects this to why DSC resources don't need the same manually-coded safety logic an ordinary function does.