用于移动设备的Web – ASP.NET的最佳实践

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

更新(2010年2月)
任何使用Windows Mobile 7的新闻?

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

如果是这种情况, 你可以在这里停止阅读。

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

以下是一些内容的链接(不是特定于ASP.NET的),这有助于全面了解:

  • 移动网络最佳实践1.0(W3C)
  • 移动Web开发人员指南(dotMobi)

然而,正如我已经提到的,它们的主要限制是屏幕比普通电脑更小。 许多手机不支持JavaScript,但有些手机甚至不显示图像。

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

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

       

You selected: $(name)

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

您可以在标准Web浏览器中测试在ASP.NET中开发的页面,但它无法正确显示您开发的内容。 有一些模拟器可用于此问题,它模拟台式计算机上的手机。 有一篇Microsoft支持文章介绍了可以下载它们的位置。

ASP.NET移动控件

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

ASP.NET移动控件在处理不同的屏幕大小,方向和设备function时呈现相应的标记(HTML 3.2,WML 1.1,cHTML,XHTML)。

在官方网站上了解更多信息 。

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

我知道它不会对您产生影响,但如果您使用任何其他协议(如流媒体或任何基于UDP的协议),请将最大数据包大小设置为至少1300字节或更低。 仅仅因为移动设备在网络中移动的方式,增加了额外的标头信息。 使用TCP / IP,我们使用MSS钳位来防止大数据包问题,但这不能应用于任何UDP传输或任何使用身份validation标头的安全协议。 如果您要定位的移动设备是由RIM提供的,则可以完全忽略此点。

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

我确信还有更多,你应该记住的最重要的事情是,移动设备的IP连接比打开网络浏览器的人要复杂得多。 这种运输可能非常棘手,所以如果你尝试做一些非常有趣的事情,即使现在有效,也可能并不总是有效。 最后一个快速点,延迟和数据包丢失可能会大幅波动,所以如果你实时做任何事情,你的延迟可能会达到200 + ms,我看到数据包丢失率达到20-30%的水平倍。

祝你好运,如果你有任何具体问题,一定要问他们。

更多信息: windows-mobile-development-where-to-begin