How do I control which monitor an application will appear on? I just switched to Mac from Windows.  

In Windows, if you have multiple monitors, application windows tend to appear wherever you most commonly put them. If you have different setups (for example a laptop with one external monitor at home but three monitors at work) Windows will even tend to remember where you like to put each app on each setup.

How do you do that on Mac?
On Mac you can configure each app to open on a certain monitor.  They don't adapt to different monitor setups, they go where you configure them.    But there are a bunch of non-obvious steps to do it.

1) In System Preferences -> Mission Control you have to set "Displays have Separate Spaces" to True.  Otherwise, all your monitors are one "space" and application assignments are impossible.

2) You have to have your monitor(s) plugged in.

3) At least one of your monitors has to have two or more Desktops of its own.  If you have one Desktop on each Monitor, that's two or more altogether but it's not enough.  You have to create another Desktop on either monitor, even if you don't intend to use it.  That's the key to unlocking the elusive menus that allow you to configure this.

4) That was easy, wasn't it?   With all that out of the way, start any app, right click on its Dock icon, choose Options and there you will see "Assign To".  As far as I can ascertain the options are:


All - The app will open on the monitor where you started it from, and appear in all desktops on that monitor.
Desktop on Display 1 : The app will always open on Display 1, in whichever Desktop is active.
Desktop on Display 2, 3, etc: you get this.
None: The app will open in the active desktop on the monitor where you started it.   If you unplug monitors, Apps configured for specific monitors will also behave this way.


Now go do that for each app you want to configure.