代码改变世界

codebehand 技术

2009-06-30 10:26  .金楽.  阅读(212)  评论(2编辑  收藏  举报
昨天看了ms上的介绍,感觉挺易懂的,分享一下大家看看。
根据 MS 的推荐,一般说来,Web 窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。其中每一部分都存储在一个单独的文件中。可视元素在一个 .aspx 文件中创建,而代码位于一个单独的类文件中,该文件称作代码隐藏类文件(.aspx.vb 或 .aspx.cs)。

CodeBehind 就是用于指定包含与页关联的类的已编译文件的名称。默认的,如果在 Visual Studio.Net 中创建名为 WebForm1 的 Web 窗体页,对于 Visual Basic,设计器将指定 Codebehind 属性值为 WebForm1.aspx.vb,对于 C# 则为 WebForm1.aspx.cs。该属性不能在运行时使用。

虽然一个 Web 窗体页由两个单独的文件组成,但这两个文件在应用程序运行时形成了一个整体。项目中所有 Web 窗体的代码隐藏类文件都被编译成动态链接库 (.dll) 文件。Web 窗体 .aspx 页文件也会被编译,但编译的方式稍有不同。当用户第一次浏览到 .aspx 页时,ASP.NET 自动生成表示该页的 .NET 类文件,并将其编译成另一个 .dll 文件。为 .aspx 页生成的类从被编译成项目 .dll 文件的代码隐藏类继承。

只要 Web 窗体页受到请求,此 .dll 文件就会在服务器上运行。在运行时,此 .dll 文件通过动态创建输出并将其发送回浏览器或客户端设备来处理传入请求和响应。

在 ASP.NET Page 类模型中,整个 Web 窗体页实际上是一个可执行程序,该程序生成将被发送回浏览器或客户端设备的输出。


当系统为 Web 窗体页创建页和类文件时,它将生成从基 Page 类继承的代码。例如,如果创建新的 Web 窗体页并将其命名为 WebPage1,则会从 System.Web.UI.Page 派生一个名为 WebPage1 的新类。

.aspx 页文件又从派生的 WebPage1 类继承。下图阐释了基 Page 类、派生的类文件和 .aspx 文件的关系。