A big part of the decision for which transport to use comes down to being able to test to see which transports are available. You can't test for every possibility, but you can certainly test for certain aspects, such as whether the device supports Wi-Fi or whether the application is currently running on the simulator or not.
One common technique that seems to work well is to only prompt the user for an address and to remove any other connection string options the user might have added. Then, after some testing to determine which transports are available, add the appropriate connection string options and create the connection. This takes the responsibility of knowing anything about the network transports off the user and makes the whole experience much smoother for the user.
There are several classes that can be used to gather bits of information about what capabilities are present on the device. Some of these classes have changed over time, so there may...