什么是Code-Behind技术

什么是Code-Behind技术 - aspnetshop的日志 - 网易博客

http://blog.163.com/aspnetshop@126/blog/static/1731313352009630115813369/


----------------------------

什么是Code-Behind技术  

Code-Behind技术的理解。
【出现频率】
★★★★☆
【解答】
将ASP.NET程序需要呈现的一个网页分为*.aspx和*.cs这两个文件,即代码分离技术,实现了HTML代码和服务器逻辑代码的分离,这样更方便于代码编写、整理及调试。
【分析】
本题考查面试者对Code-Behind技术的理解,只要有ASP.NET程序开发的经验,都可以很轻松地回答该问题。ASP.NET程序可以理解为网站目录中的页面文件以及GAC中的代码库,ASP.NET技术最终生成的网页可以用如下两种方式创建。
1.传统的单文件页面模型
该方法类似于传统的ASP程序,将服务器端代码和HTML、CSS、JavaScript等前台网页技术的代码混合编写,以单个*.aspx文件的形式存在。服务器端的代码编写方法也有两种,如以下代码所示。
方法一:
<script runat="server" type="text/C#">
protected void Page_Load(object sender, EventArgs e)
{
string hello;
hello = "Hello,World!";
Response.Write(hello);
}        
</script>
方法二:
<%
string hello;
hello = "Hello,World!";
Response.Write(hello); 
%>
第1种方法类似于网页前台的客户端脚本(如浏览器端的JavaScript、VBScript)编写方式,不过ASP.NET的服务端代码和脚本代码有本质的区别。在<script>脚本块声明中标注“runat”属性为“server”,即服务端运行,而JavaScript、VBScript之类的脚本语言编写前台程序时,运行于浏览器端(在ASP中,也可以运行于服务端)。并在“type”属性中注明了编写语言为C#(也可以为VB),即程序代码块为托管语言编写,并不是解释性的脚本语言。该方法中的代码包含了该页面实例所属类的类体代码,如各种事件处理方法,类中的字段声明及属性等内容。这种方法编写的代码块为了和HTML相关的前台代码分开,习惯上编写于HTML代码前面,即<html>标签前面。
说明:WEB标准的页面(即XHTML)中,应该将服务端代码块编写于<!DOCTYPE>标签前面。
第2种方法为ASP.NET的嵌入式代码块,主要用于保留传统的ASP代码编写习惯。一般情况下,将嵌入式代码块用于复杂的编程逻辑并不是最佳做法,因为当页中的代码与标记混合时,很难进行调试和维护。此外,由于代码仅在呈现页的过程中执行,因此与将代码置于适当的页处理阶段以执行后台代码或脚本块代码相比,其灵活性大大降低。
2.Code-Behind技术创建的多文件模型
Code-Behind技术也成为代码隐藏技术,该方法是VS中WEB应用程序模板的默认方式,即每个ASP.NET中的网页都由*.aspx和*.cs这两个文件构成。假设指定网页为Index.aspx,在Index.aspx文件中原则上仅仅编写前台的代码(如HTML、CSS和JavaScript)和服务端控件代码,必要时也可以编写少量其他服务端代码,如数据绑定等。而ASP.NET代码中的业务逻辑部分则完全编写于对应的Index.aspx..cs文件中,该文件即为网页所属的类(System.Web.UI.Page类的派生类)的分部类,是主要的逻辑代码(如页面中控件以及页面本身的事件处理方法定义)。除此之外,这个网页还可能由其他文件组成,如VS 2008的WEB项目模板自动生成的Index.aspx.designer.cs文件,该文件实质上仍然是一个*.cs文件,其内容为VS 2008自动生成的控件变量声明及相关代码。这种方法就是Windows窗体编程在.NET程序中的创建方式,VS 2008生成的所有代码被放置在Index.aspx.designer.cs文件的页面分部类(编译时该类与Index.aspx.cs中的分部类合并)中,从而使计算机生成的代码和编程者代码实现完全的分离。
说明:组成Index.aspx网页的*.cs文件将被编译为*.dll文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值