基于P2P架构的简单聊天程序的设计与实现(论文)

基于P2P架构的简单聊天程序的设计与实现(论文)

2023年7月14日发(作者:)

ROOLSOFT

基于P2P架构的简单聊天程序的设计与实现

摘 要

在当今网络风行的社会里,上网成为越来越多人们的选择。随着互联网的飞速发展,有关网络的技术也层出不穷。现今活跃在WEB站点中的就是近年才发展起来的一项新型技术。功能强大、本领高强,利用功能时几乎没有什么限制,可以实现动态页面。毕业设计我尝试用来实现聊天工具的开发,于是就有了下面的 ChatRoom。

本论文研究了一种基于P2P架构的聊天程序的设计与实现。其开发主要包括后台数据库的建立、后台管理以及前台页面的Web设计。系统使用Microsoft公司以C#为核心语言的开发工具,结合SQL Server 2005建立数据连接关系。利用其提供的各种组件,在短时间内建立数据库,对数据库进行分析与建立页面,不断改进,直到功能基本实现的可行系统。

关键词 聊天程序;数据库;对象;C#;SQL Server 2005

I ROOLSOFT

Design And Implementation Of A Simple Chat Program

Based On P2P Architecture

Abstract

The Internet become more and more people's choices in today's network society. With

the rapid development of Internet, network technology are endless. Active in the

web site is only in recent years developed a new technology of the day. There is little

restriction in the use of features, can achieve a dynamic page. So there is the

following ChatRoom.

This paper based on P2P architecture chat program of design and implementation. Its

development mainly include the establishment of the database, background management

and the front desk page Web design. Use Microsoft company with C# system as the core of

language development tools, combined with SQL Server 2005 establish data

connection relationship. Use the various components, in a short time, the establishment of

database of database, the analysis and establish page, improving continuously, until

the realization of basic functions feasible system.

Keywords

Chat rooms;Database;Object;C #;The SQL Server 2005

II ROOLSOFT

目 录

第一章 绪论 ....................................................................................................................................... 1

1.1 引言 ........................................................................................................................................... 1

1.2 ..................................................................................................................................... 1

1.2.1 特点 ................................................................................................................. 2

1.2.2 与ASP的区别 ................................................................................................. 3

1.3 SQL Server 2005的介绍 ......................................................................................................... 4

1.3.1 SQL2005 Server的优势 ............................................................................................... 4

1.2.2 SQL Server 2005 与SQL Server 2000 的区别 ....................................................... 5

第2章 P2P的简介 .................................................................................................................................. 7

第3章 C#简介 ......................................................................................................................................... 9

3.1 C#简介 ....................................................................................................................................... 9

3.2 C#的特点 ................................................................................................................................. 10

3.2.1 C#从Java继承而来的特点 ........................................................................................ 10

3.2.2 C#从C和C++继承的特点 ........................................................................................... 11

3.2.3 C#独有的特点 .............................................................................................................. 12

第4章 系统配置 ................................................................................................................................... 13

第5章 TCP应用编程............................................................................................................................. 15

5.1 TCP协议的基础知识 ............................................................................................................... 15

5.2 TCP最主要的特点 ................................................................................................................... 15

5.3 利用TCP开发应用程序时,.NET框架提供两种工作方式 ................................................. 15

5.4 异步TCP应用编程 .................................................................................................................. 16

第6章 技术对聊天程序开发实例 ......................................................................................... 17

6.1聊天程序功能说明 ................................................................................................................... 17

6.2 聊天程序简介– ChatRoom .................................................................................................... 17

6.3 的总体设计 ............................................................................................................... 17

6.3.1 聊天程序的系统功能设计 .......................................................................................... 17

6.3.2 聊天程序的数据表的建立 .......................................................................................... 18

第7章 软件实现 ................................................................................................................................... 20

7.1 设计说明 ....................................................................................................... 20

7.2 文件上传设计说明 .................................................................................................................. 22

7.3 用户下载设计.......................................................................................................................... 23

7.4 聊天界面设计.......................................................................................................................... 25

7.5 用户个性输入字体设计 .......................................................................................................... 26

7.6 用户表情设计.......................................................................................................................... 27

第8章 调试与维护 ............................................................................................................................... 28

III ROOLSOFT

8.1 系统调试 ................................................................................................................................. 28

8.2 系统维护 ................................................................................................................................. 30

结 论 ..................................................................................................................................................... 32

致 谢 ..................................................................................................................................................... 33

参 考 文 献 ........................................................................................................................................... 34

附录A 译文 .......................................................................................................................................... 35

概述 ................................................................................................................................. 35

附录B 外文原文 .................................................................................................................................. 44

IV ROOLSOFT

第一章 绪论

1.1 引言

