Pretend i have an existing web-site, e.g.:
www.stackoverflow.com
i now want to expose a mobile version of this web-site:
m.stackoverflow.com
IIS, with its host-header name resolution, would normally require two web-sites to be created:
Except now i have two web-sites in IIS. This means i have to duplicate code/files between them. i don't need to (nor do i want to) duplicate all the "model" and "controller" code between two web-sites. i would much rather have one web-site that exposes a mobile version.
i could have the default
page in m.stackoverflow.com
simply perform a redirect to a mobile landing page on the "real" web-site:
m.stackoverflow.com\default.asp
:
<% Response.Redirect "www.stackoverflow.com/mobile" %>
Then the client will end up at (for example) www.stackoverflow.com/mobile/default.aspx
.
This isn't what i want. i want it to appear to the browser that they are visiting m.stackoverflow.com
.
So what i could do in IIS is have two host-header names for one IIS web-site:
and inspect the http-request HOST
header:
GET https://stackoverflow.com/questions/ViewQuestion.aspx?qid=3623844
Host: stackoverflow.com
verses
GET https://stackoverflow.com/questions/ViewQuestion.aspx?qid=3623844
Host: m.stackoverflow.com
Except now my all my web-site pages must first inspect Host
attribute, and then change rendering behavior depending on which it finds. This works somewhat well in classic ASP:
ViewQuestion.asp
<% Dim mobileVersion
...
If MobileVersion Then
%>
<html>
...
</html>
<% Else %>
<html>
...
</html>
<% End If %>
But making dual view's in one page is very painful. i would prefer to have a ViewQuestion
view, that is dedicated to showing a regular or mobile view.
i also know that i can't use the media=handheld
media type.
media=handheld
media typeSo what is the accepted combination of source-code and IIS configuration that best supports mobile versions of a web-site?
Edit One: Removed title reference to MVC. Don't want people to assume the use of some particular MVC framework, since i'm not using any MVC framework. i'm using ASP/ASP.net.
In mvc you can just submit mobile views by overriding the view engine. We created an iphone version of our site in about 3 days.
http://www.hanselman.com/blog/ABetterASPNETMVCMobileDeviceCapabilitiesViewEngine.aspx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With