Cook the pasta in salted boiling water until tender but still firm. Remove from the heat and drain well. Reserve about 1/3 cup of cooking water.
To make a shrimp stock: In a small pot, over medium-low heat, add the washed shrimp shells and 1 1/2 cups white wine. Simmer for about 5 minutes, strain and then discard the shells. Reserve the stock (about 3/4 cup).
In a bowl, combine the lemon juice, lemon zest, red pepper flakes, salt/pepper and shrimp. Set aside.
Heat the oil and butter in a large skillet pan over medium heat. Add garlic and shallots, cook until fragrant for about 1 minute. Add the shrimp to the pan and continue to cook for about 2 minutes or until they turn pink. Transfer to a bowl.
Add the marinade sauce to the pan, add white wine or shrimp wine stock, pasta cooking water and asparagus into the skillet. Bring to a simmer for about 2-3 minutes.
Add cooked pasta, shrimp and parsley to the pan. Toss to combine. Adjust seasoning with salt and pepper, to taste.
Remove from heat and serve immediately with grated Parmigiano-Reggiano.