随着Internet在中国的迅速发展,人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。在众多Internet关联功能中,有一项新的业务正成为所有用户所津津乐道的交流方式,这就是网上聊天。根据调查现在网民使用现状,网上聊天程序的使用百分比高居榜首。所谓聊天程序就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天程序将自己融入整个主流社会中。由于目前上网的一般都是具有高学历的新一代创业者,因此,在网上聊天程序这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。

由于Web技术的飞速发展,人们对网页的要求再也不是局限于简单的、静止的Web页,而是一种根据用户要求控制Web页信息的“活动”页面。所谓Web是交互式的,主要表现在用户能向Web站点发送信息或命令,从而对Web服务器上运行的应用程序进行控制,服务器则根据相应的命令对使用者的操作做出响应。在这种需求的推动下,微软公司推出了“活动服务器页”(,Active Server Pages)。本设计所制作的网络聊天程序也采用了技术。

1.2

技术:(Active Server Page)中文字面理解即是活动的服务器页面。它与普通的HTML页面的区别在于当某人请求一个普通的HTML网页时,Web服务器并不注意文件的内容。Web服务器担当的角色只是取出文件而并不处理文件。所有对文件内容的解释工作均由用户的Web浏览器来完成。但是当某人请求一个网页的时候,Web浏览器担任的是一个较活跃的角色。在文件被发送到用户的Web浏览器之前,它首先要由Web服务器进行处理。Web服务器先对网页中的所有脚本解释和执行,再将它发送到用户的Web服务器。

是建立在.NET Framework基础之上的程序设计框架,它用来创建Web应用程序。 Web窗体是 Web应用程序的一部分,它为创建动态

1 ROOLSOFT

Web站点提供了简易的方法。也包括创建XML Web Service的必要技术,它提供组建来创建基于Web的分布式应用程序。

在中,可以使用Request、Response、Application、Session和Server对象,以及它们一些新的属性和方法。也可以使用");

der("Refresh", "0.0001");

}

else

{

Pic2 = Pic1 + Pic2;

String Sql = "insert into

SendFile(Accept_UserName,Send_UserName,Send_File,Send_Time,Sen

22 ROOLSOFT

d_FileName) values('" + username + "','" + Send_user1 + "','" + Pic2 +

"','" + TimeNow + "','" + FileTitle1 + "')";

if ((Sql))

erStartupScript("", "");

Accept_ = "";

Send_ = "";

}

End If

图7-3 用户上传图

7.3 用户下载设计

如果服务器上有供下载的共享文件,用户可以进行下载:

public void Datalist()

{

String User;

User = Session["Username"].ToString();

string que = "select * from SendFile where Accept_UserName='" + User + "'";

_urce = (que);

_nd();

}

23 ROOLSOFT

protected void Save_DataGrid_PageIndexChanged(object

DataGridPageChangedEventArgs e)

{

Save_tPageIndex = eIndex;

Datalist();

}

source,

图7-4 用户下载图

24 ROOLSOFT

7.4 聊天界面设计

图7-5 进入聊天程序后的界面图

用户在文本输入区域内输入相关文字信息后,单击发送,可以将文本区域内的输入内容显示到聊天程序界面上。

25 ROOLSOFT

7.5 用户个性输入字体设计

图7-6 用户个性输入字体图

26 ROOLSOFT

7.6 用户表情设计

图7-7 显示次时在线的用户信息图

27 ROOLSOFT

第8章 调试与维护

8.1 系统调试

无论设计者的计划多么精密、经验多么丰富,脚本错误(bug)可能在最初就使 服务器端的脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的 程序是非常重要的。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。

(1) Microsoft 脚本调试工具:

Microsoft Script Debugger 是一个功能强大的调试工具,它能迅速查找错误并对服务器端的脚本进行交互测试。Script Debugger 与 Windows Internet Explorer 3.0 版本或更新的版本一起工作。通过它,就可以:

1) 逐行运行服务器端脚本;

2) 在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值;

3) 在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令);

4) 在运行服务器端脚本时跟踪过程。

可以使用调试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本然后保存,再运行脚本。(该功能不能用于 Windows 95

或更高的版本。)

(2) 启用调试:

在开始调试服务器端脚本之前,必须首先配置 Web 服务器,使其支持

调试。在启用 Web 服务器调试之后,就可以使用下面的任一方法调试脚本:

手工打开 Microsoft 脚本调试器,调试 服务器端脚本。

使用 Internet Explorer 请求 .aspx文件。如果该文件包含错误或人为添加的停止执行语句,那么 Microsoft 脚本调试程序将自动启动,显示该脚本,并且指出错误来源。

1) 脚本错误

28 ROOLSOFT

调试服务器端脚本时,可能会碰到各种类型的错误。其中的某些错误使脚本无法正确执行程序停止执行或返回错误结果。

2) 语法错误

