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

时间:2008-12-28 15:37:39

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

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

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

3 个答案:

答案 0 :(得分:12)

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

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

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

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

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

手机有特殊的标记标准。 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 Mobile Controls

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

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

了解详情here on the official web site

答案 1 :(得分:3)

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

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

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

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

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

答案 2 :(得分:1)

此处提供更多信息:windows-mobile-development-where-to-begin