Cut asparagus into three sections. Boil steam or microwave asparagus 1 to 2 minutes until bright green but still tender-crisp; drain well.
Heat the oil in a large, non-stick frying pan (12 inches) over medium heat. Add the onion & cook, stirring occasionally, for 10 minutes, or until the onion is softened.
Add the asparagus & stir until combined.
Whisk the eggs, salt & pepper together in a medium bowl. Sprinkle three-quarters of the cheese over the asparagus. Add the eggs, carefully swirling the pan to make sure the egg mixture is evenly distributed. Sprinkle with remaining cheese. Cook, covered, over medium –low heat, for 5 minutes or until the bottom is golden brown (you can lift a small section with a spatula to check.
Place the frittata under a hot broiler, 6 inches away from the heat source, for 1 to 2 minutes until the top is golden & eggs are set. Let stand in the pan for 10 minutes before inverting onto a plate or board (you can flip it back right side up if you prefer). The frittata can be made 2 days ahead & stored covered in the fridge.
Cut the frittata into about 8 wedges, top with smoked salmon, drizzle with lemon caper cream. Top with sprigs of dill & diced onion if desired. Serves 6 to 8.