code-Behind技术

  Code Behind就是所谓的代码分离,自从Microsoft公司推出了ASP.NET以后,Code Behind就是一个热门的话题。在一般的ASP.NET文件中,Code Behind主要是用二个文件来创建一个ASP.NET的页面,其中一个是设计文件,一般以.aspx或者.ascx做为扩展名,而另外一个是程序代码文件,一般以.vb或者.cs做为扩展名,其程序设计语言主要是VB.Net或者是C#。

  二.Code Behind优点

  用过ASP编过程序的人都知道,ASP程序是把界面设计和程序设计混合在一起的。因此当程序设计人员要修改应用程序界面布局的时候,就往往需要更改大量与界面无关的代码,对于一个小程序,工作量不是很大,如果对于代码量很大的程序,就是一项工作量不小的事情。而Code Behind把界面设计代码和程序设计代码以不同的文件分开,对于代码的重复使用,程序的调试和维护都是革命性的。还有一点是,当你发布你的网站的时候,你就可以利用这种技术来有效的保护你的代码。这对于程序的安全性是一个提高。Code Behind技术的出现有点象过去VB或者是Delphi出现一样。这也就是他为什么一出现就成为一个热门话题的原因。下面我们利用一个完整的例子来具体说明一下Code Behind技术的特点。

  三.例子的简介

  本例题的运行环境是Windows 2000 Prefessional版和.Net FrameWork SDK Beat 2。程序设计语言是c#,其主要功能是发送电子邮件。程序分成二个部分,把发送电子邮件的界面代码以mail.aspx文件保存,而发送的程序是以send.cs文件保存。

四.具体实现步骤

  1).新建一个HTML页面

  你可以使用微软的FontPage来设计你的页面的整个布局。把你的所以选项都设计到此页面中去。具体的界面如下图:

把此HTML文件命名为send.htm。具体代码如下:

<html>

<head>

 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

 <meta name="GENERATOR" content="Microsoft FrontPage 4.0">

 <meta name="ProgId" content="FrontPage.Editor.Document">

 <title>New Page 1</title>

</head>

<body>

 <h3>欢迎进入Code Behind设计界面</h3>

 <form>

  <table border="1" width="100%">

  <tr>

   <td width="100%" colspan="2">请填入下列各项:</td>

  </tr>

  <tr>

   <td width="35%">姓名</td>

   <td width="65%"><input type="text" name="Name" size="20">

   </td>

  </tr>

  <tr>

   <td width="35%">电子邮件地址</td>

   <td width="65%"><input type="text" name="Email" size="20">

   </td>

  </tr>

  <tr>

   <td width="35%">内容</td>

   <td width="65%">

     <textarea rows="7" name="Message" cols="26">

     </textarea>

   </td>

  </tr>

  <tr>

   <td width="100%" colspan="2">

    <input type="submit" value="Submit" name="B1"></td>

   </tr>

  </table>

 </form>

<p></p>

</body>

</html>

2).创建虚拟目录

  首先在"c:InetPubWWWRoot"目录下面创建一个目录为"mail",然后运行"开始>控制面板>管理工具>Internet 服务管理器>"创建虚拟目录的名称是"mail",如下图所示:3).创建内嵌代码的ASP.NET文件

  如果你已经完成了创建虚拟目录的工作,并且把send.htm文件拷贝到了此目录中,请把send.htm文件改名为send.aspx。然后用Windows自带的NotePad或者其他的文本编辑器打开此文件。

  接下来我们首先创建的是代码内嵌的ASP.NET文件,然后再把把转换成Code Behind文件。虽然创建代码内嵌的ASP.NET文件在本文的论述中是一项多余的工作,但这却方便了调试,便于理解,并且一旦你的代码内嵌的文件成功运行,再把他转换成Code Behind文件就相对容易了许多。具体步骤如下:

  A).加入页面表示

  在用文本编辑器打开文件的第一行,加入一下表示:

<%@ Page Language="C#" %>

  b).把mail.aspx中用到的Html组件转换为HtmlControls,可以借助下表来转换:

  HTML HTML Control

<form>  <form runat="server" >

<input type="text" name="Name" size="20" >  <input type="text" id="Name" name="Name" size="20" runat="server" />

<input type="text" name="Email" size="20" > <input type="text" id="Email" name="Email" size="20" runat="server" />

<textarea rows="7" name="Message" cols="26">

</textarea> <textarea rows="7" id="Message" name="Message" cols="26" runat="server">

</textarea>

<input type="submit" value="Submit" name="B1"> <input type="submit" id="B1" value="Submit" name="B1" OnServerClick="Post_Form" runat="server">

  C).加入内嵌代码

  当上面的转换完成以后,接下来就要写邮件发送的内嵌代码。发送邮件使用的是名称空间--System.Web.Mail中的一个SmtpMail 类。在SmtpMail 类中一个基本的方法--Send。此方法的成功调用需要以下四个参数:

  1).电子邮件的源地址

  2).电子邮件的目的地址

  3).电子邮件的主题

  4).电子邮件的内容

  只有具备这四个参数,Send方法就能够成功调用。对于电子邮件的发送可以参考我的以前文章《利用ASP.NET制作自己的邮件发送系统》。在此文中有具体阐述。一下代码是完整的内嵌代码:

<%@Page Language="C#" %>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<title>New Page 1</title>

<script runat="server">

protected void Post_Form(object sender, EventArgs e)

 { 

 file://Check if the Name and Email fields are filled in

 if(Name.Value!=""&&Email.Value!="")

 {

  file://Send the Mail

  System.Web.Mail.SmtpMail.Send(Email.Value,

    "[email protected]",

    "Mail From:"+Name.Value,Message.Value);

  }

 }

</script>

</head>

<body>

<h3>欢迎进入Code Behind设计界面</h3>

<form runat="server">

<table border="1" width="100%">

<tr>

<td width="100%" colspan="2">请填入下列各项</td>

</tr>

<tr>

<td width="35%">姓名</td>

<td width="65%">

<input type="text" id="Name" name="Name" size="20" runat="server" />

</td>

</tr>

<tr>

<td width="35%">电子邮件地址</td>

<td width="65%">

<input type="text" id="Email" name="Email" size="20" runat="server" />

</td>

</tr>

<tr>

<td width="35%">内容</td>

<td width="65%"><textarea rows="7" id="Message"

name="Message" cols="26" runat="server">

</textarea></td>

</tr>

<tr>

<td width="100%" colspan="2">

<input type="submit" value="Submit" id="B1" name="B1" OnServerClick="Post_Form"

runat="Server" />

</td>

</tr>

</table>

</form>

<p> </p>

</body>

</html>4).开始创建Code Behind文件

  如果上面的页面能够成功运行,接下来就要把程序代码从界面设计代码中分离出来。这要通过以下步骤来完成。

  a).创建一个.cs源程序文件

  在你的应用程序的主机的虚拟目录下建立文件名为"Send.cs",并且用文本编辑器打开此文件。

  b).拷贝脚本到send.cs程序文件

  把mail.aspx中的<script runat="server">到</script>中的所有内容(包括脚本的表示符),剪切到send.cs文件中。

  C).修改.cs文件

  必须保证send.cs文件是一个正确的c#文件,因此必须对此时的.cs文件进行必要的修改,下面列出修改前后的文件代码,比较一下二者差异:

  没有修改的C#文件,如下:

<script runat="server">

protected void Post_Form(object sender, EventArgs e)

{

 file://判断姓名和电子邮件地址是否填入

 if(Name.Value!=""&&Email.Value!="")

 {

  file://发送电子邮件

  System.Web.Mail.SmtpMail.Send(Email.Value,

    "[email protected]",

    "Mail From:"+Name.Value,Message.Value);

  }

}

</script>

  完成修改后的文件,如下:

using System;

using System.Web.UI;

using System.Web.UI.HtmlControls;

