ASP.NET 移动设备 开发

龙宜坡 2008-12-16 12:59:44
准备重做公司的网站,老总要求使用ASP.NET,而且在手机上也可以正常访问。

我以前搞过几年ASP,只用.NET开发过WinForm程序!

各位,我想知道
1.ASP.NET开发支持移动设备访问的页面需要注意什么?
2.ASP.NET开发支持移动设备除了ASP.NET本身外还需要学习什么??
2.ASP和ASP.NET都有什么异同?

请各抒己见,谢谢大家!
...全文
1096 37 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang427 2012-08-29
  • 打赏
  • 举报
回复
来学习的
Micheal_NET 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 modragonet 的回复:]
招wap程序员。广州。
联系方式:monthly.3@qq.com
[/Quote]http://shop8.5d6d.com/bbs.php
modragonet 2009-03-08
  • 打赏
  • 举报
回复
招wap程序员。广州。
联系方式:monthly.3@qq.com
龙宜坡 2009-01-09
  • 打赏
  • 举报
回复
<%@ page language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object Sender, EventArgs e)
{
CheckBrowserCaps();
}

void CheckBrowserCaps()
{
String labelText = "";
System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;
if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).IsMobileDevice)
{
labelText = "Browser is a mobile device.";
}
else
{
labelText = "Browser is not a mobile device.";
}

Label1.Text = labelText;
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Browser Capabilities Sample</title>
</head>
<body>
<form runat="server" id="form1">
<div>
Browser Capabilities:
<p/><asp:Label ID="Label1" Runat="server" />
</div>
</form>
</body>
</html>
QFord 2008-12-21
  • 打赏
  • 举报
回复
@HDNGO

今早也搞了几个例子,发现区别不大!

你能不能说的再详细点,谢谢!

尤其是怎么区分当前的客户端是手机还是电脑?如果能够区分,就可以分别开发!
-----------------------------------------------------------------
区分客户端是电脑还是手机太容易了
-----------------------------
原理就不多说了,我直接上代码,凭印象打的
HttpBrowerCompatibility bc= new HttpBrowerCompatibility ();
if( bc.IsMobileDevice)//如果是手机的话,跳转
Response.redirect("你的手机网站URL");
else
............
lhx0312 2008-12-19
  • 打赏
  • 举报
回复
我也是学习者,很想了解这方面的情况
lynn_9527 2008-12-16
  • 打赏
  • 举报
回复
高度关注@
zpcoder 2008-12-16
  • 打赏
  • 举报
回复

Asp.net 里就有 移动开发的。本 asp.net本身的.aspx 差不多,极容易上手
别样苍茫 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 goga21cn 的回复:]
@HDNGO

今早也搞了几个例子,发现区别不大!

你能不能说的再详细点,谢谢!

尤其是怎么区分当前的客户端是手机还是电脑?如果能够区分,就可以分别开发!
[/Quote]

http://www.wapzj.com/html/33/89/html/2008022123294469_2.html
这里有个例子 希望对您有所帮助。
HDNGO 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 goga21cn 的回复:]
请大家再谈谈ASP和ASP.NET的异同!分不够再加
[/Quote]

这么大的题。。。你完全可以开新帖~~
龙宜坡 2008-12-16
  • 打赏
  • 举报
回复
请大家再谈谈ASP和ASP.NET的异同!分不够再加
gzMysky 2008-12-16
  • 打赏
  • 举报
回复
做Wap主要是如何将客户的需求进行分解,如何能使用户需要了解的东西在手机上能方便进行操作显示,因为手机的显示界面有限,这是设计一个难点.还有一个是速度问题.
mengxj85 2008-12-16
  • 打赏
  • 举报
回复
关注,好帖
HDNGO 2008-12-16
  • 打赏
  • 举报
回复
1.1基本上不用你管,就是一个移动控件的运用,根本不用懂WML语法.唯一不同的,就是一个ASPX文件可以支持多个FORM,不同FORM之间可以切换~~

最后ASP.NET根据访问的设备,输出不同的内容~如果用IE访问就输出HTML,手机访问,输出WML~~

