WebService的列车时刻表.docx
- 文档编号:5015993
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:14
- 大小:1.20MB
WebService的列车时刻表.docx
《WebService的列车时刻表.docx》由会员分享,可在线阅读,更多相关《WebService的列车时刻表.docx(14页珍藏版)》请在冰点文库上搜索。
WebService的列车时刻表
名称:
ASP.NET应用开发
项目题目:
WebService列车时刻系统
专业班级:
年 级:
姓 名:
学 名:
序 号:
-----------------------------------------------------------------------资源收集自梁高崇四年档
1概述
1.1WebService服务应用
WebService是一种新应用程序的分支,是构建应用程序的普通模型能在支持Iternent网络通讯的操作系统上实施。
WebService也很容易部署,因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。
WebService减少了应用接口的花费。
WebService为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
1.2项目开发环境及工具
开发环境:
Microsoft.NETFramework4.5、Windows7。
开发工具:
MicrosoftVisualStudio2013、Notepad++(编辑Html、CSS)、Chrome浏览器
开发语言:
C#
注意事项:
本列车时刻系统引用的是互联网上的第三方Web服务,因此使用本系统时务必保证本地机器的网络连接通畅,以免系统正常功能受到影响。
2.设计的任务和要求
2.1设计任务
本项目通过调用已有的WebService可以较方便地查询全国范围的列车时刻表相关信息,获得的列车主要信息有,车次、始发站、终点站、发车时间、到站时间、运行时间、总里程。
2.2设计要求
1.程序要求能够正常运行,并完成所要求的基本功能;
2.前台页面布局采取DIV/CSS方式;
3.进行必要的系统测试;
4.编写规范的设计说明书;
2.3设计流程和步骤
2.3.1程序设计主要流程
2.3.2添加引用Web服务
①选中项目右击
②添加引用服务
③打开高级选项
④选中Web服务引用
⑤在URL栏中输入并转到:
⑥默认引用名.webxml.www,点击添加引用,此时成功添加Web服务。
3.系统详细设计
3.1前台布局设计
控件主要有:
TextBox(始发站)TextBox(终点站)
Button(查询按钮)GridView(显示结果)
主页DIV布局:
前台CSS样式文件Style.css放在主题目录下,列车时刻表显示主页面为index.aspx,项目的目录文件关系详情如下图所示:
3.2后台代码设计
1.点击查询按钮的响应事件:
protectedvoidbtnSearch_Click(objectsender,EventArgse)
{
//获取起始站TextBox的文本
stringstart=this.txtStart.Text.Substring(this.txtStart.Text.LastIndexOf("_")+1);
//获取终点站TextBox的文本
stringend=this.txtEnd.Text.Substring(this.txtEnd.Text.LastIndexOf("_")+1);
//实例化Web服务对象
TrainTimeWebServicet=newTrainTimeWebService();
//通过调用Web服务方法获取列车信息
DataSetds=t.getStationAndTimeByStationName(start,end,"");
this.pnlTrain.Visible=true;
this.gdvTrain.DataSource=ds;//显示车次数据
//gdvTrain.DataKeyNames=newString[]{"TrainCode"};
this.gdvTrain.DataBind();
}
2.GridView分页显示数据的PageIndexChanging事件
protectedvoidgdvTrain_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
gdvTrain.PageIndex=e.NewPageIndex;//获取当前分页索引值
gdvTrain.DataBind();//重新绑定数据
}
3.3系统优化设计
在程序调试过程中已经完成基本功能,但是发现点击查询按钮时整个页
整个页面更新发生闪跳现象,这种情况下用户体验极不友好,经过参考相关资
料,了解到这样的问题可以通过AJAX(AsynchronousJavaScriptandXML)
异步刷新技术解决。
1.使用ScriptManager控件和UpdatePanel控件。
在aspx页面中放入控件:
ScriptManagerID="ScriptManager1"runat="server">
ScriptManager>
UpdatePanelID="UpdatePanel1"runat="server"> PanelID="pnlTrain"runat="server"Visible="false"> GridViewID="gdvTrain"runat="server"AutoGenerateColumns="False"CssClass="datable"AllowPaging="True"OnPageIndexChanging="gdvTrain_PageIndexChanging"> GridView> Panel> AsyncPostBackTriggerControlID="btnSearch"/> UpdatePanel> 之后点击查询按钮页面实现了局部更新数据。 2.使用AJAXControlToolkit工具获取AJAX下拉站点数据。 AJAXControlToolkit工具包是微软免费提供的一个资源提供了多种ASP.NETAJAX控件,使用方便并且能创建各种丰富的AJAX功能,所以在此WebService列车时刻表的应用中也尝试使用AJAXControlToolkit工具。 前台控件使用的控件: AutoCompleteExtenderID="AutoCompleteExtender1"runat="server" ServiceMethod="GetCompletionList"UseContextKey="True" TargetControlID="txtStart"MinimumPrefixLength="1"> AutoCompleteExtender> LabelID="Label2"runat="server"Text="终点站"CssClass="L2"> Label> TextBoxID="txtEnd"runat="server"> TextBox> AutoCompleteExtender ID="AutoCompleteExtender2"runat="server"ServiceMethod="GetCompletionList2" UseContextKey="True"TargetControlID="txtEnd"MinimumPrefixLength="1"> AutoCompleteExtender> 后台对应的代码: [System.Web.Services.WebMethodAttribute(),System.Web.Script.Services. ScriptMethodAttribute()] publicstaticstring[]GetCompletionList(stringprefixText,intcount,stringcontextKey) { RegexregEx=newRegex(string.Format("{0}[\\w]*[_][\\w]*",prefixText),RegexOptions.IgnoreCase|RegexOptions.Multiline|RegexOptions.IgnorePatternWhitespace); RegexregEx1=newRegex(string.Format("[\\w]*[_]{0}[\\w]*",prefixText),RegexOptions.IgnoreCase|RegexOptions.MultilineRegexOptions.IgnorePatternWhitespace); varstas=fromsinstationswhere(regEx.IsMatch(s)||regEx1.IsMatch(s))selects; returnstas.ToArray } AJAXControlToolkit使用效果图: 4系统存在的问题 本列车表时刻表查询系统使用的是第三方提供的免费Web服务,所以存在一些限制,在 一天内查询超过限制次数就会提示“免费用户24小时内访问超过规定数量”。 因此,如果是商业用途,可以向WebService服务方购买商业ID,以便获得更多更稳定 的Web服务。 8.总结 以前常听别人说ASP.NET开发主要是拖控件的,能学到的开发技术不是很深,所以,刚开始也不太喜欢ASP.NET,但真正使用它之后发现开发过程轻松有趣,各种各样的控件可以实现快速开发,如果只是局限于拖控件那么确实对技术增长没有帮助,但是ASP.NET也是需要后台的复杂的实现代码,如果愿意去专研也是会学到很多技术的,只能说ASP.NET就像一个非常出色的工具,它使懒惰的人更懒惰,让肯于实干的人得心应手。 此次实践让我感受颇多: 做ASP.NET开发其实是一件很有趣的事情。 虽然是一个小型的查询系统,但是也帮助自己简单了解WebService的使用流程,以及在ASP.NET开发中AJAX技术的应用。 同时我体会到: 熟练的编程能力,对知识运用的及其创新和团队的合作精神是做好一个系统的基础。 9.主要参考文献 1.刘乃琦郭小芳.ASP.NET应用开发与实践.人民邮电出版社. 2.杨树林,胡洁萍.ASP.NET程序设计案例教程.人民邮电出版社.2011 3.奚江华著,武海军改编.圣殿祭司的ASP.NET4.0专家技术手册.人民邮电出版社.2013 最终效果图: 设计过程截图: 备注: 如果自己有把握也可以选择周围的实际问题加以解决,比如你居住的小区物业管理系统、学校考试报名系统等。 1、网站论坛管理系统: 论坛主页面显示论坛首页信息、可以搜索对应的主题、游客可以浏览论坛、注册等功能;注册用户可以登录、修改密码、增加讨论主题、回复讨论等功能;管理员具有管理用户、删除主题、回复讨论等功能。 2、B/C网上商城: 根据你的实际情况选择你感兴趣的商品,如书籍、服装、电子产品等;要求实现会员注册、登录;商品浏览、查找、加入购物车等功能;管理员用户可在后台实现用户管理、商品管理、用户管理、订单管理等功能。 3、图书馆管理系统: 实现读者和管理员两类不同的用户;读者具有登录、查看个人信息、搜索书籍信息;借书、还书等功能;管理员具有读者管理、图书管理等功能。 4、基于WebService的列车时刻(航班查询)系统: 通过调用已有的WebService可以较方便地查询全国范围的列车时刻表(或航班时刻)。 5、校友信息系统: 设计一个本校的校友管理信息系统,校友可以注册、发表活动或话题、查找其它校友、上传图片、访问校友论坛;系统管理员有添加、删除、修改校友用户的各种权限。 6、高校工资管理系统: 学校系统管理员,管理相关人员的用户权限、密码等;人事处管理员可管理教师的职称等级(暂定助教、讲师、副教授、教授四个等级,每个等级又分三个级别一共12级工资标准),管理每个等级教师的基本工作量、课酬,基本薪酬等;教师只可以查询自己的工资。 7.在线考试系统: 学生通过学号和密码进入考试系统,考试将随机组卷生成单项选择题、简答题、判断题、填空题等客观题型,考试系统倒计时,考试时间到则强制提交考试结果,当然学生在考试过程中也可提前交卷。 教师借助系统可以自动对单项选择题和判断题(根据标准答案)评分并把结果写入数据库,其它题型(简答、填空)可另行设计适当界面进行评分,评分结果也要写入数据库,最后生成每个学生的总分汇总。 8、考试时钟: 可以上学院网站查阅天高工作室同学所作的考试时钟程序,用ASP.NET重写一个,或增强其功能。 9.设计一个本学院的信息网站: 集成内容发布、信息发布、会员系统等功能,并在首页实现动态显示当前最新新闻,管理员通过登陆后台可添加各模块子项目(新闻、通知等)。 10.网络相册的设计与实现: 用户通过注册后分享自己的图片,进行上传、下载图片,创建、删除目录,其它用户可以对图片发表评论等基本功能。 要求各页面之间交互性较好,使用JQuery等客户端技术。