01 - Preheat oven to 350°F if preparing the baked version with breadcrumb topping.
02 - Bring a large pot of salted water to a rolling boil. Add elbow macaroni and cook according to package directions until al dente. Drain thoroughly and set aside.
03 - In a medium saucepan, melt butter over medium heat. Sprinkle in flour and whisk continuously for 1 minute until a smooth, lightly golden roux forms.
04 - Gradually pour in whole milk while whisking constantly to prevent lumps. Bring 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 heat to low. Add both sharp and mild cheddar cheeses along with Dijon mustard. Stir gently until the cheeses are completely melted and the sauce is silky smooth. Season with salt and black pepper to taste.
06 - Fold the drained macaroni into the cheese sauce, ensuring every piece is evenly coated.
07 - For a golden crust, transfer the mixture to a greased baking dish. Toss breadcrumbs with melted butter and grated parmesan, then sprinkle evenly over the surface. Bake at 350°F for 15 to 20 minutes until the top is crisp and golden brown.
08 - Let rest for 2 to 3 minutes before serving hot.