ESC or Brushless DC Motor Controller, what's the difference?

I'm looking into building my own drone using a microcontroller, I want to use a brushless motor. I know you need a motor driver (controller) to control motors, but for brushless motors I had electronic speed controllers (ESC) come up in my research.

1.What is the difference between an ESC and a brushless motor controller?

2.How would they connect with my microcontroller? 

3. Are they both capable of running the motor in the oposite rotation?

Here is the ESC I looked at:

Here is the brushless motor controller I looked at:

Any suggestions of ESCs/motor controllers to use will be greatly appreciated.