语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。例如,命令拼写错误或传递给函数的参数不正确都将产生错误。语法错误可能导致您的脚本不能运行。

3) 运行时错误

运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。必须纠正导致运行时错误的错误,这样才能使脚本在运行时不被中断。

4) 逻辑错误

逻辑错误通常可能是潜在和难以检测的。如果有因键入错误或程序逻辑流程错误引起的逻辑错误,脚本可能会成功运行,但产生的结果却是错的。例如,一服务器端脚本计划对一个值列表排序,如果本应使用 “<” 符号比较数值,但却使用了“ >”

符号,那么将返回不正确的排序结果。

(3) 错误调试技术

可以使用多种不同的调试技术来查找错误的根源并测试应用程序。

1) 实时 (Just-In-Time, JIT) 调试

当一个运行时错误中断了 脚本的执行时,Microsoft 脚本调试程序自动启动,显示 .aspx 文件,将语句指针指向导致错误的行,并产生错误消息。这种调试方式称为实时 (JIT) 调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚本。

2) 断点调试

当一个错误发生并且很难找到错误的根源时,可使用预设断点的调试方法。断点将脚本暂停在特定一行。可以在脚本中有疑问处设置一个或多个不同的断点,然后使用调试器去改正脚本中设置的变量或属性的值。当纠正这些错误之后,可以清除断点以便脚本能不间断地运行。请用 Microsoft 脚本调试程序打开脚本,设置断点。然后

29 ROOLSOFT

用 Web 浏览器请求此脚本。当执行到脚本中含有断点的行时,计算机启动脚本调试程序,并且语句指针会指在设置了断点的行上。

3) VBScript Stop 语句调试器

通过在服务器端脚本中有问题的部分前面插入 Stop 语句,也可以将断点添加到用 VBScript 编写的服务器端脚本中。当在请求 Web 浏览器使用的先前的脚本时,调试程序启动并自动显示 .aspx文件,而且语句指针会指示 Stop 语句的位置。一定要记住从交付使用的 .aspx文件中删除 Stop 语句。

(4) 用 JScript Debugger 语句调试

要将断点加到用 Microsoft JScript 编写的服务器端脚本中,可在有疑问的行前插入 debugger 语句。例如,下面的脚本包含了 debugger 语句,每次脚本循环到一个新值时,就会中断执行并自动启动 Microsoft 脚本调试程序。不要混淆 debugger 语句和 JScript break 语句。在程序执行期间,break 语句仅退出当前循环,并不激活Microsoft 脚本调试器,也不暂停程序的执行。除脚本调试程序外,一套好的调试技巧也能减少花费在分析脚本错误根源上的大量时间。尽管大部分错误是由显而易见的根源导致的,但命令拼写错误或丢失变量、某种类型的逻辑和执行错误也可能因不太明显的根源所致。

8.2 系统维护

千万不要轻视正确配置安全设置的重要性。如果不正确配置安全设置,不但会使

应用程序遭受不必要的篡改,而且会妨碍正当用户访问 . 文件。Web

服务器提供了各种方法来保护 应用程序免受未授权的访问和篡改。

(1) NTFS 权限

可以通过为单独的文件和目录应用 NTFS 访问权限来保护 应用程序文件。NTFS 权限是 Web 服务器安全性的基础,它定义了一个或一组用户访问文件和目录的不同级别。当拥有 Windows NT 有效帐号的用户试图访问一个有权限限制的文件时,计算机将检查文件的 访问控制表 (ACL)。该表定义了不同用户和用户组所被赋予的权限。如果用户的帐号具有打开文件的权限,计算机则允许该用户访问文件。例如,Web 服务器上的 Web 应用程序的所有者需要有“更改”权限来查看、

30 ROOLSOFT

更改和删除应用程序的 . 文件。但是,访问该应用程序的公共用户应仅被授予“只读”权限,以便将其限制为只能查看而不能更改应用程序的 Web 页。

(2) 维护 的安全

为了充分保护 应用程序,一定要在应用程序的 文件上为适当的用户或用户组设置 NTFS 文件权限。如果 包含向浏览器返回信息的命令而没有保护 文件,则信息将被返回给浏览器,即便应用程序的其他文件被保护。

(3) Web 服务器权限

可以通过配置的 Web 服务器的权限来限制所有用户查看、运行和操作

页方式。不同于 NTFS 权限提供的控制特定用户对应用程序文件和目录的访问方式,Web 服务器权限应用于所有用户,并且不区分用户帐号的类型。对于要运行的 应用程序的用户,在设置 Web 服务器权限时,必须遵循下列原则:对包含 . 文件的虚拟目录允许“读”或“脚本”权限。对 . 文件和其他包含脚本的文件(如 .htm 文件等)所在的虚目录允许“读”和“脚本”权限。 对包含 .

