【问题标题】:Web for mobile devices - best practices for ASP.NET [closed]移动设备的 Web - ASP.NET 的最佳实践 [关闭]
【发布时间】:2008-12-28 15:37:38
【问题描述】:

开始为移动设备(任何手机)构建网络应用程序。
使用 ASP.NET 3.5/ASP.NET 4.0 和 C# 的最佳方法是什么?

更新(2010 年 2 月)
有使用 windows mobile 7 的消息吗?

【问题讨论】:

标签: c# mobile windows-phone-7 windows-phone


【解决方案1】:

这取决于您是否真的要支持每部手机,还是只支持高端或新手机,例如在呈现网页时没有太多限制的 iPhone。如果您可以要求真正的HTML 渲染、Javascript 和cookie 支持在手机上作为要求,那么真正的限制是屏幕的有限尺寸。您应该在 ASP.NET 中进行“正常”的 Web 开发,注意页面的大小。

如果是这样,你可以在这里停止阅读。

如果您真的想支持每一部手机,尤其是旧手机,您应该知道有不同类型的手机。其中许多具有显示网页的限制和约束。其中一些可以使用 JavaScript,但其中许多不能。其中一些可以显示 HTML 内容,但许多其他不能。他们必须依靠“无线标记语言”标准来访问网络。因此,要构建一个支持所有这些不同设备的网站并不容易。

这里有一些一般内容的链接(不是特定于 ASP.NET 的),可以帮助您了解整体情况:

然而,正如我已经提到的,它们的主要限制是屏幕比普通 PC 小。而且很多手机不支持JavaScript、Cookies,有的甚至不显示图片。

手机有特殊的标记标准。 WML 页面 是例如广泛采用的手机标准。 WML 代表基于 XML 的“无线标记语言”。你可以找到WML的描述和参考here on w3schools.com

下面的代码显示了一个示例 WML 页面:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
   "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>
   <card id="card1" title="Stackoverflow">
      <do type="accept" label="Menu">
         <go href="#card2"/>
      </do>
      <p>
         <select name="name"> 
            <option value="Questions">Questions</option>
            <option value="MyAccount">My account</option>
            <option value="FAQ">FAQ</option>
         </select>
      </p>
   </card>
   <card id="card2" title="Menu">
      <p>
           You selected: $(name)
      </p>
   </card>
</wml>

好消息是,ASP.NET 自动呈现 WML(和其他移动标记标准)内容。您不必自己编写 WML 文件。内置机制检测 Web 请求的设备(手机)类型。但是,对于某些(较新的)设备,ASP.NET 上的移动设备检测无法正常工作。查看WURFL,这是一个 XML 配置文件,其中包含有关许多移动设备的功能和特性的信息。

您可以在标准的 Web 浏览器中测试您在 ASP.NET 中开发的页面,但它不会给出您所开发内容的正确图片。有一些模拟器可以解决这个问题,它们可以在您的台式计算机上模拟手机。有一个Microsoft support article 说明您可以在哪里下载它们。

ASP.NET 移动控件

ASP.NET 移动控件(以前称为“Microsoft 移动 Internet 工具包”)扩展了 .NET Framework 和 Visual Studio,通过使 ASP.NET 能够向各种移动设备提供标记来构建移动 Web 应用程序。

ASP.NET 移动控件在处理不同的屏幕尺寸、方向和设备功能时呈现适当的标记(HTML 3.2、WML 1.1、cHTML、XHTML)。

了解更多here on the official web site

【讨论】:

  • WML 是 5 年前要走的路,因为没有设备支持完整的浏览器功能,我用 WML 为诺基亚 7110(Matrix 电影诺基亚手机)做了几个应用程序,但今天,一个简单的网页应该做这个伎俩。
  • 就像我在介绍中说的:如果您也想支持旧手机..
【解决方案2】:

自从我在加拿大从事无线网络工作以来,我应该提到几件事。尝试将任何图像保持小(甚至不存在)以增加加载时间并减少数据费用。在我们的网络上,如果用户未订阅计划,我们的网络将收取 15 美元/mb。手机尝试下载的一些未经优化的图像很容易让用户付出代价,而且这些大图像无论如何都不会好看。

我知道这不会影响您,但如果您使用任何其他协议,例如流式传输或任何基于 UDP 的协议,请将最大数据包大小设置为至少 1300 字节或更低。仅仅因为移动设备在网络中移动时的工作方式,额外的标头信息就会被添加。对于 TCP/IP,我们使用 MSS-clamping 来防止大数据包问题,但这不能应用于任何 UDP 传输,或任何使用身份验证标头的安全协议。如果您定位的手机是 RIM 提供的,则可以完全忽略这一点。

某些手机在与您的服务器通信时可能会使用 WAP 代理,如果是这种情况,请尽量避免使用任何需要保持活动 TCP/IP 的连接。一些代理被设置为不允许任何保持活动会话通过它们,即使我相信大多数新的都很好。

我敢肯定还有更多,最重要的是您应该记住,与移动设备的 IP 连接比打开网络浏览器的人要复杂得多。这种传输可能非常棘手,所以如果你尝试做一些真正花哨的事情,即使它现在可以工作,它也可能并不总是有效。最后一点,延迟和数据包丢失可能会大幅波动,因此如果您实时执行任何操作,延迟可能会达到 200 毫秒以上,而且我已经看到数据包丢失率短暂飙升至 20-30% 的水平次。

祝你好运,如果您有任何具体问题,请务必提出。

【讨论】:

    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2021-10-07
      • 1970-01-01
      相关资源
      最近更新 更多