2.0的话比较纠结~~一般用User- Agent来判断,但各种模拟器哇,新款手机什么的,会有些误差~~

真想在2.0下做到区别,只能去判断是不是移动网关IP了~~各省各市都不一样,收集貌似不易,GOOD LUCK ~
龙宜坡 2008-12-16
  • 打赏
  • 举报
回复
呵呵 ,再次感谢!

再问一下:

怎么区分当前的客户端是手机还是电脑?
phper2008 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 HDNGO 的回复:]
多说两句~~打个预防针~~

WAP2.0的开发其实很简单,真的比WEB简单很多,不用JS,不用IFRAME,不用AJAX。。。

最基本的网页开发就成~~

但。。。

但。。。。。

该死的WAP的测试是极为痛苦的,NOKIA的可以摩托罗拉的却不可以~~NOKIA4.0的可以6.0的又不可以。。。

日韩版本的手机如三星、LG、夏普。。。。出的问题都千奇百怪~~

测试的时候基本上就是一个非常想死的过程。。。希望你千万撑住。。。


[/Quote]

撑住啊,哈哈!
HDNGO 2008-12-16
  • 打赏
  • 举报
回复
多说两句~~打个预防针~~

WAP2.0的开发其实很简单,真的比WEB简单很多,不用JS,不用IFRAME,不用AJAX。。。

最基本的网页开发就成~~

但。。。

但。。。。。

该死的WAP的测试是极为痛苦的,NOKIA的可以摩托罗拉的却不可以~~NOKIA4.0的可以6.0的又不可以。。。

日韩版本的手机如三星、LG、夏普。。。。出的问题都千奇百怪~~

测试的时候基本上就是一个非常想死的过程。。。希望你千万撑住。。。

龙宜坡 2008-12-16
  • 打赏
  • 举报
回复
@HDNGO

多谢!
HDNGO 2008-12-16
  • 打赏
  • 举报
回复
17,18楼是WAP 2.0设计原则,你可以凑合看看,有点了解就成~
HDNGO 2008-12-16
  • 打赏
  • 举报
回复
11 为用户操作提供信息反馈

开发人员应该对用户操作、以及错误和问题情况提供正确的反馈。例如,在用户点击链接之后,页面标题应该与链接名相同。减小导航步骤应该不增加用户的不安全感,例如,用户操作的确认页面是必要的,尽管这些页面需要再次点击。如果确认页面丢失,用户也许觉得她/他需要检查,以确认这一行为是否发生——这会导致更多次的点击。应该认用户觉得他们始终在控制着系统
如果出现问题,应提示用户下一步该怎么办。向用户解释期望输入的格式以及对必填项进行标记可阻止错误发生。



12 尽可能减少图像数量和减小图像容量大小

应该认真考虑一个XHTML页面上图像数量和容量大小。页面上的每一幅图像就产生一次独立的来回,这反过来使整个页面的显示速度减慢。因此,应该尽量减少来回的数量。还要注意的是,当每次一幅图像到达移动设备时,整个页面的内容可能需要重新排列,这会占用时间和处理器资源。因此,一个仅有几幅图像的页面也许比一个有许多更小图像的页面下载得更快。如果有可能,建议在全部服务中各个页面上使用相同的图像;那么一个特定的图像只需下载一次且能够保存到高速缓存器中。例如,如果自定义的图像被用作bullet,则在整个服务中应该使用相同的图像。
TCP/IP 连接也许会造成页面下载速度的不同,即使其数据量相同。例如,下载一个包含四个图像(每个图像大小为2 KB 的XHTML页面)要比下载一个包含八个图像(每个图像大小为1KB的页面)的速度要更快。
如果使用WAP网关,则WAP网关应与GPRS支持GGSN放得近一点。在这个例子中,“近”是指数据延迟及数据包丢失的概率。由于HTTP重传,丢失信息会产生附加延迟。WAP网关和内容服务器间的时延应尽可能的小。


13 定义图像高度和宽度属性