文件和其他需要“执行”权限才能运行的文件(如 .exe 和 .dll 文件等)的虚目录允许“读”和“执行”权限。

(4) Cookie 安全性

使用 SessionID cookie 跟踪应用程序访问或会话期间特定的 Web 浏览器的信息。这就是说,带有相应的 cookie 的 HTTP 请求被认为是来自同一 Web浏览器。Web 服务器可以使用 SessionID cookies 配置带有用户特定会话信息 应用程序。例如,如果应用程序一个允许用户选择和购买 CD 唱盘的联机音乐商店,就可以用 SessionID 跟踪用户。

31 ROOLSOFT

结 论

在本次毕业设计中,我通过自己动手,设计了一个功能较为完善的网络聊天程序。在设计过程中,我查阅了大量有关资料、与同学交流经验、自学、并向老师请教等方式使自己学到了不少有关知识,并大大地提高了动手能力。使我充分体会到了在创造过程中探索的艰辛和成功的喜悦。虽然该聊天程序的功能还不是很完善,但是在设计过程中所学到的东西,是这次毕业设计中我所收到的最大的收获和财富,使我终身受益。

限于条件、时间、人力等原因,这次的设计还有很多不尽如人意的地方,无法达到预期的效果。比如网页在不同的分辨率下还不能进行自适应,在线聊天程序无法以中文的用户名登录等。该聊天程序虽然达到了基本的要求,但是在一些细节方面仍需要进行改进。

今后需要改进的地方包括以下几方面:

(1) 使网页在不同的分辨率下能进行自适应;

(2) 实现注册新用户;

(3) 聊天程序的后台权限管理、安全性问题以及维护需要进一步完善。

32 ROOLSOFT

致 谢

在此,我要衷心感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长的过程中给予了我很大的帮助。

经过近几个月的忙碌,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及同学们的支持,想要完成这个设计是难以想象的。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。

这次做毕业设计的经历也会使我受益良多,我感受到做毕业设计是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。不积跬步何以至千里。

本设计能够顺利的完成,要特别感谢帮助我完成毕业设计的指导老师的关怀和教导,他对我的毕业设计提出了很多的建议,还给我提供了大量的资料。他严谨的治学态度、诲人不倦的教学作风给我留下了深刻的印象。此外还要感谢各位任课老师,正是他们平时的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业设计工作顺利完成,在此向全体老师表示由衷的谢意,感谢他们多年来的辛勤栽培。

33 ROOLSOFT

参 考 文 献

1 肖金绣.3.0动态网页培训教材.北京:冶金工业出版,2001.

2 郝旱勇、孙久文.疯狂站长之.北京:中国水利水电出版社

3 蔡丹娟等.利用轻松实现WEB的动态交互访问.北京:计算机应用研究,1999.

4 汪晓平.网络开发技术.北京:人民邮电出版社, 2000.

5 风信子. JavaScript最新网页制作.北京:人民邮电出版社

6 罗娟主编. WEB与数据库技术.吉林: 计算机工程,2000.

7 飞思科技产品研发中心.Dreamweaver 4 标准培训教程.北京:电子工业出版社,2001.

8 马骏、郑逢斌、沈夏炯.C#网络应用高级编程.北京:人民邮电出版社,2009.

9 陈国才.项目开发案例教程.北京:化学工业出版社,2010.

10 李琳.C#程序设计(第二版).北京:清华大学出版社,2007.

34 ROOLSOFT

附录A 译文

概述

是一个统一的 Web 开发模型,它包括您使用尽可能少的代码生成企业级 Web 应用程序所必需的各种服务。 作为 .NET Framework 的一部分提供。当您编写 应用程序的代码时,可以访问 .NET Framework 中的类。您可以使用与公共语言运行库 (CLR) 兼容的任何语言来编写应用程序的代码,这些语言包括 Microsoft Visual Basic、C#、JScript .NET 和 J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的 应用程序。

包括: 页和控件框架 、 编译器 、安全基础结构 、状态管理功能 、应用程序配置 、运行状况监视和性能功能 、调试支持 、XML Web services

框架 、可扩展的宿主环境和应用程序生命周期管理 、可扩展的设计器环境。

(1)页和控件框架

页和控件框架是一种编程框架,它在 Web 服务器上运行,可以动态地生成和呈现 网页。可以从任何浏览器或客户端设备请求 网页, 会向请求浏览器呈现标记(例如 HTML)。通常,您可以对多个浏览器使用相同的页,因为 会为发出请求的浏览器呈现适当的标记。但是,您可以针对诸如 Microsoft Internet Explorer 6 的特定浏览器设计 网页,并利

35 ROOLSOFT

用该浏览器的功能。 支持基于 Web 的设备(如移动电话、手持型计算机和个人数字助理 (PDA))的移动控件。

