People here like the proper full setup, not the compromised space-saver solutions. We go through this a lot. A lot of the time I have recommended people away from these ideas, the person has replied "well I really want this to work because I don't want big speakers all around my room." So in most cases they have already made up their mind. When I read your post I thought you are already sold on Sonos so what's the point of giving you my opinion? Not trying to be rude, that's just what I was thinking. So don't buy a sound bar, not even a Sonos. I have had the Yamaha YSP-2201 and was not impressed. I went to a Bose store to listen to theirs, I thought mine was better actually, and theirs was in their showroom (mine was just in my living room with terrible acoustics). I listened to the Sonos and wasn't impressed. The only thing I liked from Sonos was their audio networking solution, which can be done on any system if you buy their Sonos Connect. I don't need it, I have all my songs uncompressed in iTunes and I am happy to stream that from the iPad or computer through Apple TV into the receiver.
When I looked for better systems I did my research and ended up with a Yamaha Aventage RX-A820 receiver, which I got B-stock (can't even tell, but I saved a crap load of money) and I started out with just two Ascend bookshelf speakers (CBM-170SE). With just two channels, it sounded way better than any Bose system, Sonos, and any soundbar. I later added a CMT-340SE center speaker. Wow, the power, soundstage, neutrality, and wide frequency response is awesome. A friend commented about the huge amount of bass, I don't even have a sub yet). My wife likes the sound so much better that she doesn't regret giving up the space to get it. I am yet to add the two CMT-340SE and the Rythmik LV12R sub, but everyone here who has the same setup says how great it is, and I am already loving my incomplete setup so much more than any system I have had in the past.
Anyway, I hope this helps. If you decide to try a soundbar anyway, make sure you get a 30-day return policy.