建议内容开发人员在标记语言中明确地指定图像的高度和宽度,以使浏览器为图像预留适当的空间。如果在图像标签中使用高度和宽度参数,那么XHTML浏览器就能在下载图像之前为图像预留空间。因此,在图像下载之前页面就能够显示出来,当然,图像在下载后也能够出现在页面上。这并不影响XHTML页面的完整下载和处理时间,但却大大改善用户的感受,因为在下载图像之前用户可浏览页面。例如:
<img src="pics/header_main_page_001.gif" width="175" height="41" />


14 谨慎使用表格

XHTML页面浏览器支持表格和嵌套表格的使用。在定义表格单元宽度,尤其是处理嵌套表格时,开发人员应谨慎行事。
CSS single-pass (固定)算法能够用于设计表格布局以便优化CPU利用率。然而,与CSS multi-pass (动态)表格布局算法不同,固定表格布局算法根据表格的第一行来确定表格的列数及其大小。因此,通过使用具有明确列宽的矩形表格可以获得最佳性能。
如果要用嵌套表格,当明确指定子表格的宽度时,开发人员应避免用子表格宽度的一定比例来指定其父表格的宽度。因为设备具有不同的屏幕尺寸,所以百分比不一定能够表示相同数量的象素。因此,建议在父表格及其嵌套表格中使用绝对宽度(像素)以确保内容能正确显示。注意必须确保表格的总宽度与所有列的宽度加上边框和单元格间隔的总和是一样的。一般而言,当表格嵌套层数增加时,页面的复杂度和显示页面所需的处理时间也会增加。为了确保能够及时显示页面,应该避免使用嵌套很深的表格。
另外,表格的边框不应该太粗,因为对于显示屏尺寸受限的设备来说,其边框宽度容易占用很多像素,从而使得实际可用的内容区变得太小。


15 考虑添加样式定义选项

开发人员可以用各种方式来定义自己的样式,例如:使用外部样式表、使用文档头部的样式元素,或通过使用指定元素的行间样式属性等。一般而言,虽然使用外部样式表无论何时都有可能把样式从标记语言中分离出来,这是一种好的方法,但应注意权衡考虑。如果样式定义包含在XHTML代码中,则XHTML页面的显示就更快,但是外部样式表的使用提供一种在整个服务中更改样式的便利方法。在整个服务中应该使用相同的外部样式表以避免把多个样式表下载到电话上。外部样式表仅需下载一次并能够保存在高速缓存器中。


16 删除代码内不必要的空白区和代码内的注释

确保代码内没有多余的空白区非常重要。虽然空白区在屏幕上是不可见的,但仍要被处理,因为浏览器要对空白区进行分析、排版、CSS分配和显示等。
XHTML代码内注释数量应尽量地少,以使代码尽可能地紧凑。


17 使用HTTP标题指示来支持页面缓存

浏览器能够把已经阅读的XHTML页面放在缓存器中。然而,内容开发人员不应假定页面缓存是默认的。如果可能,应与文档一起发送明确的缓存标题以确保页面在客户端能够缓存。另外,应将过期时间设置为至少数天,这是为了确保在跨越多个时区的情况下,内容能够缓存一段适当的时间。
浏览器不支持在Meta 标签内 (例如,使用 HTTP-EQUIV)放置缓存指示,但可用HTTP标题控制缓存。HTTP 服务器可设置"Cache-control: no-cache" HTTP标题指示,而此服务器放置了能够定义“页面不进行缓存”的页面。
缓存使用“最近最少使用”算法,这意味着最少使用的项首先被清除。建议重复使用所有XHTML页面内的图像和外部CSS,以确保它们留在缓存中,以便每次使用它们时不需要重新下载。
注:在Series 60移动设备中,默认设置是缓存内容,除非在HTTP头中有其它要求。而在Series 40移动设备中,默认设置是不缓存内容。

18 使用Unicode 2.0字符集编写XHTML的内容