网页是完全面向对象的。在 网页中,可以使用属性、方法和事件来处理 HTML 元素。 页框架为响应在服务器上运行的代码中的客户端事件提供统一的模型,从而使您不必考虑基于 Web 的应用程序中固有的客户端和服务器隔离的实现细节。该框架还会在页处理生命周期中自动维护页及该页上控件的状态。

使用 页和控件框架还可以将常用的 UI 功能封装成易于使用且可重用的控件。控件只需编写一次,即可用于许多页并集成到 网页中。这些控件在呈现期间放入 网页中。

页和控件框架还提供各种功能,以便可以通过主题和外观来控制网站的整体外观和感觉。可以先定义主题和外观,然后在页面级或控件级应用这些主题和外观。

除了主题外,还可以定义母版页,以使应用程序中的页具有一致的布局。一个母版页可以定义您希望应用程序中的所有页(或一组页)所具有的布局和标准行为。然后可以创建包含要显示的页特定内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并,产生将母版页的布局与内容页中的内容组合在一起的输出。

(2) 编译器

所有 代码都经过了编译,可提供强类型、性能优化和早期绑定以及其他优点。代码一经编译,公共语言运行库会进一步将 编译为本机代码,从而提供增强的性能。

包括一个编译器,该编译器将包括页和控件在内的所有应用程序组件编译成一个程序集,之后 宿主环境可以使用该程序集来处理用户请求。

(3)安全基础结构

除了 .NET 的安全功能外, 还提供了高级的安全基础结构,以便对用户进行身份验证和授权,并执行其他与安全相关的功能。您可以使用由 IIS 提供的Windows 身份验证对用户进行身份验证,也可以通过您自己的用户数据库使用 Forms 身份验证和 成员资格来管理身份验证。此外,可以使用Windows 组或您自己的自定义角色数据库(使用 角色)来管理 Web 应用

36 ROOLSOFT

程序的功能和信息方面的授权。您可以根据应用程序的需要方便地移除、添加或替换这些方案。

始终使用特定的 Windows 标识运行,因此,您可以通过使用 Windows

功能(例如 NTFS 访问控制列表 (ACL)、数据库权限等等)来保护应用程序的安全。

(4)状态管理功能

提供了内部状态管理功能,它使您能够存储页请求期间的信息,例如客户信息或购物车的内容。您可以保存和管理应用程序特定、会话特定、页特定、用户特定和开发人员定义的信息。此信息可以独立于页上的任何控件。

提供了分布式状态功能,使您能够管理一台计算机或数台计算机上同一应用程序的多个实例的状态信息。

(5) 配置

通过 应用程序使用的配置系统,可以定义 Web 服务器、网站或单个应用程序的配置设置。您可以在部署 应用程序时定义配置设置,并且可以随时添加或修订配置设置,且对运行的 Web 应用程序和服务器具有最小的影响。 配置设置存储在基于 XML 的文件中。由于这些 XML 文件是 ASCII 文本文件,因此对 Web 应用程序进行配置更改比较简单。您可以扩展配置方案,使其符合自己的要求。

(6)运行状况监视和性能功能

包括可监视 应用程序的运行状况和性能的功能。使用 运行状况监视可以报告关键事件,这些关键事件提供有关应用程序的运行状况和错误情况的信息。这些事件显示诊断和监视特征的组合,并在记录哪些事件以及如何记录事件等方面提供了高度的灵活性。

支持两组可供应用程序访问的性能计数器:

系统性能计数器组

应用程序性能计数器组

(7)调试支持

利用运行库调试基础结构来提供跨语言和跨计算机调试支持。可以调试托管和非托管对象,以及公共语言运行库和脚本语言支持的所有语言。

此外, 页框架提供使您可以将检测消息插入 网页的跟踪模

37 ROOLSOFT

式。

(8)XML Web Services 框架

支持 XML Web services。XML Web Services 是包含业务功能的组件,利用该业务功能,应用程序可以使用 HTTP 和 XML 消息等标准跨越防火墙交换信息。XML Web services 不用依靠特定的组件技术或对象调用约定。因此,用任何语言编写、使用任何组件模型并在任何操作系统上运行的程序,都可以访问 XML Web

Services。

(9)可扩展的宿主环境和应用程序生命周期管理

包括一个可扩展的宿主环境,该环境控制应用程序的生命周期,即从用户首次访问此应用程序中的资源(例如页)到应用程序关闭这一期间。虽然

依赖作为应用程序宿主的 Web 服务器 (IIS),但 自身也提供了许多宿主功能。通过 的基础结构,您可以响应应用程序事件并创建自定义

HTTP 处理程序和 HTTP 模块。

(10)可扩展的设计器环境

