In a large saucepan, add just 1 to 2cm of water to cover the bottom of the pan. Bring to the boil, add the asparagus, then reduce heat to a simmer. Simmer for 3 minutes or until asparagus is just tender. Drain and set aside.
In the same saucepan, bring stock to the boil. Reduce heat, cover and maintain at a low simmer.
In a large heavy frying pan, heat the olive oil over medium heat. Add the shallots and cook for about 3 minutes until soft, not allowing them to take any colour. Add the rice and stir to coat with the oil. Add the wine and cook until absorbed.
Stir in 200ml simmering stock. Cook until stock is almost completely absorbed, stirring frequently, then add another 200ml of simmering stock. Repeat until the rice is tender (you may have extra stock, which you can save for another use or freeze in an ice cube tray). The entire process should take about 20 minutes. Rice should be slightly firm in centre and look creamy.
Add asparagus and heat through. Remove from the heat; add the butter, Parmesan, salt and pepper. Serve immediately.