WiFly vs. XBee vs. WiFi Shield

I'm sure this is an age old question, but what's the pros/cons of WiFly, XBee, & Wifi Shield?

I'm looking at connecting Arduino to the internet via in-house wifi.

Obviously, I'll do more down the road, but not sure what the differences are. The Great Google returns that they all connect to wifi. Ok, but why one over the other?