中提供了对创建 Web 服务器控件设计器(用于可视化设计工具,例如 Visual Studio)的增强支持。使用设计器可以为控件生成设计时用户界面,这样开发人员可以在可视化设计工具中配置控件的属性和内容。

1. 网页概述

可以使用 网页作为 Web 应用程序的可编程用户接口。 网页在任何浏览器或客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。 网页有下列特点:

基于 Microsoft 技术。在该技术中,在服务器上运行的代码动态地生成到浏览器或客户端设备的网页输出。

兼容所有浏览器或移动设备。 网页自动为样式、布局等功能呈现正确的、符合浏览器的 HTML。此外,您还可以将 网页设计为在特定浏览器(如 Microsoft Internet Explorer 6)上运行并利用浏览器特定的功能。

兼容 .NET 公共语言运行时所支持的任何语言,其中包括Microsoft

Visual Basic、Microsoft Visual C#、Microsoft J# 和 Microsoft JScript .NET。

38 ROOLSOFT

基于 Microsoft .NET Framework 生成。它提供了 Framework 的所有优点,包括托管环境、类型安全性和继承。

具有灵活性,因为您可以向它们添加用户创建的控件和第三方控件。

网页的组件

在 网页中,用户界面编程分为两个部分:可视组件和逻辑。如果您以前使用过类似于 Visual Basic 和 Visual C++ 的工具,您将认同在页的可视部分和页后与之交互的代码之间存在这样一种划分。

可视元素由一个包含静态标记(例如 HTML 或 服务器控件或两者)的文件组成。 网页用作要显示的静态文本和控件的容器。

网页的逻辑由代码组成,这些代码由您创建以与页进行交互。代码可以驻留在页的 script 块中或者单独的类中。如果代码在单独的类文件中,则该文件称为“代码隐藏”文件。代码隐藏文件中的代码可以使用 Visual Basic、Visual C#、Visual J# 或 JScript .NET 编写。

网页编译为动态链接库 (.dll) 文件。用户第一次浏览到 .aspx 页时, 自动生成表示该页的 .NET 类文件,然后编译此文件。.dll 文件在服务器上运行,并动态生成页的 HTML 输出。

网页帮助您完成哪些任务

Web 应用程序编程带来了一些特殊的难题,在对传统的基于客户端的应用程序进行编程时,通常不会遇到这些难题。这些难题包括:

实现多样式的 Web 用户界面:使用基本的 HTML 功能来设计和实现用户接口既困难又费事,特别是在页具有复杂布局且包含大量动态内容和功能齐全的用户交互对象时。

客户端与服务器的分离:在 Web 应用程序中,客户端(浏览器)和服务器是不同的程序,它们通常在不同的计算机(甚至不同的操作系统)上运行。因此,共同组成应用程序的这两个部分仅共享很少的信息;它们可以进行通信,但通常只交换很小块的简单信息。

无状态执行:当 Web 服务器接收到对某页的请求时,会找到该页,对其进行处理,将其发送到浏览器,然后丢弃所有页信息。如果用户再次请求同一页,服务器则会重复整个过程:从头开始对该页进行重新处理。换言之,服务器不会记忆它已处

39 ROOLSOFT

理的页 - 页是无状态的。因此,如果应用程序需要维护有关某页的信息,其无状态的性质就成为了一个问题。

未知的客户端功能:在许多情况下,Web 应用程序可供许多使用不同浏览器的用户进行访问。浏览器具有不同的功能,因此很难创建将在所有浏览器上都同样正常运行的应用程序。

数据访问方面的复杂性:对位于传统 Web 应用程序中的数据源进行读取和写入非常复杂,并且会消耗大量资源。

可缩放性方面的复杂性:在许多情况下,由于应用程序的不同组件之间缺乏兼容性,导致用现有方法设计的 Web 应用程序未能实现可伸缩性的目标。对于发展周期较短的应用程序,这往往是一个常见的导致失败的方面。

若要解决这些 Web 应用程序的难题,可能需要大量的时间和精力。 网页和 页框架通过以下几个方面来处理这些难题:

直观、一致的对象模型: 页框架提供了一种对象模型,它使您能够将窗体当作一个整体,而不是分离的客户端和服务器模块。在此模型中,您可以通过比在传统 Web 应用程序中更为直观的方式来对页进行编程,其中包括能够设置页元素的属性和响应事件。此外, 服务器控件是基于 HTML 页的物理内容以及浏览器与服务器之间的直接交互的一种抽象模型。通常,您可以按照在客户端应用程序中使用控件的方式使用服务器控件,而不必考虑如何创建 HTML 来显示和处理控件及其内容。

