1、基于 ASPnet 的服务器控件设计怯鱼技术墓子 ASP.Bt 的服备器控件设计陈燕 1,2(1.苏州大学计算机科学与技术学院,江苏苏州 215006;2.苏州经贸职业技术学院信息系,江苏苏州 215031)摘要:ASP.NET 服务器控件是在服务器上运行并封装用户界面及其他相关功能的组件.这些服务器控件在 ASP.NET 页和ASP.NET 代码隐藏类中使用.其运行在服务器端,经过服务器端某些程序的解析再生成标准的 HTML 代码显示在我们的浏览器上.设计自定义服务器控件的意义:提高代码重用率 ,方便快速开发,以及程序升级维护.关奠宇:服务器控件序列化回传(PostBack)事件冒泡1ASP
2、.net 服务器控件在 中,(传统意义上 )可供你开发的控件实际上有两种:CustomControl 和 UserControloCustomControl 是纵向的,是对系统本身控件的继承和扩充,在程序中以 DLL 文件形式存在,UserControl 则是横向的 ,是对系统本身控件的组合,在系统中以.ascx 为后缀名.这两种控件功能相同 ,都可以为开发人员提供可复用的可视化 uI 组件,相比之下前者具有更大的灵活性,同时开发起来比较复杂,而后者容易开发,但可重用性就比较差.一般来说用户会先用 UserControl 来开发,只有当其不堪重用的时候才转而使用 CustomControlo
3、ASP.net 服务器控件的架构模型(1)常规模型(见图 1)服务器端ASP.net 的组件模型自.定义 J|务器 l 撺什浏览器客,端图 l(2)基于 IE6 的优化模型(见图 2)此模型是前一模型的改进,客户端需要 ie6 的支持.该模型将描述控件外观和行为逻辑移到客户端,由 M 来组合相关htm1.这样做的好处是既减轻服务端的负荷,也减轻了网络传输的负荷,同时,由于控件界面逻辑由客户端实现,所以显示速度较快.2 几个重要的基本概念2.1 序列化序列化是将对象转换为容易传输的 XML 格式的过程 .例如,可以序列化个对象为 XML 数据,然后使用 H-】rP 通过nternet10服务器端
4、ASP.net 的纽件模型一基千 IE6 的优化+.,.,.i自.定义服务器挖件IE6 书蹦 .:图 2在客户端和服务器之间传输该对象.在另一端,反序列化将从该xML 流重新构造对象.2.2 回传(PostBack)每次服务器控件的事件引发的页面刷新前都会发生一次页面回传.2.3 事件冒泡ASP:NET 页框架提供一种称为“ 事件冒泡“的技术,允许子控件将事件沿其包容层次结构向上传播.事件冒泡允许在控件层次结构中更方便的位置引发事件,并且允许将事件处理程序附加到原始控件以及公开冒泡的事件的控件上.3ASP.net 服务器控件的服务器端事件的触发原理WebControh 中的 Button 和
5、HnlContmls 中的 Type 为的 HtmlInputButton.HtmlControls 中的 Type 为 buRon 的 HImilnputButton 和其它所有的控件事件,比如nkBuRon 点击,TextBox 的 Cll 婚事件等等:4ASP.net 服务器控件的状态值维持机制ViewState 是一种机制,ASP.NET 使用这种机制来跟踪服务器控件状态值,否则这些值将不作为 HTrP 窗体的一部分而回传 .例如,由 Label 控件显示的文本默认情况下就保存在 View中.作为开发人员,您可以绑定数据,或在首次加载该页面时仅对Label 编程设置一次,在后续的回传中
6、 ,该标签文本将启费扶ViewState 中重新填充.因此,除了可以减少繁琐的-rfCm#l,.,ViewState 通常还可以减少数据库的往返次数.ViewState 确实没有什么神秘之处,它是由 ASP.NET 页面框架管理的一个隐藏的窗体字段.当 ASP.NET 执行某个页面时,该页面上的 ViewState 值和所有控件将被收集并格式化成个编码字符串,然后被分配给隐藏窗体字段的值属性(即inputtype=hidden).由于隐藏窗体字段是发送到客户端(下转 89 页)2007 年(第 36 卷) 第 3 期管理斜孥的系统也不尽相同,但总起来讲.主要应当包括以下几个系统:2.1 门禁防
7、卫系统是指对小区出入口进行智能管理,住户,物业管理者,保安等人员配发不同的感应卡,在出入小区时,将有关资料输入其中,对应正确后方可进出.该系统可以同楼宇可视对讲系统及其他报警系统相结合,有效地对进出小区的人员进行“过滤“.2.2 小区周界监控报警系统就是在小区周界布设可调式变焦摄像机或在照明条件差的区域布设红外监控摄像机,监控小区的周边环境,并在小区周界的栅栏上安装红外对射报警探测器,当有可疑情况出现时,报警器和摄像机自动报警并进行摄录,管理人员通过室内监控设备获知警情,及时通知保安,管理中心或公安机关的接警系统.2.3 住户和其他场所防盗报警系统为了确保小区内住户的安全,可在住户室内安装红外
8、报警探测器,烟感探测器,可燃气体泄露报警探测器,紧急求助装置等.2.4 楼宇非可视对讲和可视对讲系统是指对来访人员与住户之间提供双向通话或可视通话,并由住户遥控防盗门开关,或向小区管理中心紧急报警的一种安全防范系统,适用范围比较广,别墅,公寓和小区住宅均可.2.5 停车场管理系统现在,由于城市居民中拥有私家车的人越来越多,机动车的停放和保管显得越来越重要.目前,可用于停车场管理的技术系统主要有:远距离感应式 ID 卡技术和电脑技术,以及一些高档车辆本身自有的防盗感应报警系统,和 GPS 卫星定位防盗系统等.2.6 电子巡更管理系统是利用先进的接触存取技术,对小区内的保安或物业管理人员的工作进行
9、有效管理和监督的管理系统,也就是电子签到方式.它是由保安或管理人员持储存有本人基本信息的巡查信息钮,定时到规定线路碰触管理信息机,该管理信息机迅速将巡查信息上传到管理终端,终端再以图文方式指示巡查人员到达何处巡查,或告知需要处置的事项.该系统可以强化保安或管理人员的工作责任心,以技防促进了人防.2.7 火灾报警系统是指对社区的重点部位,危险部位或者居民家等容易发生火灾的部位,安装的具有探测,报警,控制,联动,灭火减灾等功能的技术防范措施.2.8 社区工作人员的技术装备主要包括警用科技装备,先进的指挥设备等.此外,还有多媒体技术,生物识别技术等,都可以为社区技术防范提供强大的技术支撑.而正在兴起
10、的智能建筑和智能小区也为技术防范提供了广阔的平台.3 加强社区警务战略中技术防范建设需要注意的几个问题实践充分证明,技术防范在社区的安全防范中有着独特而高效的作用,是社区安全防范的有效载体,在技术防范建设中,应当注重解决好以下几个问题:3.1 充分认识技术防范的重要作用近年来,随着社会的不断进步,城市建设飞速发展,大面积的住宅楼群拔地而起,与之相配套的物业管理小区方兴未艾,人们在追求居住环境舒适,优雅的同时,也迫切希望能够住得安全,放心,各项服务更加周到.而技术防范正是适应人们的这种要求,切实减少区域发案,完善社区服务功能的有效手段.但由于传统的人防,物防模式在人们的心目中形成了思维定式,认为
11、小区门口有大门,内有治安巡逻队,家中装了铁门铁窗,保险系数很高,思想上容易产生麻痹大意.还有的是由于小区面积较大,建筑布局复杂,传统的“人防“ 很难到位 ,再加上由于市场经济大潮的冲击 ,传统意义上的治保积极分子越来越难以组织发动,义务巡逻越来越少.同时,犯罪分子也变得越来越凶狠和狡猾,他们一方面直接使用暴力或撬盗工具,将防盗门窗破坏后入室作案,另一方面,犯罪手段渐趋智能化,技能化,犯罪分子也在对防盗门,窗,护栏等进行研究,有的还使用技术手段和专用工具撬盗入室等等.一些地方的封闭小区仍然发生可防性案件,特别是入室盗窃,抢劫等案件,原因正在于此.凡此种种情况都需要人们从传统的防范思维中走出来,拓
12、宽防范视野和渠道,将技术防范看作是适应社会发展和遏制犯罪的有效措施,明确技术防范的概念,运作方式和功能上的优越性,从而大力加以推广和运用.作为公安机关,保安服务业和小区物业管理部门,就要积极向住户和业主进行宣传动员,使大家认识到技术防范的重要性和所带来的好处,从而能够自觉参与和支持社区的技术防范工作.3.2 社区技术防范要尽可能形成网络要不断拓宽社区技术防范的功能,使其同新兴的社区服务相结合,使防盗,报警,防火,求助的功能集于一套系统之中.小区与小区之间的技术防范系统也不能各自为政,而要尽可能实施联网,以使各种资源得到最大优化.有条件的社区,还可以将这些系统与网络公共信息服务相联接,使用户通过
13、局域网快捷地实现同管理中心之间各种信息的交互.这就要求各地的城市规划,房地产开发,物业管理和公安等部门,在城市规划,建设,开发,管理的过程中,能够协调一致,通盘考虑,将社区技术防范建设纳入社会治安综合治理的大格局之中,在基础设施,硬件建设和 13 常管理维护中,科学规划,加大投入,真正做到花钱买平安.3.3 正确处理好人防,物防,技术三者之间的关系,协调发展,互相促进人防,物防,技防是互为补充,互相促进的,单纯地只抓某一项防范,就达不到应有的效果.人防是积极的防范措施,但受到人力和值巡时间,范围的限制,以及保安或管理人员的责任心的影响,必然会存在死角和漏洞.而物防如防盗门,窗,栅栏,保险柜等,
14、是一种静态的被动预防,容易受到犯罪分子的破坏,而且在遭受破坏时也不能及时报警.而技防也有其局限性,易受客观条件的制约.因此,只有把人防,物防和技防三者有机地结合起来,全面协调发展,充分发挥各自的优势,互为补充,才能构成社区安全防范的立体网络,最大限度地减少社区内的发案.3.4 技术防范要因地制宜,不能贪大求洋由于我国城市的结构和类型各不相同,经济发展水平也不平衡,社区建设的模式也有差异.因此,在社区技术防范建设上,要根据本地,本区的实际,设计规划一种防范效果好便于管理和维护的模式.特别是中小城市,要充分考虑到前期投入和后期运转,维护等的经济承受能力,选择使用一种既经济又灵敏方便的技防系统,而不
15、能盲目追求“新“和“全“,造成不必要的浪费或后期无法运转.另外,资金来源也是制约技术防范大力发展的个瓶颈,需要认真加以研究.(上接 10 页) 的页面的一部分,所以 ViewState 值被临时存储在客户端的浏览器中.如果客户端选择将该页面回传给服务器,则ViewState 字符串也将被回传.回传后,ASP.NET 页面框架将解析ViewState 字符串,并为该页面和各个控件填充 ViewState 属性.然后,控件再使用 ViewState 数据将自己重新恢复为以前的状态.5 结束语在 ASP.net 中自定义服务器控件,优点是可以提高代码重用率,方便程序的升级和维护,对程序员来说,可以减轻烦琐的工作.但在开发服务器控件的过程中,要不断分析实时性能否满足要求.本文的分析方法对于在 ASP.net 中开发服务器控件的程序员具有借鉴意义.一考文献:【1】 【美】马丁.敏捷软件开发一原则,模式与实践【J】.清华大学出版社,2003.9.【2】李世东.ASP.NET 之精通弹出窗口 U】.Web 技术中文网,2005.12.