诺基亚XHTML浏览器支持ASCII 和 Unicode 2.0字符集。因此,为了确保XHTML最大程度的互操作性,应该使用非拉丁语的Unicode来创建所有的XHTML内容。对于拉丁语,也可使用ASCII来创建 。有些网关和代理能把本地字符集转换成Unicode ,但并非所有的字符集都能转换。所以,保证终端接收Unicode的唯一方法就是用Unicode创建内容。有关Unicode和其他非拉丁语的更多信息,可在下列书中找到:
• CJKV Information Processing, Lunde, Ken. 1st edition. O’Reilly & Associates (December 1998)
• Unicode: A Primer, Graham, Tony. John Wiley & Sons (March 2000)

19 使用正确的MIME类型和经过验证的XHTML代码

由OMA定义的XHTML MP内容的首选MIME类型为:“application/vnd.wap.xhtml+xml”。这一类型可以用于向XHTML用户代理提供XHTML MP文档支持。另外,也可使用 “application/ xhtml+xml”。在一些 Series 60 浏览器上,必须使用MIME类型“application/vnd.wap.xhtml+xml”以确保正确的XHTML MP内容视图。MIME类型“text/html”也是可用的,但是,对于XHTML来说,这种类型应被保留,以便用于在现有的HTML用户代理上的显示功能。应注意“text/html”格式的XHTML文档将不作为XML格式来处理。例如,这意味着用户代理也许不能检测到形式上不像错误的错误。对于既想支持XHTML用户代理又想支持HTML用户代理的软件开发人员来说,可以通过让HTML文档作为“text/html”类型,XHTML文档为“application/vnd.wap.xhtml+xml”类型来使用内容协商机制。
建议所有XHTML MP内容使用*.xhtml的文件扩展名。为了避免出现任何互操作性问题和提高性能,应该对XHTML代码进行验证。例如,可用http://validator.w3.org上的 W3C验证器来验证XHTML内容。如果动态地创建XHTML内容,则生成的代码是合法的DTD XHTML MP 1.0代码。


20 使用描述性页面标题和元素标签

页面标题描述所显示的页面内容。在WML中推荐使用标题,而在XHTML中强制使用标题。标题帮助用户浏览应用软件,因为它们会提醒用户她/他处于应用软件的什么位置。一个较好的方法就是标题用应该用服务的名称开头并且应该很短。用户以前选择的栏目将决定标题文本。例如,标题“书签”告诉用户显示屏包含了应用软件的一个书签列表,以及前一次选择的选项项目是“书签”。
标题文本应该使用比例字体,如果标题文本太长,文本会被自动删减。通常,删减标题的效果要比缩写更好,因为用户可能会对不熟悉的缩写困惑不解。
虽然建议元素标签使用缩略词,但不应该使用目标用户群不大熟悉的首字母缩写词。相同的标签应该总是用于相同的操作,尤其是诸如Delete、Remove、 Erase、Clear和 Destroy的功能标记。


21 使用多段/混合方式更快下载XHTML页面

多段方式可以用来请求和传送单一多段消息中的XHTML页面内容,它可以取代目前的多个独立页面对象请求。这使得页面下载的速度更快。例如,如果一个XHTML页面包含文本、7幅图片和一个至外部样式表的链接,则所有内容可以通过一次请求获得而无需提供9次单独的请求。为了使用这一功能,Web服务器和浏览器都要支持多段方式。内容开发人员必须考虑到将页面中的所有可显示内容编码为多段消息。
如需查明哪款诺基亚手机支持multipart/mixed MIME类型,参阅www.forum.nokia.com/documents中的文档Browser MIME Types In Nokia GSM Phones。


22 进行可用性测试

对新的应用软件进行可用性测试总是正确的选择。没有参与设计和开发应用软件的人往往会注意到潜在 的可用性问题,这些问题对于那些非常了解设计的人常常不是显而易见的。可用性测试应该在开发过程中尽可能早地进行。这样,在开发时间表内能够完成根据测试结果需要进行任何必要的更改。应该邀请能够代表未来最终用户的测试人员进行测试。如果日程安排不允许进行大量测试,至少应进行小规模测试。
加载更多回复(17)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