For the dressing: Whisk together all of the ingredients in a medium bowl until combined. Set aside.
For the pasta salad: Bring a large pot of salted water to a boil. Add the pasta and cook according to the package directions, just until al dente. Add the asparagus and cook it with the pasta for 1 more minute. Drain the pasta and asparagus then rinse with cold water and drain thoroughly.
Transfer the pasta and asparagus to a large bowl. Stir in the onions and tomatoes. Pour the dressing over the pasta, toss to combine, then cover and refrigerate for at least 3 hours and up to overnight. When ready to serve, stir in the Parmesan and enjoy cold or at room temperature.