Preheat oven to 400° F.
In a large skillet, heat the olive oil over medium-high heat. Add the asparagus and toss to coat; cook for about 2 minutes. Remove from pan and place in a baking dish. Sprinkle with salt and freshly ground pepper.
Add the ham to the skillet. Cook, stirring constantly for 2 to 3 minutes. Add the shallots and cook until just softened, about 1 minute. Spoon ham mixture on top of asparagus. Sprinkle with Parmesan cheese. (Note: May be made in advance up to this point and refrigerated).
Roast asparagus at 400° F until crisp tender, 10 to 15 minutes. Yield: 6 servings.