您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 北京奥运场馆交通信息发布系统技术交流
北京奥运场馆交通信息发布系统技术交流演讲:张远山2008-9-3北京北大千方科技有限公司北京奥运场馆交通信息发布系统技术交流主要内容:1.引言2.北京奥运场馆交通信息发布软件总体情况3.提高设计速度,开源框架利用4.封装,面向对象设计思想的应用5.控件,可重用性的最好利用6.“开闭原则”,设计模式利用7.总结北京奥运场馆交通信息发布系统技术交流1.引言软件的生命周期内有问题的定义及规划、需求分析、软件设计、程序编码、调试和测试、运行维护升级到废弃等阶段软件设计是一个复杂的过程软件设计常面临复杂难于控制、客户需求变更难于适应、后期维护升级复杂度越来越大这里主要从软件设计、编码角度围绕着如何提高软件设计的效率、如何避免重复劳动、如何适应需求变更、如何降低维护成本北京奥运场馆交通信息发布系统技术交流2.北京奥运场馆交通信息发布软件总体情况北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3.1使用开源框架的好处1)“站在巨人的肩膀上”,提高程序的稳定性;2)加快项目的进度和提高软件设计效率;3)降低项目开发成本和风险;4)符合软件“可重用性”的原则;5)没有版权的纷争。北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3.2Microsoft.Practices.EnterpriseLibrary的使用微软企业库包括:配置应用程序块、数据访问块、安全应用程序块、日志和检测应用程序块、缓冲应用程序块、异常处理应用程序块、加密应用程序块、配置应用程序块北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用使用企业库的数据访问块只需要四步:1)添加引用usingMicrosoft.Practices.EnterpriseLibrary.Data;2)创建实例privatestaticDatabasedb=DatabaseFactory.CreateDatabase();北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3)修改配置文件connectionStringsaddname=ConnectionString“connectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:\Projects\北京奥运场馆交通信息发布系统\Database\sys.dll;UserId=;Password=;providerName=System.Data.OleDb//connectionStrings北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用4)访问数据库System.Data.Common.DbCommandcmd=db.GetSqlStringCommand(SELECT*FROMUsers);DataSetds=db.ExecuteDataSet(cmd);北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3.3log4net的使用Log4net是基于.net开发的一款非常著名的记录日志开源组件。基本的框架源于另外的一个非常著名的姐妹组件-log4j。log4net输出信息类型包括:INFO、DEBUG、WARN、ERROR、FATAL,可以通过更改配置文件输出到:文件、控制台、数据库、系统日志、电子邮件北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3.3log4net的使用1)引用。usinglog4net;2)创建实例。privatestaticILogeventLogger=log4net.LogManager.GetLogger(EventLogger);北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3.3log4net的使用3)修改配置文件。4)使用。eventLogger.Info(用户+CurrentUser.UserName+登录);北京奥运场馆交通信息发布系统技术交流3.提高设计速度,开源框架利用3.4效率分析使用开源组建需要花费的时间在于学习它的使用方法,如何设置配置文件、如何调用。一般选择开源的组建都是使用的人比较多的,有很多现成例子。这样,花半天到一天去学习就足够了。从中可以省去自己开发的编码设计时间、调试测试时间,稳定性也得到了保障。采用一个简单现成组建在一个项目中可以省两天以上的时间!北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用面向对象的思想是程序设计的基本思想,应该运用到所有项目的开发过程中,从而增加可重用性、稳定性和减少维护修改的工作量。封装好的类,使用起来特别方便,例如交通路况信息是一个非常复杂的二进制文件,为了使用方便我把它封装起来转换成类对象。北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用XML信息的对象化。一个XML信息(XMLData)里面包含多个区域(Area),这里把要获取交通路况的二进制文件信息转换成类对象信息,方便引用。北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用二进制路况文件信息对象化。JAMData表示一个二进制文件的所有信息,每个JAMData包含多个链路信息(Link),每个链路又包含多个路段信息(BlockRoad),这里把交通路况二进制位信息转换成类对象信息,可以非常方便的引用。北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用4.2设计带来的好处。1)开发思路非常清晰;使用非常简单。//获取XML文件System.Xml.XmlTextReaderxmlReader=TrafficInfo.TrafficInfoManager.GetXMLData();//分析XMLData文件为对象TrafficInfo.XMLDataxmlData=newTrafficInfo.XMLData();xmlData.LoadXmlData(xmlReader);TrafficInfo.JAMDatajamData;stringstrTime=xmlData.DateNumber;//获取第一个文件的文件名stringfileName=xmlData.LstAreas[0].GetJamFilePath(strTime);//获取交通路况信息的二进制文件byte[]bFileString=TrafficInfo.TrafficInfoManager.GetJAMFile(fileName);if(bFileString!=null){//把二进制文件转换成对象jamData=newTrafficInfo.JAMData();jamData.LoadJamData(bFileString);}北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用4.2设计带来的好处。2)把难于操作分析的网络数据流转化成简单明了的对象。3)能够最大程度的适应用户需要,非常方便地修改程序。用户需要看数据,加三四行代码就可以把所有的类保存成XML文件;画图的部分,用户需要更改路况图的效果,改几个参数就搞定了;用户要在路两边增加三角形,通过修改画图部分的代码也能很快的改好。北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用4.2设计带来的好处。4)使代码修改影响范围最小,不会影响到其他代码的稳定性。5)可以在以后项目中重复使用。避免做重复的劳动,写重复的代码。北京奥运场馆交通信息发布系统技术交流4.封装,面向对象设计思想的应用4.3进公司以来积累的可用类库北京奥运场馆交通信息发布系统技术交流5.控件,可重用性的最好利用1)不用写一行代码就可以实现完整功能。2)程序有bug,更新一个dll一改全改。3)高度面向对象。北京奥运场馆交通信息发布系统技术交流5.控件,可重用性的最好利用1)新建一个窗体项目叫ControlTest北京奥运场馆交通信息发布系统技术交流5.控件,可重用性的最好利用2)添加对控件dll的引用。工具箱中点击右键-选择项…-浏览,选择Screen.dll打开北京奥运场馆交通信息发布系统技术交流5.控件,可重用性的最好利用工具箱将出现添加的控件。3)把工具栏中的ScreenPanel“拖到”窗体中,运行程序北京奥运场馆交通信息发布系统技术交流5.控件,可重用性的最好利用北京奥运场馆交通信息发布系统技术交流6.“开闭原则”,设计模式利用“开闭原则”即封闭对原来代码的修改,开放对原来代码的扩展(如类的继承,接口的实现)。北京奥运场馆交通信息发布系统技术交流6.“开闭原则”,设计模式利用在设计“屏幕编辑控件”过程中,我已经实现了图片和文字的编辑(一个屏幕有多个文字和图片)。假设某一天文字和图片已经不能满足要求了,我要增加一个视频显示的,要在文字和图片之间显示多个小视频。直接改动绘图的地方是最直接的,但是这样就会改动到原来的代码,增加了测试的工作量和程序的不稳定性。北京奥运场馆交通信息发布系统技术交流6.“开闭原则”,设计模式利用北京奥运场馆交通信息发布系统技术交流7.总结框架使用、封装、控件、设计模式。
本文标题:北京奥运场馆交通信息发布系统技术交流
链接地址:https://www.777doc.com/doc-46486 .html