Bring a large pot of lightly salted water to a boil. Add penne and cook until al dente, 8 to 10 minutes; drain.
Meanwhile, heat the olive oil in a large frypan over medium heat. Stir in the garlic and onion, and cook until the onion has softened and turned translucent, about 5 minutes. Add the white wine, and simmer for 2 minutes. Stir in the chilli flakes, butter and asparagus; cook until the asparagus is just tender, about 3 minutes.
Add the prawns and lemon juice, continue cooking until the prawns have turned pink and are no longer translucent in the center. Season to taste with salt and pepper.
Toss the cooked penne pasta with the prawns and asparagus mixture. Sprinkle with parsley and parmesan cheese to garnish.