How to Make It
Warm 1 Tbsp. oil in a skillet over medium-high heat. Cook ham, stirring, until crisp, about 8 minutes. Transfer to a plate. Wipe out skillet; let cool slightly.
Preheat broiler. Line a baking sheet with foil. On sheet, toss asparagus with remaining 1 Tbsp. oil, season with salt and pepper and arrange in a single layer. Broil until crisp-tender and tips begin to brown, about 4 minutes, shaking pan once or twice.
Melt butter in skillet over medium heat. Add flour; whisk until a paste forms, about 1 minute. Slowly whisk in hot milk. Cook, whisking, until slightly thickened, about 1 minute. Remove from heat; whisk in cheese until melted. Season with salt and pepper.
Drizzle asparagus with cheese sauce. Top with ham and serve.