用.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形式的应用程 序,运行在高端的移动终端设备).开发者们都 ...
随机推荐
- 【NTT】loj#6261. 一个人的高三楼
去年看过t老师写这题博客:以为是道神仙题 题目大意 求一个数列的$k$次前缀和.$n\le 10^5$. 题目分析 [计数]cf223C. Partial Sums 加强版.注意到最后的式子是$f_i ...
- Mysql 查询出某列字段 被包含于 条件数据中
我们通常是使用 某条件 是否包含于 某列中 ,简单点 就是:select * from 表名 where 字段名 like '%条件数据%'; 现在说下 某列 被包含于 条件数据中 接下 ...
- 为啥国内互联网公司都用centos而不是ubuntu?
一直以来都很好奇ubuntu和centos有啥区别,上学时接触的都是ubuntu,自己每次装virtual box的时候都会下个ubuntu,但是公司的服务器上装的都是centos,今天查了下知乎网友 ...
- pycharm clion rider 注册
JetBrains 公司出品的pycharm clion rider 专业版本都需要注册才能运行,这里有个免费注册方法: JetBrains授权服务器2017.10.7授权方法:激活时选择Licens ...
- 第一篇:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continuation byte
需求:python如何实现普通用户登录服务器后切换到root用户再执行命令 解决参考: 代码: def verification_ssh(host,username,password,port,roo ...
- ecshop里操作session与cookie
目录 操作session 操作cookie html模板里提交保存用用户名 php里 js里保存cookie js里读取cookie html模板里smart的保留变量 html模板里取session ...
- IntentService和Service执行子线程对比
1.为何要用子程序 服务是在主线程中执行的,直接在服务中执行耗时操作明显不可取,于是安卓官方增加了IntentService类来方便使用 在Service中执行子程序代码如下 @Override pu ...
- datagrid的修改和删除功能的实现
1.修改 双击,进入一行的编辑状态的功能的实现 2.删除 3.扩展easyui的datagrid,添加动态增加或删除Editor的方法 (1)背景要求: 对于某一列,比如密码,动态增加时候,是可以编辑 ...
- laravel5.2总结--文件上传
1 配置 文件系统的配置文件在 config/filesystems.php 文件中,此处我们新建一个uploads本地磁盘空间用于存储上传的文件,具体配置项及说明如下: <?php retur ...
- Python框架之Django学习笔记(八)
模板继承 到目前为止,我们的模板范例都只是些零星的 HTML 片段,但在实际应用中,你将用 Django 模板系统来创建整个 HTML 页面. 这就带来一个常见的 Web 开发问题: 在整个网站中,如 ...