Preheat the oven to 350 degrees F.
Add cupcake liners to two (12 count) cupcake pans and spray them very lightly with non-stick baking spray.
In a medium-sized mixing bowl, add the dry ingredients (flour, baking soda, baking powder and salt). Whisk well and set aside.
In a large measuring cup or a small bowl, add the sour cream, milk, extracts and egg whites. Whisk well and set aside.
In a separate large mixing bowl, add the sugar, vegetable shortening and room temperature butter and mix with an electric mixer on medium-high to high speed for approximately 2 minutes until light and fluffy.
Alternately add in the dry mixture and the liquid mixture to the butter/sugar mixture, starting and ending with the dry mixture as follows:
Add ½ of the dry mixture to the butter/sugar mixture and mix on medium speed just until combined (about 15-20 seconds or so). Add in all of the liquid mixture and mix on medium speed only until just combined (about 20 seconds or so). Add the last ½ of the dry mixture and mix on medium speed until well combined (about 15-20 seconds or so).
Scrape down the sides of the bowl and mix again only for about 10 seconds or so.
(Be very careful only to mix until well combined. Mixing scratch cake batter too long and at too high of a speed can cause the cake to come out dense, rubbery or to fall in the middle. Mixing a minute or longer is too long. The batter does not need to be perfectly smooth when mixing scratch cake batter, it just needs to be well combined.)
Fill the cupcake liners about ⅔ of the way full. Bake at 350 degrees F for approximately 18-25 minutes. Ovens vary, so start checking at about 15 minutes to be safe. Cupcakes are finished baking when they are slightly golden around the edges, the tops are slightly firm to the touch and a toothpick inserted into one of the middle cupcakes comes out with a few moist crumbs on it or clean, but no raw batter. If the toothpick comes out with some moist crumbs, go ahead and pull the cupcakes out. You do not have to wait for the cupcake to come out completely clean as that can actually overbake cupcakes and cakes. Just make sure there is no raw batter on the toothpick.
Remove the cupcakes from the oven and set the pans on wire racks to cool for about ten minutes, then take the cupcakes out of the pans and let them cool completely on wire racks before adding the frosting.
Pipe or spoon frosting onto cooled cupcakes. See the notes section for frosting options and ingredient information.