1. Display different pages for different devices.
- Can be problematic when needing to make changes and/or when the number of devices you are supporting increases.
2. Display the same page(s) with different contents when viewed on a mobile device.
- Can be awkward to manage different versions of content. Especially if that means having different size versions of lots of images.
3. Have the same page(s)/view(s) for mobile but use different master pages.
- Obviously only an ASP.NET solution.
4. Use the same page(s), but with different CSS.
- Normally doesn't allow adequate ability to support the difference in context which should usually be applied to a mobile version.
5. Force redirection to different (sub)domain with mobile specific pages.
- Essentially requires maintaining multiple sites and can dilute brand and make SEO harder.
6. Do nothing - and fail
- The site may just not work at all on the mobile browser.
7. Do nothing - and have a poor quality site
- Some things may work but others not. This will very likely lead to frustrated visitors.
8. Rely on network transcoders or transcoding browsers
- Good luck with that. Do you really want to pass up control of what actually gets displayed to the people visiting your site?
9. Don't display anything to mobile users.
- You may have a reason for this but it's probably a bad idea to automatically exclude more than half the people in the world with access to the web.
10. Build a site which works on all platforms
- Beware attempting to implement this ideal and ending up only serving the lowest common denominator
11. Use automatic mobilising tools (instant mobiliser, mobify.me, etc.)
- Could be a good, quick and easy way to get a good mobile version of a site. Possibly as a temporary measure until mobile visitors require and justify something more.
What do I do/use?
A combination of some of the above. Varying on the requirements of a specific project.
If you've built Windows Phone or Windows Store apps you can cross-promote them with AdDuplex to get more users.