《软件工程硕士论文消防总队党务协同管理系统分析与设计.doc》由会员分享,可在线阅读,更多相关《软件工程硕士论文消防总队党务协同管理系统分析与设计.doc(68页珍藏版)》请在三一办公上搜索。
1、分类号 TP311 密级 公开 UDC 编号 硕士研究生学位论文题目: 消防总队党务协同管理系统分析与设计学院(所、中心) 软 件 学 院 专 业 名 称 软 件 工 程 2009年4月声 明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得云南大学或其他教育机构的学位或证明而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。研究生签名: 日 期: 论文使用和授权说明本人完全了解云南大学有关保留、使用学位论文的规定,即:学校
2、有权保留并向国家有关部门或机构送交学位论文和论文电子版;允许论文被查阅或借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文;授权学校将学位论文的全部或部分内容编入有关数据库进行检索。 (保密的论文在解密后应遵循此规定)研究生签名: 导师签名: 日期: 目 录目 录2摘 要5ABSTRACT6第1章 引 言71.1课题背景与意义71.2本系统研究目标81.3本论文研究的内容91.4本文组织结构10第2章 系统采用的开发工具和相关技术112.1 .NET Framework112.2 ASP.NET142.2.1 ASP.NET平台功能142.2.2 ASP.NET请
3、求处理原理152.2.3 ASP.NET中的Code Behind技术172.2.4 ASP.NET中的控件182.3 外观表现层、业务逻辑层和数据访问层三层架构20第3章 消防总队党务协同管理系统需求分析213.1 系统功能需求分析213.2 协同事项管理子系统223.3 文档管理子系统233.4 日程计划会议子系统253.5 公共信息管理子系统253.6 用户帐户管理子系统26第4章 消防总队党务协同管理系统设计与实现284.1 系统结构设计284.2 数据库设计304.3 数据访问层的设计与实现384.4 业务逻辑层的设计与实现434.5 外观表现层的设计与实现484.5.1系统登录页面
4、设计与实现494.5.2新建协同事项页面设计与实现50第5章 系统的关键技术问题及其解决方案555.1 安全性设计555.1.1 基于表单的身份认证555.1.2 本系统的安全设计585.2 事项发送流程的处理方法60第6章 总结与展望656.1 论文撰写总结656.2 今后工作展望65参考文献66致 谢68摘 要计算机技术和网络技术的飞速发展,促进了各行各业的信息化。电子政务系统和电子党务系统也成为信息化的热门领域。这些系统集合了不同的资源和个体,协同一致地完成信息采集、信息加工、信息传输和信息保存等任务,组织“人、事件、资源”之间的协同关系,并且进行有效的管理,是团队组织协同工作的信息化平
5、台和工具。本论文针对武警消防总队党委对党务工作信息化建设的需要,在结合总队党务工作的实际情况的基础上,分析设计了一个专用的党务协同管理系统。本系统采用了B/S模式的三层架构,基于.NET框架设计开发。服务器端选用Windows server 2003操作系统,后台数据管理系统选用SqlServer2000,客户端采用windows 2000/xp/vista等操作系统。本论文首先对.NET Framework,ASP.NET,三层架构等.NET开发工具和技术进行了深入的综述;接着对本系统进行了需求分析和功能设计;采用三层架构的模式分析设计了协同事项管理子系统、文档管理子系统、日程计划会议子系统
6、、公共信息管理子系统和用户帐户管理子系统等5个模块;同时还完成了数据库的访问层、业务逻辑层和外观表现层设计;最后分析讨论了系统的安全问题。本系统设计的人机对话界面方便实用。关键词:协同管理;ASP.NET;三层架构;电子党务;Analysis and Design of Party Affairs Coordination Management System for General Fire Brigade AbstractThe rapid development of computer technology and network technology has greatly enhanc
7、ed the information-based process of every industry or trade, and therefore the E-Governance System and E-Party Affairs System have become hot topics. These systems integrate different resources and individuals; accomplish the tasks of information acquisition, processing, transmission and preservatio
8、n. These systems, organizing the relationships of people-event-resources, are the information platform and tools for team work.Aimed at the Party Affairs information construction requirements and in the light of actual situations of armed General Fire Brigade, this thesis analyzes and designs a spec
9、ial Party Affairs Coordination Management System. Adopting three-tier Browser/Client (B/S) architecture, this system designs and develops on the basis of .NET framework. This system adopts Windows Server 2003 OS for server, MS SQL Server2000 for backstage database system and Windows 2000/XP/Vista OS
10、 for clients.Firstly, this thesis gives an overview of the principles and technologies of .NET Framework, ASP.NET and introduces the three-tier .NET development tools. Then, through the thorough requirements analysis and functional design, this system is composed of 5 modules based on the three-tier
11、 architecture: coordinate task management sub-system, document management sub-system, scheduling meeting sub-system, pubic information management sub-system and user accounts management sub-system. At the meantime, this thesis accomplishes the design of database access layer, service logical layer a
12、nd external presentation layer. Finally, system security problem is been discussed. The man-machine communication GUI (Graphic User Interface) designed for this system is practical and convenient.Keywords: Coordination Management, ASP.NET, three-tier architecture, E-Party Affairs第1章 引 言随着计算机技术和网络技术的
13、飞速发展,信息化渗透到社会生活的方方面面,成为社会发展的强大动力,以信息技术为核心的新技术革命正在改变着世界的面貌,影响着人们的思想观念和行为方式。在Internet的巨大网络中,许多企业、事业、政府部门和个人的信息化获得了巨大的成功。电子政务、电子商务的概念得到了越来越广泛的社会认可,促进了各行各业的信息化建设。11.1课题背景与意义今天电子政务系统和电子党务系统成为了信息化的热门领域。2001年中组部在全国、全军推广了党务信息统计系统,但该系统只是单机版的基本信息统计系统,没有实现网络信息共享。近年来,国内对党的建设信息化的创新及应用的研究逐渐增多,既有理论工作,也有实际应用,发表了一些论
14、文和调研报告,有少量的研究著作以及应用软件的面世。同时国外许多政党也在这方面进行了有益的尝试,并取得了较好的成效。电子党务协同管理信息系统集成办公自动化、信息管理、综合服务、决策支持于一身,具有应用项目多样性,管理内容科学性的特点。这些系统集合了不同的资源和个体,协同一致地完成信息采集、信息加工、信息传输和信息保存等任务,组织“人、事件、资源”之间的协同关系,并且进行有效的管理,是团队组织协同工作的信息化平台和工具。这些系统以面向对象技术为基础,以美国微软公司推出的.NET为开发平台,采用B/S结构,以微软公司的SqlServer2000为后台数据管理系统,结合INTERNET和INTRANE
15、T技术,结合现阶段政府机关及党委办公业务的管理流程与特点,具有通用意义的办公自动化系统。1.2本系统研究目标武警消防总队针对党的信息化建设的需要,设立了消防总队党务协同管理系统设计与应用的课题。党务协同管理系统是根据部队党务工作的实际情况和现代办公系统的特点及要求设计的一套既有较强通用性,又有较强针对性,具有强大网络通信能力和信息共享功能的现代化党务管理办公自动化系统。消防总队党务协同管理系统的总体目的是采用先进的计算机技术和高速网络技术,建成安全可靠、运行高效、使用方便、易于管理和维护的党务信息系统,使之成为党务工作的管理信息中心。通过该系统的实施拟达到如下目标:系统地规范党务管理:实施消防
16、总队党务协同管理系统后,可以使传统的自上而下的管理方式变为互动双向、多向交流,疏通和拓宽党内民主渠道,使总队各党组织和广大党员能够及时学习党的方针政策、了解和掌握党内事务,平等地表达自己的愿望,以主人翁的姿态积极参与党内事务,实现对党内事务的广泛参与、有效管理和积极监督。增强领导和指挥能力:由于消防总队党务协同管理系统的完整性、科学性、实用性和超前性,使该系统能够提供全面、及时、准确的管理信息、统计信息和分析信息,并最大限度地实现共享,充分发挥计算机智能辅助决策能力,做到信息全、情况明、指挥灵。真正实现无纸化办公:实施消防总队党务协同管理系统后,办公信息均为数字化信息,无需纸张,同时减少了信息
17、传递的费用,可以很大程度上节约办公经费。本课题旨在努力探索符合武警消防部队特点的总队党务协同管理的路子,使之能有效地增强总队党务的凝聚力,提高总队党务的战斗力,增强党员的影响力和号召力,从而更好地发挥党员的先进性作用。为总队的改革发展稳定和人才培养,起到积极的推动作用。消防总队党务协同管理系统总的目标是:建立符合党务工作具体特点,安全可靠、运行高效、使用方便、易于管理和维护的电子党务协同管理系统。打造一支信息化的消防部队,贯彻科技强警战略,提高党务办公的工作质量和效率,1.3本论文研究的内容本系统面向消防总队党务的具体应用设计,是一个基于INTERNET和INTRANET技术互联网的协同工作平
18、台和协同管理系统。它融入先进的协同管理理念,运用先进的网络技术,解决总队党务建设工作和党员管理工作中的信息化问题。总队所有的党组织利用它可把日常管理中的业务、事务、事件等信息在党委、支部、党员个体之间进行及时高效、有序可控、全程共享的沟通和处理,有非常好的应用环境。本系统要达到的主要功能:(1)协同事项管理功能该模块主要是实现党员之间的协同工作。包括新建协同事项、待发协同事项管理、已发协同事项跟踪管理、待办/已办协同事项管理等四个子系统。(2)文档管理功能文档管理是帮助使用者管理个人和组织的文件。文档管理包括我的文档管理、单位文档管理、借阅文档管理、综合查询等四个子系统。(3)日程计划会议管理
19、功能对用户个人日程安排及会议相关方面的管理。包括我的日程安排和会议管理两个子系统。(4)公共信息管理功能公共信息是党员之间沟通交流的平台,包括公告栏、调查的发布和查看以及讨论区等三个子系统。本文所做的主要工作包括:对目前的电子政务和OA系统的现状作了充分调研,并对总队党务工作的办公自动化系统作了整体规划;对.NET Framwork、ASP.NET、三层架构等.NET开发技术进行了深入学习研究;根据目前消防总队党务工作的现状进行了切实可行的设计和架构;采用三层架构的模式进行了软件的开发和调试;设计了友好简洁的人机对话界面。1.4本文组织结构第1章:课题选题的背景和意义。第2章:综述消防总队党务
20、协同管理系统采用的相关技术。第3章:论述消防总队党务协同管理系统的需求分析和功能模块规划。第4章:论述介绍消防总队党务协同管理系统的设计与实现。第5章:讨论系统设计和实现中的关键技术问题及其解决方案。第6章:总结和展望。第2章 系统采用的开发工具和相关技术2.1 .NET Framework.NET Framework是在Microsoft .NET平台上进行开发的基础,.NET Framework以及针对设备的.NET Framework简化版为XML Web服务和其他应用程序提供了一个高效安全的开发环境,并全面支持XML。.NET Framework 是用于生成、部署和运行 XML Web
21、 services 和应用程序的多语言环境。2它由三个主要部分组成:(1)公共语言运行库运行库实际上在组件的运行时和开发时操作中都起到很大的作用,尽管名称中没有体现这个意思。在组件运行时,运行库除了负责满足此组件在其他组件上可能具有的依赖项外,还负责管理内存分配、启动和停止线程和进程,以及强制执行安全策略。在开发时,运行库的作用稍有变化;由于做了大量的自动处理工作(如内存管理),运行库使开发人员的操作非常简单,尤其是与今天的 COM 相比。特别是反射等功能显著减少了开发人员为将业务逻辑转变为可重用组件而必须编写的代码量。(2)统一编程类该框架为开发人员提供了统一的、面向对象的、分层的和可扩展的
22、类库集 (API)。目前,C+ 开发人员使用 Microsoft 基础类,而 Java 开发人员使用 Windows 基础类。框架统一了这些完全不同的模型并且为 Visual Basic 和 JScript 程序员同样提供了对类库的访问。通过创建跨所有编程语言的公共 API 集,公共语言运行库使得跨语言继承、错误处理和调试成为可能。从 JScript 到 C+ 的所有编程语言具有对框架的相似访问,开发人员可以自由选择它们要使用的语言。(3)ASP.NETASP.NET 建立在 .NET Framework 的编程类之上,它提供了一个 Web 应用程序模型,并且包含使生成 ASP Web 应用程
23、序变得简单的控件集和结构。ASP.NET 包含封装公共 HTML 用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web 服务器上运行,并以 HTML 的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为 Web 开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XML Web services 功能,ASP.NET 开发人员可以编写自己的业务逻辑并使用 ASP
24、.NET 结构通过 SOAP 交付该服务。有关更多信息,请参见 Soap 社区链接。.NET Framework是微软公司推出一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发,旨在实现以下几个目标:提供一个一致的面向对象的编程环境;提供一个将软件部署和版本控制冲突最小化的代码执行环境;提供一个保证代码安全执行的代码执行环境;提供一个可消除脚本环境或解释环境的性能问题的代码执行环境,使开发人员的经验在面对类型大不相同的应用程序时保持一致;按照工业标准生成所有通讯,以确保基于.NET框架的代码可与任何其他代码集成。简而言之,.NET Framework是一个多语言组件开发
25、和执行环境,借助于这一环境,系统开发人员可以将手机、浏览器和门户应用程序集成到一起,最终用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序,而不需要知道这些文件放在什么地方。从层次上来看,.NET Framework所包括三个主要组成部分结构如图2.1所示。公共语言运行时(CLR:Common Language Runtime ),服务框架(Services Framework)和上层的两类应用模板传统的Windows应用程序模板(Win Forms)和基于ASP.NET的面向Web的网络应用程序模板(Web Forms和Web Services)。VB.NETC+C#J
26、#.公共语言规范ASP.NETWeb表单 Web服务Mobile Internet ToolkitWindows表单ADO.NET和XML基类库公共语言运行库操作系统图 2.1 .NET Framework结构图公共语言运行时(以下称作CLR)管理代码的执行并使开发过程变得更加简单。CLR是一种受控的执行环境,其功能通过编译器与其他工具共同展现。以“运行时”为目标的代码称为受控代码(Managed Code )。受控代码指向的对象在执行过程中完全被CLR所控制。在执行过程中,CLR提供自动内存管理、调试支持、增强的安全性及与受控代码(如COM组件)的互操作性。凡是符合CLS(公共语言规范)的程
27、序语言(如C#和Visual Basic.NET等)所开发的程序都可以在任何有CLR的操作系统上执行。在某种程度上,CLR和Java的虚拟机有异曲同工之妙。服务框架(Services Framework)为开发人员提供了一套能够被任何现代编程语言调用的、统一的面向对象、异步、层次结构的可扩展类库,包括集合、输入/输出、字符串、图画、网络、线程、全球化、安全加密、数据库访问、调试相关服务等类库。编写Windows客户应用程序的开发人员可使用Windows应用程序模板(以下称作Win Forms )以利用Windows丰富的用户接口特点,包括现在的ActiveX控件和Windows 2000的新特
28、点,如透明的、分层的、浮动窗口。Win Forms在利用微软.NET Framework runtime以减少基于Windows的客户应用程序开销的同时也简化了应用程序的配制和版本化。在基于ASP.NET的面向Web的网络应用程序模板中,网络应用程序是一套起源于基URI.的URLs,因此它包含用于生成在浏览器中观看的网页的网络应用程序和网络服务。22.2 ASP.NET2.2.1 ASP.NET平台功能ASP.NET是微软公司Active Server Pages(动态服务页)技术的最新版本。ASP.NET不仅仅是 Active Server Page (ASP) 的下一个版本,而且是一种建立
29、在通用语言上的程序构架,能被一台Web服务器用于建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的的优势。(1)执行效率的大幅提高ASP.NET以通用语言的程序在服务器上运行,程序首次运行时在服务器端进行编译,改革了以前的ASP即时解释程序执行方式,执行效率大幅度提高。(2)世界级的工具支持ASP.NET构架是可以用Microsoft(R)公司最新的产品 Visual Studio.NET开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.NET强大化软件支持的一小部分。(3)强大性和适应性因
30、为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发的全部平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。ASP.NET同时也是language-independent语言独立化的,所以,开发人员可以选择一种最适合个人的语言来编写程序。2现在ASP.NET已经支持的语言有C#(C+和Java的结合体),VB,Jscript。(4)简单性和易学性ASP.NET是运行一些很平常的任务,如表单的提交客户端的身份验证、分布系统和网站配置等变得非常简单。例如ASP.NET页面构架允许建立自己的用户分界面,
31、使其不同于常见的VB-Like界面等。另外,采用通用语言简化开发,把代码结合成软件,简单得就像装配电脑。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。(5)高效可管理性ASP.NET使用一种字符基础的,分级的配置系统,使服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为“Zero Local Administrati
32、on”的哲学观念使ASP.NET的基于应用的开发更加具体和快捷。一个ASP.NET的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动。(6)自定义性,和可扩展性ASP.NET设计时考虑了让网站开发人员可以在自己的代码中自己定义“plug-in”的模块。这与原来的包含关系不同,ASP.NET可以加入自己定义的如何组件。网站程序的开发变得更简单。ASP.NET 是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET 兼容的语言(包括 Visua
33、l Basic .NET、C# 和 Jscript .NET.)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。ASP.NET 可以无缝地与 WYSIWYG HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。ASP.NET利用common lan
34、guage runtime和服务框架网络应用程序,提供了一个可靠的、自动化的、可扩展的主机环境。2.2.2 ASP.NET请求处理原理不管使用哪种底层平台,可靠性和性能都是对所有Web应用程序的主要要求,尽管从某种意义上讲,这两个要求是相互矛盾的。要构建更可靠、更健壮的应用程序,可能需要将Web服务器与具体的应用程序分离,使应用程序在进程外工作。但是,如果在不同于Web服务器进程的内存环境中工作,应用程序将变慢。因此,需要采取合理的措施,以确保进程外代码尽可能快地运行。5正是ASP. NET对于程序的可靠性和性能的恰当的处理,成为本项目选中这一技术开发总队党务协同管理系统的原因。首先,ASP.
35、 NET具有的运行时属性。应用程序和ASP. NET辅助进程之间完全分离。提供服务的辅助进程的寿命决不会影响应用程序的寿命,当应用程序启动并处于运行状态时,辅助进程可以随时终止。其次,ASP. NET进程模型包含了两个系统元素,一个存在于Web服务器进程中的进程内连接器,一个外部的辅助进程,ASP. NET可以自动使用多处理器硬件中任意选定的处理器,它可以使多个辅助进程同时运行。另外,ASP.NET的核心是HTTP运行语言,一个高性能的用于处理基于低级结构的HTTP请求的运行语言。其基于的结构与Microsoft Internet InformationServices (IIS)所提供的IS
36、API结构相似,HTTP运行语言是在像服务器上的IIS或客户机上的IE之类的unmanaged主机过程中运行的受控代码。HTTP runtime负责处理引入的所有HTTP请求,并对每个请求应用程序的URL进行解析,然后把请求分配到应用程序以进行进一步的处理。HTTP运行语言是多线程的,并异步处理请求,因此劣质的应用程序代码阻碍不了它对新请求的处理。而且HTTP运行语言假定失败必会发生,因此它被控制为尽最大力量自动地从访问冲突、内存泄漏、死锁等事故中恢复过来。除非是硬件故障,运行语言的目标是100%的可靠性。ASP.NET请求的具体处理逻辑如下5:当请求到达时,IIS检查资源类型并调用ASP.
37、NET ISAPI扩展。如果启用了默认的进程模型,ASPnet_isapi会将请求排队,并将请求分配给辅助进程。所有的请求数据都通过异步工I/0发送。如果启用了IIS 6进程模型,请求将自动在辅助进程(w3wp. exe)中排队,此辅助进程用于处理应用程序所属的IIS应用程序池。IIS 6辅助进程不了解ASP. NET和托管代码的任何情况,它只是处理*.ASPx扩展并加载ASPnet_isapi模块。当ASP. NET ISAPI在IIS 6进程模型中运行时,它的工作方式有所不同,仅在w3wp. exe辅助进程的上下文中加载CLR。收到请求后,ASP. NET辅助进程将通知ASP. NET I
38、SAPI,它将为请求服务。通知通过同步I/0实现。之所以使用同步模型,是因为请求只有在ISAPI内部请求表中被标记为“executing,辅助进程才能开始处理它。如果请求己经由特殊的辅助进程进行处理,则不能再将它指定到其他进程,除非原始进程已取消。在辅助进程的上下文中执行请求。有时,辅助进程可能需要回调ISAPI以完成请求,也就是需要说枚举服务器变量。这种情况下,辅助进程将使用同步管道,因为这样可以保持请求处理逻辑的顺序。完成后,响应被发送到打开了异步管道的ASPnet_isapi。现在,请求的状态变为“Done,之后将从请求表中被删除。如果辅助进程崩溃,正在处理的所有请求仍将保持“execu
39、ting”状态并持续一段时间。如果ASPnet_isapi检测到辅助进程已取消,它将自动终止请求并释放所有相关的IIS资源。以上说明是在IIS 5. x中运行的工作模型。当集成在IIS6. 0中时,ASP. NET1. 1不再需要使用ASPnet wp辅助进程,machine.config文件中定义的某些配置参数也被忽略。有关请求的一切都在ASPnet_isapi的控制之下,且都处在w3wp. exe辅助进程的上下文中。辅助进程的帐户是为Web应用程序所属的应用程序池设置的帐户。默认情况下,该帐户是NETWORKSERVICE,它是一个内置的弱帐户,在功能上与ASPNET等价。2.2.3 AS
40、P.NET中的Code Behind技术Code Behind就是所谓的代码分离,在一般的ASP.NET文件中,Code Behind主要是用二个文件来创建一个ASP.NET的页面,其中一个是设计文件,一般以.ASPx或者ascx做为扩展名,而另外一个是程序代码文件,一般以.vb或者.cs做为扩展名,其程序设计语言主要是VB.NET或者是C#。10在ASP时代,界面设计和程序设计混合在一起的,因此当程序设计人员要修改应用程序界面布局的时候,就往往需要更改大量与界面无关的代码,对于一个小程序,工作量不是很大,如果对于代码量很大的程序,就是一项工作量不小的事情。Code Behind把界面代码和程
41、序代码以不同的文件分离开,对于代码的重复使用,程序的调试和维护都是革命性的。特别是在ASP.NET中,它采用了面向对象的方式,子页面的逻辑可以从父页面中继承过来,如果还是按照以前的方式的话,不可避免就将页面的内容都要继承过来,这样将造成无法进行模块设计。10使用Code Behind的另一个优点是可以在发布网站时有效的保护代码,这对于程序的安全性来说也是一个提高。2.2.4 ASP.NET中的控件ASP.NET控件是ASP.NET架构的基本组成部分。从本质上讲ASP.NET是.NET Framework中的类,可以在ASP.NET页面上映射控件声明,然后那些类根据他们的属性为控件创建HTML。
42、由于类的对象是在运行时与页面一起被编译的,因此开发人员可以按照面向对象的方式访问那些对象,例如读取和更改他们的属性、调用他们的方法和处理服务器端的事件等。 从表现形式上,ASP.NET控件可划分为Html标注、Html控件和ASP.NET服务器控件三类。Html标注就是传统所说的Html超文本标记语言,这些Html标注在以往的静态网页或网页里即可满足开发需求,Html标注并没有办法利用程序直接来控制它们的属性、使用方法和接收事件,只可用客户端脚本(例如JavaScript)进行控制。Html控件就是在上面提到的Html标注的属性里加上runat=server所构成的控件。至于Html标注和Ht
43、ml控件之间的区别很明显,Html控件是运行于服务器端,Html标注是运行于客户端。具体来说:当ASP NET网页执行时,会检查标注有无runat属性,如果标注没有设定,那么Html标注就会被视为字符串,并被送到字符串流等待送到客户端,客户端的浏览器会对其进行解释;如果Html标注有设定runat=server”属性,Page对象会将该控件放入控制器,服务器端的代码就能对其进行控制,等到控制执行完毕后再将Htmi控件的执行结果转换成Html标注,然后当成字符串流发送到客户端进行解释。ASP.NET服务器控件也叫Web服务器控件,是页面中用来定义Web应用程序用户界面的组件,是Web Forms
44、编程模型的基本元素,它会依Client的情况生产一个或者多个Html控件,而不是直接描述Html元素。它和Html服务器端控件的区别是:ASP.NET服务器控件提供更加统一的编程接口,如每个ASP.NET服务器控件都有Text属性。隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器是ie还是firefox,或者是移动设备。ASP.NET服务器控件可以保存状态到ViewState里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存。事件处理模型不同,Html标注和Html控件的事件处理都是在客户端的页面上,而ASP.NET服务器控件则是
45、在服务器上。根据提供者的不同,ASP NET控件又可以分为基础控件、第三方控件和自定义控件。基础控件由微软提供,包含在.NET Framework中;第三方控件由一些商业公司或非营利机构提供,他们被打包成单独的类库,开发人员可以在项目中直接引用;自定义控件则是开发人员在项目实施过程中根据实际需求自行开发的控件。自定义控件又可以划分为两种:Custom Control和User Control。 Custom Control是纵向的,是对系统本身控件的继承和扩充,在程序中以DLL文件形式存在,User Control则是横向的,是对系统本身控件的组合,在系统中以.ascx为后缀名。这两种控件功能
46、相同,都可以为开发人员提供可复用的可视化UI组件,相比之下前者具有更大的灵活性,同时开发起来比较复杂,而后者容易开发,但可重用性就比较差。开发Custom Control需要定义一个直接或间接从Control派生的类并重写它的Render方法,System. Web. UI. WebControls. WebControl与System. Web. UI. Control两个类是服务器控件的基类。Control类定义了所有服务器控件共有的属性、方法和事件。其中包括控制控件执行生命周期的方法和事件,以及ID, UniqueID, Parent, ViewState和Controls(子控件集合)
47、等属性。Control没有用户界面(UI)特定的任何功能。如果创作的控件没有提供UI,或者组合了其他呈现其自己的UI的控件,则从Control派生。WebControl类是从Control派生的,并为UI功能提供附加的属性和方法。这些属性包括ForeColor. BackColor. Font、BorderStyle. Height和Widtho WebControl是ASP. NET中Web服务器控件系列的基类。如果控件呈现UI,则从WebControl派生。32.3 外观表现层、业务逻辑层和数据访问层三层架构所谓三层架构,就是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。14通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。确切地说,三层分别是外观