01 - Preheat the oven to 350°F if preparing the baked version with breadcrumb topping.
02 - Bring a large pot of salted water to a boil. Cook the elbow macaroni according to package directions until al dente. Drain thoroughly and set aside.
03 - In a medium saucepan, melt the butter over medium heat. Sprinkle in the flour and whisk continuously for 1 minute until the mixture is smooth and lightly golden, forming a roux.
04 - Gradually pour in the whole milk while whisking constantly to prevent lumps. Bring the mixture to a gentle simmer and continue whisking until the sauce thickens and coats the back of a spoon, about 4 to 5 minutes.
05 - Reduce the heat to low. Add both the sharp and mild cheddar cheeses along with the Dijon mustard. Stir steadily until the cheeses are completely melted and the sauce is smooth. Season with salt and black pepper to taste.
06 - Fold the drained macaroni into the cheese sauce, stirring gently until every piece is evenly coated.
07 - For a crispy baked finish, transfer the macaroni mixture to a greased baking dish. In a small bowl, combine the breadcrumbs, melted butter, and grated Parmesan. Sprinkle evenly over the surface and bake for 15 to 20 minutes until the top is golden and bubbling.
08 - Remove from the oven and let rest for 2 to 3 minutes. Serve hot while the cheese sauce is still creamy.