用.net开发wap
原文发布时间为:2010-08-19 —— 来源于本人的百度文章 [由搬家工具导入]
.NET 模板:http://download.csdn.net/source/2631001
WAP应用程序结构
首先你拥有一个Web应用,那么集成WAP服务就相当容易。
你不必为原来的业务逻辑进行重新构建,而且如果你Web本身的应用就有分层的,那么扩展到WAP是很方便的。
对于我们目前的应用,我们可以简单的认为是WEB应用的Mobile迁移。更多的是在UI\UE上的调整。
WAP采用什么标准
1.XHTML Mobile 1.0(WAP2.0)
Google Mobile
wap.taobao.com
3g.sina.com.cn
2.WML1.1
3g.qq.com
wap.kong.net
3g.sina.com.cn
对比了一些网站WAP开发。google的Mobile应用都是基于XHTML Mobile1.0,也的确做的很优秀。其他很多WAP网站,都是支持WML1.1 和 XHTML Mobile 双标准的。
采用.NET的封装控件,还是自定义WML标签
.NET 中封装了一套移动开发组件。很遗憾在VS2008找不到Mobile开发模板(但支持Mobile开发)。.NET中的移动开发控件,会根据相应 的设备显示不同解析标准。比如发现是PIE访问,.NET自动返回的是XHTML Mobile1.0的标签,而如果是其他的(根据具体设置)可以返回WML的标签。这样的好处是自动根据设备的支持显示对应的标签。从开发的效率和容易度 来说,这样是最方便的。但从WAP站点的适应需求上,可控性自然就下降了。所以最后还是选择了传统的输出WML的方式进行处理。当然.NET也可以采用强 制输出WML的移动方式。请参考这篇文章:
asp.net强制输出WML
http://www.aspxclub.com/ContentView/4194/index.aspx
WAP的Session问题
Session 问题主要原因还是因为Cookie问题,如果一台设备不支持Cookie那么其实Session也是无法使用的。因为Server端最终还 是需要知道,客户端到底请求的是那一个SessionID。从目前的Web程序中,我们也可以看到,这个SessionID,其实就存储在Cookie 中,ASP.NET2.0默认存储的是ASP.NET_SessionId。这里要注意的是,如果用户没有使用过Session,在使用 SessionID时,其值是变化的。每刷新一次页面它就变化一次。
.NET开发中MS考虑到客户端不支持Cookie的方式,MS通过在URL传递一个24位的值,来保存这个SessonID。
.NET中提供一种更加友好的URL方式。“AutoDetect”,ASP.NET2.0中会自动判断客户端是否支持Cookie,如果不支持,将在URL中记录SessionID。经过这样处理,SESSION问题就得到了很好的解决。
用户登录认证问题
手机如何让用户默认登陆。仿效了目前很多WAP网站都在采用的token方式。产生一个令牌,通过这个令牌进行登录。当然用户可以选择退出来清空这个令牌程序。
WAP计数统计
手机对Javascript支持不够,能采用的方式还是通过img的方式。虽然“图片显示”可能被手机禁用
期待google支持Mobile。
目前个人感觉最好的还是Yahoo统计
51.la因为有图片统计,所以也可以使用
WAP的编码问题
1:程序开发的编码设置有关。包括WebConfig的设置、PageCode等都要统一编码方式
2:手机客户端的编码有关。只能通过服务端对特定的编码,进行解码来获得。
具体可以参考我的下面的链接
WAP编码问题一?
WAP编码问题二
IP、手机号判断问题
手机号码被服务商屏蔽,所以大家就不要再Google、baidu 如何在WAP下获取手机号码了。
因为WAP Getaway的问题,你无法确定IP是否可以用了做某些判断,比如城市。我们目前根据测试的结果,IP应该可以用来作为城市判断。
WAP用户习惯
1:翻页问题(下一页、上一页的简单换位给用户带来方便)
2:Title问题(方便用户收藏,Mobile你不能让用户不断的点击和搜索)
3:URL保存状态(正因为Cookie的失效,如果你希望用户在下次还能进入同一个页面,请多关注URL)
用.net开发wap的更多相关文章
- web app开发技巧总结 (share)
(转自http://hi.baidu.com/kuntakinte/item/ca92d6e5edae9fc0bbf37d08) 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联 ...
- webapp开发需要注意的浏览器内核知识
Web App:1.开发成本较低使用web开发技术就可以轻松的完成web app的开发2.升级较简单升级不需要通知用户,在服务端更新文件即可,用户完全没有感觉3.维护比较轻松和一般的web一样,维护比 ...
- webApp前端开发技巧总结
自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备.我相信各位童鞋应该和我一个样子, ...
- WEBAPP开发技巧总结
自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备). 开发者们都知道在高端智能手机 ...
- 移动平台WEB前端开发技巧汇总
原文 :http://uecss.com/mobile-platform-web-front-end-development-skills-summary.html 开发者们都知道在高端智能手机系统中 ...
- 移动平台3G手机网站前端开发布局技巧
本文转载至:移动平台3G手机网站前端开发布局技巧汇总 - 前端开发-武方博 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相 关的文章,您或许 ...
- 移动平台3G手机网站前端开发布局技巧汇总
移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博 发布:2011-05-10 09:11 分类:移动开发 阅读:120,618 views 7条评论 您或许正在 ...
- 移动平台前端开发总结(针对iphone,Android等手机)
移动平台前端开发是指针对高端智能手机(如Iphone.Android)做站点适配也就是WebApp,并非是针对普通手机开发Wap 2.0,所以在阅读本篇文章以前,你需要对webkit内核的浏览器有一定 ...
- WebApp开发技巧大全 看了就明白了
[转载]阅读原文 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程 序,运行在高端的移动终端设备).开发者们都 ...
随机推荐
- 基于flash-marker.js 的地图标注闪烁代码调试
修改网上流传的flash-marker.js (function (global, factory) { typeof exports === 'object' && typeof m ...
- CentOS 7 bonding模式双网卡绑定
1.1 查看系统内核是否支持bonding [root@cobbler-node1 ~]# cat /boot/config-3.10.0-693.el7.x86_64 | grep -i bo ...
- go包的理解
结论: import时指定的字符串,是相对于$GOPATH的目录路径,告诉了go,要去加载这个目录下所有的包文件(不包括子目录中的文件) 一个目录中所有的源文件(不包括子目录)代表了单独的一个包,这些 ...
- API Star:一个 Python 3 的 API 框架
为了在 Python 中快速构建 API,我主要依赖于 Flask.最近我遇到了一个名为 "API Star" 的基于 Python 3 的新 API 框架.由于几个原因,我对它很 ...
- 关于Linux系统下zookeeper集群的搭建
1.集群概述 1.1什么是集群 1.1.1集群概念 集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系 ...
- Ubuntu samba 安装与配置 实现windows和虚拟机中的Ubuntu共享文件
2. 安装sumba服务 sudo apt-get install samba samba-common 这里出现了小问题, Ubuntu上安装samba不能安装的问题,“下列的软件包有不能满足 ...
- 安装 ubuntu 后,使用 sed 更换国内源
cd /etc/aptsed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list也可以使用 1 ...
- [BZOJ3625][CF438E]小朋友和二叉树
题面 Description 我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树. 考虑一个含有\(n\)个互异正整数的序列\(c_1,c_2,\ldots,c_n\).如果一棵带点权的有根二叉树满足其 ...
- sql中over的用法
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用.其参数:over(partition by columnname1 order by c ...
- day18 js 正则,UI框架,Django helloworld 以及完整工作流程
JS正则: text 判断字符串是否符合规定的正则表达式 exec 获取匹配的数据 默认情况下: 只要能匹配到就返回true 否则返回false 只匹配数字: 所以J ...