Mince the onion and garlic, set aside. Slice the tomatoes and set aside. Measure out the Parmesan cheese and set aside.
In a bowl, beat the eggs with the oregano, salt and pepper. Add the ricotta and whisk until mostly incorporated (no lumps bigger than a pea). Let sit for about a couple of minutes.
Prepare griller, set rack as close to the top and preheat.
In a frypan over medium heat, melt the butter and saute the asparagus, shallots and garlic for about 1 minute. Add the egg mixture and start scraping it up from the bottom and sides (just a bit more gently then you would for scrambled eggs). When it is about 1/2 way set, remove from heat, smooth out top with your spatula, distribute tomato slices on top and sprinkle the Parmesan cheese evenly over the top.
Put under the griller and grill until the cheese starts to turn brown. Be sure to use a towel or pot holder to remove the frypan. If you used a non-stick frypan the frittata will slide out easily onto a plate where it can be cut into wedges to be served.
The trick with frittatas is having the right pan and having everything prepared before you start to cook.
I use asparagus tips but you can use the whole spears just cut them into bite sized pieces.