Bring a large pot of water to a boil. Reduce the heat to a low simmer while preparing the shrimp.
In a large skillet melt 2 tablespoons butter and 2 tablespoons olive oil in a large skillet over medium-high heat.
Sauté the garlic and red pepper flakes for about 2 minutes. Season the shrimp with salt and pepper and add them to the butter and garlic mixture. Cook the shrimp for about 2 minutes on each side, or until they have turned pink Remove the shrimp from the pan using a slotted spoon. Set aside and keep warm.
Add the wine, lemon juice and asparagus to the pan and bring to a boil. Add the remaining 2 tablespoons butter. When the butter has melted add the shrimp to the skillet along with the parsley. Stir to combine and remove from the heat.
Turn the pot of water to high and bring to a boil. Add the pasta and cook until al dente - about 2-3 minutes. Drain the angel hair pasta and return it to the pot. Toss with a drizzle of olive oil.
Toss the shrimp and asparagus with the cooked pasta and add the tomatoes. Season with salt and pepper and drizzle with additional olive oil if desired.
Lightly sprinkle with grated Parmesan to serve.