I have a three and a half year old, but I am fortunate that she is an angel baby, especiall because she is a later in life (mine that is) girl. That being said, my now 11 year old had many of these same issues at that age. As far as embarassing me in public, it was an inconvenience but I just quit taking him anywhere with the explanation that if he wasn't going to follow directions in public, he wouldn't go. Took awhile but he eventually got the idea.
Now the at home stuff was a completely different beast. It took a combination of positive reinforcement and negative punishment. We created a sticker chart for the use of manners. If he used please, thank you, etc, or used other polite or kind words or behaviors without prompts he got a sticker. The sticker gave him not only a visual representation that he had done something good, but also gave him positive attention for the good behavior. Five stickers equaled five minutes uninterrupted Mommy time (no TV, phone, etc). We would take walks and that sort of thing. However if he had to be prompted, he got no reward. If he ignored a prompt, whatever he was doing at the time (tv, toy, what have you) got a timeout instead of him getting one. I found that putting him in timeout only gave him negative attention. If I put the item in timeout, though, I could walk away, ignore the ensueing tatrum, and not give him what he wanted (attention).
Use or don't use whatever would work for you. This is just what worked for us and each child is different. Good luck with her! :)
Oh! And as an added note, DON'T let her realize she gets to you! She is at that age where she is becoming aware that she can affect others' behaviors. I know it sounds just terrible, but if she recognizes that she can make you cry when you get frustrated, it's better than cake and cookies!