01 - Preheat oven to 350°F if baking with the breadcrumb topping.
02 - Bring a large pot of salted water to a boil. Cook 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. Whisk in the flour and cook, stirring constantly, for 1 minute to form a smooth roux.
04 - Gradually pour in the whole milk while whisking continuously to prevent lumps. Bring to a gentle simmer and cook, whisking constantly, until the sauce thickens and coats the back of a spoon, about 4 to 5 minutes.
05 - Reduce heat to low. Add both the sharp and mild cheddar cheeses along with the Dijon mustard. Stir until the cheeses are completely melted and the sauce is smooth. Season with salt and black pepper to taste.
06 - Fold the cooked macaroni into the cheese sauce, stirring gently until every piece is evenly coated.
07 - For a baked version, transfer the mixture to a greased baking dish. In a small bowl, combine the breadcrumbs, melted butter, and grated parmesan. Sprinkle evenly over the top and bake for 15 to 20 minutes until the topping is golden and crisp.
08 - Serve hot, straight from the pot or baking dish. Enjoy immediately for the creamiest texture.