事件驱动的编程模型: 网页为 Web 应用程序带来了一种您熟悉的模型,该模型用于为客户端或服务器上发生的事件编写事件处理程序。 页框架对此模型进行了抽象,使捕获客户端上的事件、将其传输到服务器并调用适当方法等操作的基础机制都是自动的,并对于您都是不可见的。这样就得到了一个清晰的、易于编写的、支持事件驱动开发的代码结构。

直观的状态管理: 页框架会自动处理页及其控件的状态维护任务,它使您能够以显式方式维护应用程序特定信息的状态。这种状态管理无需使用大量服务器资源即可实现,而且可以通过向浏览器发送 Cookie 来实现,也可以不通过向浏览器发送 Cookie 来实现。

40 ROOLSOFT

独立于浏览器的应用程序: 页框架允许您在服务器上创建所有应用程序逻辑,而无需针对浏览器之间的差异进行显式编码。但是,它仍允许您利用浏览器特定的功能,方法是通过编写客户端来提供增强的性能和更丰富的客户端体验。

.NET Framework 公共语言运行时支持: 页框架是在.NET Framework

的基础上生成的,因此整个框架可用于任何 应用程序。您的应用程序可以用与运行时兼容的任何语言编写。此外,数据访问通过 .NET Framework提供的数据访问基础结构(包括 )得到了简化。

.NET Framework 可缩放服务器性能: 页框架使您能够将 Web 应用程序从一台只装有一个处理器的计算机有效地缩放到多计算机“网络场”,并且无需对应用程序的逻辑进行复杂的更改。

2. 编译概述

为了使用应用程序代码为用户提出的请求提供服务, 必须首先将代码编译成一个或多个程序集。程序集即文件扩展名为 .dll 的文件。您可以采用多种不同的语言来编写 代码,如 Visual Basic、C#、J# 和其他语言。当在编译代码时,会将代码翻译成一种名为 Microsoft 中间语言 (MSIL) 的与语言和 CPU 无关的表示形式。运行时,MSIL 将运行在 .NET Framework 的上下文中,.NET Framework会将 MSIL 翻译成 CPU 特定的指令,以便计算机上的处理器运行应用程序。

编译应用程序代码具有许多好处,其中包括:

性能:编译后的代码的执行速度要比诸如 ECMAScript 或 VBScript 的脚本语言快得多,因为它是一种更接近于机器代码的表示形式,并且不需要进行其他分析。

安全性:编译后的代码要比非编译的源代码更难进行反向工程处理,因为编译后的代码缺乏高级别语言所具有的可读性和抽象。此外,模糊处理工具增强了编译后的代码对抗反向工程处理的能力。

稳定性:在编译时检查代码是否有语法错误、类型安全问题以及其他问题。通过在生成时捕获这些错误,可以消除代码中的许多错误。

互操作性:由于 MSIL 代码支持任何 .NET 语言,因此您可以在代码中使用最初用其他语言编写的程序集。例如,如果您正在用 C# 编写 网页,您可以添加对使用 Visual Basic 编写的 .dll 文件的引用。

41 ROOLSOFT

编译结构包括许多功能,其中包括: 多语言支持、自动编译、灵活部署、可扩展生成系统。

以下各节逐个说明这些功能。

多语言支持:在 2.0 中,您可以在同一个应用程序中使用不同的语言(如 Visual Basic 和 C#),这是因为 将为每一种语言分别创建一个程序集。对于存储在 App_Code 文件夹中的代码,您可以为每种语言指定一个子文件夹。

自动编译:当用户首次请求网站的资源时, 将自动编译应用程序代码和任何依赖资源。通常, 为每个应用程序目录(如 App_Code)创建一个程序集,并为主目录创建一个程序集。(如果一个目录中的文件是用不同编程语言编写的,将为每种语言分别创建程序集。)可以在 文件的 Compilation 节指定将哪些目录编译成单个程序集。

灵活部署:因为 在首次用户请求时编译网站,所以您只需将应用程序源代码复制到成品 Web 服务器上即可。不过, 还提供了预编译选项,通过这些选项,您可以在部署网站之前先进行编译,或者在部署网站之后、但在用户请求该网站之前进行编译。预编译有若干优点。由于 编译网站时不存在延迟时间,因而预编译可以改进首次请求时网站的性能。预编译还能帮您找到不然只有当用户请求页时才能找到的错误。最后,如果在部署网站之前预编译网站,则可以部署程序集,而不必部署源代码。

可以使用 编译器工具 (ASPNET_) 预编译网站。该工具提供下列预编译选项:

就地编译:此选项执行与动态编译期间发生的相同编译过程。可以使用此选项编译已经部署到成品服务器的网站。

不可更新完全预编译:可以使用此选项来编译应用程序,然后将编译后的输出复制到成品服务器。所有应用程序代码、标记和用户界面代码都将编译为程序集。占位符文件(如 .aspx 页)仍存在,因此您可以执行某些文件特定的任务(如设置权限),但文件中不包含可更新的代码。为了更新任何页或任何代码,您必须再次预编译并再次部署网站。

可更新的预编译:该选项类似于“不可更新完全预编译”,不同之处在于用户界面元素(如 .aspx 页和 .ascx 控件)保留其所有标记、用户界面代码和内联代码(如

42 ROOLSOFT

果有的话)。您可以在部署之后更新文件中的代码; 将检测对文件所做的这些更改并重新进行编译。请注意,预编译期间代码隐藏文件(.vb 或 .cs 文件)中的代码都将内置到程序集中,因此如果不重新执行预编译和部署步骤,您将无法更改这些代码。

可扩展生成系统: 使用 BuildProvider 类来生成项,如 .aspx 页、.ascx文件和全局资源。您可以通过创建从 BuildProvider 类继承的类,来扩展和自定义 生成系统,以编译自定义资源。例如,您可以添加新的文件类型,然后编写生成该特定类型的 BuildProvider。

3. 保证 网站的安全

安全性是 Web 应用程序中一个非常重要的方面。本节中的主题提供有关 Web 应用程序中出现的安全问题的背景信息,其中包括有关如何减少常见的安全威胁、如何保护 Web 应用程序中的资源以及如何对单个用户进行身份验证和授权的信息。

1) Web 应用程序安全性:提供 中有关安全基础结构、 身份验证功能、授权和进程模拟的信息。