public class First:Page

{

file://声明使用的组件

protected HtmlInputControl Name, Email;

protected HtmlTextArea Message;

public void Post_Form(object sender, EventArgs e)

{

file://判断姓名和电子邮件地址是否填入

if(Name.Value!=""&&Email.Value!="")

{

file://发送电子邮件

System.Web.Mail.SmtpMail.Send(Email.Value,"[email protected]",

"Mail From:"+Name.Value,Message.Value);

}

}

}

  注释:

  第一:这种修改必须要引入必要的名称空间,在本段程序中用到的名称空间是"System","System.Web.UI"和"System.Web.UI.HtmlControls"。

  第二:用"public class First:Page {" 标识来替代 <script runat="server"> 结束的标识符</script> 用"}"来替代。

  第三:最后我们还要声明在程序中用到的组件。

  D).修改界面设计文件(mail.aspx)

  上述的工作完成以后,就要修改界面设计文件,让ASP.NET的运行环境知道在哪里装入Code Behind文件。于是就进行下列修改,修改后的代码如下:

  mail.aspx

<%@ Page Language="C#" Inherits="First" Src="send.cs" %>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<title>New Page 1</title>

</head>

<body>

<h3>欢迎进入Code Behind设计界面</h3>

<form runat="server">

<table border="1" width="100%">

<tr>

<td width="100%" colspan="2">请填入下列各项</td>

</tr>

<tr>

<td width="35%">姓名</td>

<td width="65%">

<input type="text" id="Name" name="Name" size="20" runat="server" />

</td>

</tr>

<tr>

<td width="35%">电子邮件地址</td>

<td width="65%">

<input type="text" id="Email" name="Email" size="20" runat="server" />

</td>

</tr>

<tr>

<td width="35%">内容</td>

<td width="65%"><textarea rows="7" id="Message"

name="Message" cols="26" runat="server">

</textarea></td>

</tr>

<tr>

<td width="100%" colspan="2">

<input type="submit" value="Submit" id="B1" name="B1" OnServerClick="Post_Form"

runat="Server" />

</td>

</tr>

</table>

</form>

<p> </p>

</body>

</html>

  注释:

  其中的第一句语句很重要,在这个语句中,指定了二个属性:"Inherits"和"Src"。其中"Inherits"用来识别本页面所用的类来自何处。"Src"是指定识别代码文件,这句话的意思是指定了页面所用的类名和类所在文件的来源。此时把Mail.aspx和Send.cs拷贝到"c:InetPubWWWRoot"中,打开浏览器,就可以运行程序了。

  五.总结

  Code Behind的出现使得编写功能强大Web程序成为了一件相对容易的事情,Code Behind的功能十分强大,制作又相对灵活。非常适合喜欢组件编程的朋友。

时间: 2024-10-21 18:41:35

code-Behind技术的相关文章

MaxCompute 中的Code Generation技术简介

摘要: 前言 在<数据库系统中的Code Generation技术介绍>中,我们简单介绍了一下Code Generation技术及其在大规模OLAP系统,特别是大规模分布式OLAP系统中的重要性.MaxCompute采用了Code Generation技术来提高计算效率.在MaxCompute 前言 在<数据库系统中的Code Generation技术介绍>中,我们简单介绍了一下Code Generation技术及其在大规模OLAP系统,特别是大规模分布式OLAP系统中的重要性.M

ModSecurity SQL注入攻击 – 深度绕过技术挑战

