How do I choose the right formal dress for me?

What is the semi-formal dress code?

Are knee-length dresses formal?

What shoes do you wear with a formal dress?