visualc#程序设计应用第7章.ppt
《visualc#程序设计应用第7章.ppt》由会员分享,可在线阅读,更多相关《visualc#程序设计应用第7章.ppt(47页珍藏版)》请在三一办公上搜索。
1、第7章 ASP.NET创建Web应用程序,第7章 ASP.NET创建Web应用程序,【本章导读语】ASP.NET 是一种用于创建动态 Web 应用程序的技术,其程序可以在互联网上通过Web运行。ASP.NET 是.NET Framework 的一部分;因此可以采用大多数与.NET 兼容的语言编写 ASP.NET 应用程序,包括 Visual Basic、C#和 J#。ASP.NET的Web Forms 页面的运行和部署要经过编译,与使用脚本编写语言相比,具有更好的性能。Web Forms 允许构建强大的基于窗体的 Web 页面。构建这些Web页面时,可以使用 ASP.NET 服务器控件创建常用
2、的 UI 元素并对其进行编写代码以执行常见的任务。这些控件允许从可重用的内置或自定义组件快速构建 Web 窗体,简化页面代码程序的编写。本章将详细介绍ASP.NET构成,包括ASP.NET如何工作,ASP.NET可以完成什么任务,以及如何创建Web程序。,第7章 ASP.NET创建Web应用程序,ASP.NET Web窗体,2,ASP.NET控件,3,Web控件示例,4,7.1 ASP.NET概述,7.1.1 ASP.NET的页和控件框架,为了更好的通过网络运行应用程序,使客户端不需要安装应用,直接调用Web页面即可运行大量的应用,微软的ASP.NET专门针对Web应用开发,ASP.NET作为
3、一个统一的 Web 开发模型,使开发人员使用尽可能少的代码生成企业级 Web 应用程序所必需的各种功能与服务。ASP.NET 包含在微软的.NET Framework之中,可以访问调用.NET Framework 中的类。程序员也可以使用与公共语言运行库(CLR)兼容的任何语言来编写应用程序的代码,这些语言包括 Microsoft Visual Basic、C#、JScript.NET 和 J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的 ASP.NET 应用程序。,ASP.NET页和控件框架是一种微软的编程框架,ASP.NET 页和控件框架在Web服务器上运行,根
4、据客户端浏览器的请求动态生成Web网页,目前为止任何浏览器和客户端设备都可以向服务器端请求ASP.NET 网页。相同的ASP.NET 网页可以被多个浏览器同时调用访问,并以特定浏览器的标记形式呈现,例如HTML的形式。同时ASP.NET 网页可以利用浏览器的功能,做特定的开发设计。同时ASP.NET 还支持基于Web的各种设备,比如移动电话,手持计算机和个人数字助理PDA等的移动控件都能访问ASP.NET 网页。,7.1 ASP.NET概述,ASP.NET 网页同微软的Windows程序一样是完全面向对象的。可以在 ASP.NET 网页中使用控件、类属性、方法和事件来处理各种HTML 元素。A
5、SP.NET网页在服务器的IIS(互联网信息服务器)上运行,网页上的代码在服务器上执行后为客户端提供统一的模型,这样程序开发人员就不需要考虑基于Web的互联网程序中的客户端和服务器的实现细节,只需要专注于网页功能的实现。ASP.NET页和框架在网页的整个存在周期中自动维护页面及其页面上的所有控件的状态。与.NET的Windows程序类似,ASP.NET网页和框架也可以将用户界面的功能,或者特定的应用功能,封装成为可以重用的控件。编写的控件编译后就可以供任何ASP.NET页面编程调用,这些控件在呈现期间放入 ASP.NET 网页中。ASP.NET 页和控件框架提供了美化网页界面和控制整个网页外观
6、的功能,可以通过ASP.NET 页和控件框架定义网页的主题和外观,也可以控制页面分组及页面内的控件的主题与外观。除了页面框架主题外,ASP.NET还可以定义母版页,这样可以使Web应用程序中的所有网页具有外观一致的布局。一个母板页可以定义某个应用程序中的所有网页或者某组网页的外观布局与标准行为,母板页里面可以加载多个子网页,各个子网页在客户端请求时通过母板页合并加载,形成组合并加载。,7.1 ASP.NET概述,7.1.2 ASP.NET编译器,ASP.NET 代码需要经过编译后运行,这样可以形成提供强类型,性能优化和早期绑定等优点,公共语言运行库(CLR)会将经过编译的代码编译为本机的机器代
7、码,从而具备很好的程序性能。了使用应用程序代码执行用户提出的请求提供服务,ASP.NET 必须首先将代码编译成一个或者多个程序集才能使应用程序为多个客户端提出的请求进行服务。程序集的文件扩展名一般为.dll 的文件。因为Web应用程序可以使用多种不同的语言来编写 ASP.NET 代码,比如 Visual Basic、C#、J#和其他语言等。因此,当在编译代码时便一起首先会将代码翻译成Microsoft 中间语言(MSIL),MSIL与具体的语言和 CPU指令无关的表示形式。运行时,MSIL 将运行在.NET Framework 的上下文中,.NET Framework 会将 MSIL 翻译成
8、CPU 特定的指令,这样就可以在计算机上的处理器运行应用程序。当用户第一次请求网站上的网页及其相关的资源时,ASP.NET 会自动编译应用程序代码和这些网页需要依赖资源。一般情况下,ASP.NET 为每个应用程序目录,比如 App_Code目录等,分别创建一个程序集,并且为主目录创建一个程序集。当一个目录中的文件是用不同编程语言编写的时候,编译器将为每种语言分别创建程序集。ASP.NET 利用运行库调试基础结构来提供跨语言和跨计算机调试支持。可以调试托管和非托管对象,以及公共语言运行库和脚本语言支持的所有语言。,7.1 ASP.NET概述,7.1.3 ASP.NET安全结构,为了避免B/S结构
9、运行方式带来的网络安全威胁,ASP.NET除了 使用全部.NET 的安全功能外,还提供了更加高级的安全基础结构,包括对用户进行身份验证和授权,并执行其他与安全相关的功能。在服务器端可以使用由 IIS 提供的 Windows 身份验证对用户进行身份验证,还可以通过创建的应用程序数据库使用 ASP.NET Forms 身份验证,以及 ASP.NET 成员资格来管理身份验证。另外,还可以使用 Windows 组或用户自己的自定义角色数据库以及使用 ASP.NET 角色来管理 Web 应用程序的功能和信息方面的授权。开发者可以根据应用程序的需要方便的添加,组合或者移除这些安全结构方案。ASP.NET
10、始终使用特定的 Windows 标识运行,开发人员可以充分利用Windows 的安全功能,比如 NTFS 访问控制列表(ACL)、数据库权限等来保护应用程序的安全。,7.1 ASP.NET概述,7.1.4 状态管理功能,ASP.NET 提供了良好的内部状态管理功能,状态管理可以够存储Web网页请求期间的所有信息,例如客户提交的信息或商品信息的内容。以保存和管理应用程序会话、页河用户特定和开发人员定义的信息。这些信息可以独立于页上的任何控件。ASP.NET 提供了分布式状态功能,使应用程序能够管理一台计算机或数台计算机上同一应用程序的多个实例的状态信息。Web窗体上控件的状态信息,如文本框中输入
11、的数据、下拉列表中的选项等存储在隐藏的viewstate字段中,这个字段是服务器生成的页面的一部分,并传送给用户。后续的操作称为postback,例如触发事件,需要服务器端进行处理(如提交窗体数据,把这些信息传送回服务器)。在服务器上,这些信息用于重新填充页面对象模型,以便操作它,就像在本地进行修改一样。,7.1 ASP.NET概述,7.1.5 ASP.NET 配置 ASP.NET具备很强的扩展性和灵活性,各种ASP.NET 配置系统可以使Web应用程序更加适用与灵活。通过ASP.NET 配置系统可以定义 Web 服务器、网站或单个应用程序的配置设置。开发人员可以在部署 ASP.NET 应用程
12、序时定义配置设置,并且可以随时添加或修订配置设置。由于ASP.NET 配置设置存储在基于 XML 的文件中。因此对运行的 Web 应用程序和服务器具有最小的影响。由于这些 XML 文件是 ASCII 文本文件,因此对 Web 应用程序进行配置更改比较简单。通过可以扩展配置方案,使应用程序更加符合自己的要求。运行状况和性能监视功能 ASP.NET可以监视 ASP.NET 应用程序的运行状况和性能。开发者可以使用 ASP.NET 运行状况监视可以报告关键事件,这些关键事件提供有关应用程序的运行状况和错误情况的信息。这些事件显示诊断和监视特征的组合,并在记录哪些事件以及如何记录事件等方面提供了高度的
13、灵活性。,7.1 ASP.NET概述,7.1.7 XML Web Services 框架 ASP.NET 支持 XML Web services。XML Web services 是包含业务功能的组件,利用该业务功能,应用程序可以使用 HTTP 和 XML 消息等标准跨越防火墙交换信息。XML Web services 不用依靠特定的组件技术或对象调用约定。因此,用任何语言编写、使用任何组件模型并在任何操作系统上运行的程序,都可以访问 XML Web services。可扩展的周期管理和设计器环境 ASP.NET 有一个可扩展的宿主环境,宿主环境可以控制应用程序的生命周期,所谓应用程序的生命周
14、期是指从用户首次访问该应用程序中的资源,直到应用程序关闭这一整个过程。虽然 ASP.NET 依赖作为应用程序宿主的 Web Internet信息服务器(IIS),但是 ASP.NET 自身也提供了许多宿主功能。通过 ASP.NET 的基础结构,开发者可以响应应用程序事件并创建自定义 HTTP 处理程序以及 HTTP 模块。ASP.NET 中提供了对创建 Web 服务器控件设计器,用于可视化设计工具,例如 Visual Studio的增强支持。使用设计器可以为控件生成设计时用户界面,这样开发人员可以在可视化设计工具中配置控件的属性和内容。,返回,7.2 ASP.NET Web窗体,7.2.1 A
15、SP.NET代码模型,ASP.NET窗体同Windows窗体类似,但是,ASP.NET窗体以浏览器的浏览页面的形式出现,其上面的元素如文字、图片和其他各控件都需要网页的支持才能显示和运行。ASP.NET页面由两部分组成,第一部分使用静态文本和服务器控件组成的用户界面,第二部分是用户界面行为和服务器端代码组成的Web应用程序代码逻辑的实现。,与一般的HTML中嵌入其他开发语言脚本不同,ASPNET提供了全新的代码模型,使代码能够与外在的表示页面分离,这样开发人员能够独立的编写代码而不影响页面的框架与格式,这是ASP.NET同ASP的最重要改进之一,ASP.NET代码模型使得开发和设计团队中的分工
16、更加容易,使代码设计和视图设计分离,并增加了代码和内容的可读性和可维护性。在ASP.NET的代码模型下,有两种编辑代码的基本方法。第一种方法为只是在.aspx页面文件内包含:/在这里写客户端代码,仍然可以使用vbscript.,7.2 ASP.NET Web窗体,的脚本代码块中嵌入程序代码,这种方法被称为行内代码(inline code),部分Web程序开发工具如ASP.NET Web Matrix、Dreamweaver等软件采用的就是这种代码编写模型。第二种方法为实现从Page中派生的类,在独立的文件中保存代码并且通过Page指令把它与.aspx文件联系起来。这种形式一般称为代码分离(co
17、de-behind),这种方法也成为代码隐藏技术,Visual Studio.NET则采用是这种编写方法。无论采用那种编程模型,性能和结果基本都是一样的,均可以通过不同的编程工具,又不同的编写方法和使用习惯实现,在采用第二种方式的时候必须在使用ASP.NET的类之前,必须引入类所在的命名空间。由于ASP.NET的Web窗体的返回处理过程是基于事件驱动型的,页面自身必须提交服务器才能执行相应的代码,因此在每个Web窗体的控件布局代码必须放在HTML代码块中,才能的到执行。下面通过两个实例演示行内代码模型和在Visual Studio.NET2008实现的分离模型编。,7.2 ASP.NET We
18、b窗体,【示例】使用行内代码模型编写Web应用程序行内代码编程方法与传统的HTML方法相似,HTML代码和应用程序的功能实现代码一同保存在.aspx页面文件中,Web页面在第一次被访问时编译成Page基类,以后每次访问都是直接有该Page类生成Web页面。下面示例创建TestFile.aspx,并且在HTML代码块中写入了一段C#代码,代码先定义0到5五个数字,然后依次输出到HTML页面上,其代码清单如下:+i.ToString();%通过浏览器浏览刚创建的TestFile.aspx运行效果如图7-1所示:,7.2 ASP.NET Web窗体,图7-1 TestFile.aspx运行效果如图,
19、行内代码的ASP.NET网页代码编写方式编辑简单,采用传统的Dreamweaver、记事本、写字本等均能进行独立的编写,对于同一个Web应用程序也可以使用不同的语言进行编写,但需要注意,同一个Web页面一般只采用一种编辑语言来编写。,7.2 ASP.NET Web窗体,【示例】利用代码隐藏技术编写Web应用程序本示例使用Visual Studio.NET2008演示代码隐藏技术编写Web应用程序,VS.NET 2008中的每个Web应用程序窗体包含了三个不同的窗口:(1)设计窗口:图形化的所见即所得编辑网页方式,可以用鼠标拖动调整即可完成窗体和控件的布置和可视化效果设计;(2)HTML代码窗口
20、:在HTML代码窗口可以查看Web窗体的HTML模式下的代码,这些代码并且可以修改和编辑。在这种模式下编写HTML代码的时候,Visual Studio.NET IDE系统能提供智能提示;(3)逻辑代码窗口:逻辑代码窗口是专门用于编辑程序实现逻辑的代码的窗口,每个Web窗体都有一个对应的逻辑代码文件,有VS.NET2008自动把Web窗体的逻辑代码源引用到.aspx页面文件中。每个逻辑代码文件的名称是在对应的ASP.NET页面文件名称后再加后缀名,C语言编写的源文件加后缀名.cs。比如,新创建的应用程序中默认的Default.aspx的逻辑代码文件为Default.aspx。只需要在设计窗口中
21、双击Web窗体界面就进入了进入Web窗体的逻辑代码编辑窗口。下面的示例新建一个Web应用程序,创建后,系统默认进入了Default.aspx的设计窗口,如图7-2所示。,7.2 ASP.NET Web窗体,图7-2 Default.aspx的设计窗口,要将“设计窗口”切换到THML代码窗口,只需单击窗口底部的“源”按钮图标,即可进入了Default.aspx的HTML代码窗口,如图7-3所示。,7.2 ASP.NET Web窗体,图7-3 Default.aspx的HTML代码窗口,默认情况下的Default.aspx的所有HTML代码清单如下所示:,7.2 ASP.NET Web窗体,无标题
22、页 在中,声明了Page类使用的编程语言,CodeFile=指明该页面的逻辑代码保存在文件中。,7.2 ASP.NET Web窗体,在Default.aspx的设计窗口中,对窗体界面双击,即可进入了Default.aspx的逻辑代码窗口,即:。是创建窗体时VS.NET2008系统自动生成的,在它的代码中包括对Default.aspx中引用控件的声明和窗体设计器自动生成的代码。在窗口中编写代码时,系统提供了智能填充的功能,例如假设开发人员不知道使用类的具体名字而只知道类所在的命名空间,你只要敲出命名空间和“.”号,智能填充就会给出该命名空间中所有类名称,这对于初学C#语言者很有帮助,对提高编写代
23、码的效率也很有帮助。的窗口如图7-4所示。,图7-4 Default.aspx的逻辑代码窗口,7.2 ASP.NET Web窗体,在中,包含了Web窗体编译时必须的一些函数和相关窗体或者控件的执行代码。没有添加功能的文件代码清单如下:using System;using System.Configuration;using System.Data;using System.Linq;using System.Web;using;using;using;using;using;using;public partial class _Default:protected void Page_Load
24、(object sender,EventArgs e),7.2 ASP.NET Web窗体,上面的代码清单分为两个部分,第一部分是可能用到的命名空间的引用,使用using声明需要使用的命名空间。第二部分是用户的事件代码部分,比如:protected void Page_Load(object sender,EventArgs e)/此处添加执行代码 代码段为Web窗体加载时的事件,可以在中间添加窗体加载时需要执行的C#代码,假设需要在这个事件过程中输出一段文字,其示例代码如下:protected void Page_Load(object sender,EventArgs e)Response
25、.Write(I Love China!I Love The Great Wall!);/窗体加载时输出I Love China!I Love The Great Wall!字符串 然后按F5,Visual Studio.NET2008将编译整个Web应用程序,然后调用IE浏览器打开Default.aspx,同时也可以在Default.aspx的设计窗体中单击鼠标邮件,在弹出菜单中选择“在浏览器中查看”菜单选项,就可以直接在Visual Studio.NET的集成环境中查看Default.aspx编译后的运行效果,如图7-5所示,这个方法适合预览非默认启动窗体。当然,可以编译整个Web应用程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- visualc 程序设计 应用

链接地址:https://www.31ppt.com/p-6523070.html