ModSecurity是一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行.ModSecurity的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击.本文主要介绍了针对开源WAF的一次渗透测试比赛中的思路. 1. 文章背景 ModSecurity SQL Injection Challenge(ModSecurity发起的一个针对开源WAF的一次渗透测试比赛

Asp.Net EF Code First 简单入门

今天在上班期间花了点时间学习了一下微软的EntityFramework Code First技术,这篇文章只是简单的入门,不多废话,下面直入主题. 一.首先添加一个解决方案,接着添加一个web网站,DataAccess类库(用于数据访问),Model类库(实体层),结构如下: 二.安装EntityFramework.通过Nuget Package Manager进行安装(如果还没有安装Nuget的,可以通过tools-extension manager进行安装),在tools-Nuget Pac

1.使用Entity Framwork框架常用的技术手段Code First 和Reverse Engineer Code First

提示:VS版本2013,  Entity Framwork版本5.0.0,Mysql数据库  使用Entity FrameWork的好处就不多说,直接上手如何使用.两种形式:1.将代码映射到数据库实体,使用的是Code First技术.2.将数据库实体转成代码,使用的是Reverse Engineer Code Fist技术. 一.Code First技术 1.建好项目,并加入一个名为CodeFirstDemo控制台应用程序项目. 2.配置.工具>>库程序包管理>>管理解决方案的N

数据传输方式、编码技术

模拟传输的主要优点是信道的利用率较高,但是传输过程中信号会衰减,会受到噪声干扰,且信号放大时噪声也会同时被放大. 数字传输的主要优点是数字信号只取离散值,信号传输不失真,误码率低等.但是传输数字信号比传输模拟信号所要求的频带要宽的多,因此数字传输的信道利用率较低?  了解不同的编码技术:数字数据的模拟信号编码.数字数据的数字信号编码和模拟数据的数字信号编码. 数字数据的模拟信号编码:这种编码方式是将数字数据调制成模拟信号进行传输通常采用三种模拟信号的载波特性(即振幅.频率和相位)之一来表示被调制

早期主流的WLAN技术(二)

4.1  802.11a IEEE 802.11a是802.11原始标准的一个修订标准,于1999年获得批准.802.11a标准采用了与原始标准相同的核心协议,工作频率为5GHz,使用52个正交频分多路复用载波,最大原始数据传输率为54Mb/s,这达到了现实网络中等吞吐量(20Mb/s)的要求.如果需要的话,数据率可降为48,36,24,18,12,9或者6Mb/s.802.11a拥有12条不相互重叠的频道,8条用于室内,4条用于点对点传输.它不能与IEEE 802.11b进行互操作,除非使用了

WiFi技术概述

1  概述 WLAN是无线局域网络的简称,全称为Wireless Local Area Networks,是一种利用无线技术进行数据传输的系统,该技术的出现能够弥补有线局域网络之不足,以达到网络延伸之目的. Wi-Fi是无线保真的缩写,英文全称为Wireless Fidelity,在无线局域网才对范畴是指"无线兼容性认证",实质上是一种商业认证,同时也是一种无线联网技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术.同蓝牙技术相比,它具备更高的传输速率,更远的传播距离,已

字符集和字符编码

1. 概述 现在的编程语言对字符串的处理一般封装比较好,所以平时编写代码,很少要自己考虑字符编码问题.以前学习xml时,由于xml的存储涉及到编码格式,查过一些资料,知道一些概念,GB2312.Unicode.Utf-8.Utf-16.UCS-2等,但这些概念之间什么关系,仍然一知半解.最近要做国际化,需要把不支持Unicode的程序升级为Unicode,借着这个机会,把其中的知识梳理了一遍,对字符编码的理解算更系统化了,在此总结一下. 2. 字符集和字符编码 首先明确两个概念,"字符集&quo

ASP.NET中进行消息处理(MSMQ) 三(转)

在本文的前两篇文章里对MSMQ的相关知识点进行了介绍,很多阅读过这前两篇文章的朋友都曾问到过这样一些问题:  1.如何把MSMQ应用到实际的项目中去呢?  2.可不可以介绍一个实际的应用实例?  3....... 在前两篇文章里,关于MSMQ常用的技术点基本介绍完毕了,本文主要以MS开源项目PetShop中的MSMQ应用作为案例来介绍MSMQ在实际项目中的应用.在PetShop里,由于系统使用了多线程的专用应用程序来监控消息队列,在进入PetShop应用分析前,我们先来了解下关于多线程和MSMQ