I recommend you to buy your domain and hosting in different place. Why? If you ever get mad at your web host and decide to move your site, you'll also probably want to transfer your domain if it's registered with the old host. Domain transfers can be annoying, time-consuming, and confusing. But if you've registered the domain elsewhere, you don't have to do anything except update your DNS settings to point to the new host.
For hosting, asphostportal is good for your hosting provider. They support linux and windows platform, and have 12 data center in 12 different cities that you can choose to suit with your location. For your domain, namecheap seems good domain registrar.