【问题标题】:What's the best (easy&efficient) solution for asp.net developers to develop a mobile version of their existing website什么是 asp.net 开发人员开发现有网站的移动版本的最佳(简单高效)解决方案
【发布时间】:2011-02-23 20:42:54
【问题描述】:

我希望问题是自我描述的。

我目前正在开发一个在数据层使用 MS SqlServer 数据库的 asp.net 网站。

我在想我有哪些选择来获得移动版本(最重要的是支持 BlackBerry 和 iPhone,希望支持所有移动设备!),当在黑莓上使用时,我希望能够让它在 BB 的背景下运行。

我在考虑 asp.net 移动控件,但 projects page 似乎是一个死/未更新的框架,并且不确定是否仅支持 windows mobile 或什么!

编辑 感谢您的问题,但它们都仅从一个问题中解决了我的问题.. 我的意思是这将如何让我使用 BlackBerry 应用程序选项,例如让我的网站在设备后台运行或向我的用户发送通知!

【问题讨论】:

    标签: c# blackberry webforms smartphone


    【解决方案1】:

    这主要是造型的产物。如今,移动网站就像普通网站一样工作,只是您想使用在移动设备上运行良好的 CSS 和图像。您可以使用51 Degrees 之类的产品,它会为您提供有关所连接设备类型的大量信息,因此您可以根据需要根据分辨率或任何其他内容自定义输出。

    您还可以尝试阅读有关移动设计的书籍,例如 Cameron Moll 的《移动网页设计》。

    【讨论】:

    • +1 dahrnsbrak 我喜欢你的回答,但你对我的问题有什么建议吗? 请检查我的编辑
    • 这听起来不像是一个网站,听起来你想创建一个黑莓应用程序。我从来没有听说过将网站作为黑莓的背景图片(如果你的意思是这样的话)运行,并且没有办法以可靠的方式将消息从黑莓浏览器传递到操作系统。
    • 这不是我的意思,通过在 BB 的后台运行 Web 应用程序,我的意思是在操作系统本身的后台运行它.. 就像你在系统托盘或窗口中隐藏任何应用程序时一样系统的背景..和网站向BB设备发送某种通知,但我不确定如何!无论如何,我想我可能需要一个专门的 BB 应用程序来获取此设备提供的功能,以及另一个用于其他移动类型的应用程序。
    【解决方案2】:

    如果您使用ASP.Net MVC 创建应用并创建常规视图和移动视图。您也可以使用jQuery Mobile 来帮助处理移动视图。

    This question 介绍了如何根据设备类型更改视图,

    如果您使用 WebForms,您可以根据浏览器更改您的 MasterPage,从而使您能够更轻松地切换到移动版本:

    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (Request.Browser.IsMobileDevice)
            MasterPageFile = "~/Mobile.Master";
    }
    

    或者使用 Global.asax 来完全重定向移动请求:

    void Session_Start(object sender, EventArgs e)
    {
        // Redirect mobile users to the mobile home page
        HttpRequest httpRequest = HttpContext.Current.Request;
        if (httpRequest.Browser.IsMobileDevice)
        {
            string path = httpRequest.Url.PathAndQuery;
            bool isOnMobilePage = path.StartsWith("/Mobile/", 
                                   StringComparison.OrdinalIgnoreCase);
            if (!isOnMobilePage)
            {
                string redirectTo = "~/Mobile/";
    
                // Could also add special logic to redirect from certain 
                // recognized pages to the mobile equivalents of those 
                // pages (where they exist). For example,
                // if (HttpContext.Current.Handler is UserRegistration)
                //     redirectTo = "~/Mobile/Register.aspx";
    
                HttpContext.Current.Response.Redirect(redirectTo);
            }
        }
    }
    

    无论哪种方式阅读这篇文章:http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application

    【讨论】:

    • 感谢您让我知道使用 MVC 是可能的,但是 WebForms 怎么样?
    • 多母版页和重定向是两种方便的方法,但这是否意味着我必须为每个设备分辨率创建一个专用母版页并检测设备型号或浏览器并重定向它们!??跨度>
    • 理想情况下,您只开发 1 种或 2 种不同的移动分辨率。如果您做的不止这些,您可能需要考虑构建原生应用程序。
    【解决方案3】:

    你真的不需要做任何特别的事情;只需创建一个针对 320 像素宽度视口进行优化的替代样式表。您可以使用 LINK 元素的“媒体”属性通过单独的样式表提供此样式表,或者您可以在您的主样式表中使用 CSS 媒体查询。一些相关信息:

    http://googlewebmastercentral.blogspot.com/2011/02/making-websites-mobile-friendly.html

    http://www.css3.info/preview/media-queries/

    【讨论】:

      【解决方案4】:

      如果您使用的是 asp.net MVC,请务必查看 Web Application Toolkit for Mobile Web Applications

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多