Over moderately high heat, bring a large pot of salted water to a boil. Add the asparagus and cook until tender, 4 to 5 minutes. Using tongs, transfer the asparagus to a bowl of ice water. Drain, pat dry and chop into 1/2-inch pieces.
In a medium bowl, toss together the asparagus, shallots and vinegar. Drizzle the oil on top of the asparagus. Using a vegetable peeler, shave the Parmesan to measure 1/3 cup. Toss the cheese with the asparagus and season with salt and pepper.