2) 使用成员资格管理用户:提供有关可用于生成登录页及对用户进行身份验证的 控件和工具的信息。

3) 使用角色管理授权:提供有关如何授予不同的用户权限以在应用程序中执行不同任务的信息。

4) 使用受保护的配置加密配置信息:提供有关如何使用加密对应用程序配置文件中所存储的信息(如连接字符串等)进行保护的信息。

5) 演练:通过角色管理网站用户:引导您创建一个 Web 应用程序,用来向用户分配角色以限制其网站使用权限。

6) 演练:创建具有成员资格和用户登录功能的网站:引导您创建要求用户登录的网站。

7) Windows Communication Foundation 身份验证服务概述:描述如何使用

Windows Communication Foundation (WCF) 来验证网站用户的身份。Windows

Communication Foundation 角色服务概述:描述如何使用 WCF 为网站提供角色服务。

43 ROOLSOFT

附录B 外文原文

Overview

is a unified Web development model that includes the services necessary

for you to build enterprise-class Web applications with a minimum of coding. is

part of the .NET Framework, and when coding applications you have access to

classes in the .NET Framework. You can code your applications in any language

compatible with the common language runtime (CLR), including Microsoft Visual Basic,

C#, JScript .NET, and J#. These languages enable you to develop applications

that benefit from the common language runtime, type safety, inheritance, and so on.

includes:

A page and controls framework

The compiler

Security infrastructure

State-management facilities

Application configuration

Health monitoring and performance features

Debugging support

An XML Web services framework

Extensible hosting environment and application life cycle management

An extensible designer environment

(1)Page and Controls Framework

The page and controls framework is a programming framework that runs on

a Web server to dynamically produce and render Web pages. Web

pages can be requested from any browser or client device, and renders markup

(such as HTML) to the requesting browser. As a rule, you can use the same page for

multiple browsers, because renders the appropriate markup for the browser

44 ROOLSOFT

making the request. However, you can design your Web page to target a specific

browser, such as Microsoft Internet Explorer 6, and take advantage of the features of that

browser. supports mobile controls for Web-enabled devices such as cellular

phones, handheld computers, and personal digital assistants (PDAs).

Web pages are completely object-oriented. Within Web pages you

can work with HTML elements using properties, methods, and events. The page

framework removes the implementation details of the separation of client and server

inherent in Web-based applications by presenting a unified model for responding to client

events in code that runs at the server. The framework also automatically maintains the state

of a page and the controls on that page during the page processing life cycle..

The page and controls framework also enables you to encapsulate common

UI functionality in easy-to-use, reusable controls. Controls are written once, can be used in

many pages, and are integrated into the Web page that they are placed in during

rendering.

The page and controls framework also provides features to control the

overall look and feel of your Web site via themes and skins. You can define themes and

skins and then apply them at a page level or at a control level.

In addition to themes, you can define master pages that you use to create a consistent

layout for the pages in your application. A single master page defines the layout and

standard behavior that you want for all the pages (or a group of pages) in your application.

You can then create individual content pages that contain the page-specific content you

want to display. When users request the content pages, they merge with the master page to

produce output that combines the layout of the master page with the content from the

content page.

(2) Compiler

All code is compiled, which enables strong typing, performance

optimizations, and early binding, among other benefits. Once the code has been compiled,

the common language runtime further compiles code to native code, providing

improved performance.

45

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689308734a228449.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信