background image

象其他复杂的工具那样,在学会如何充分发挥它的作用和掌握其 习性 前,

Visual Studio .NET 也会使我们

  

产生一种挫折感。有时,它象一个难以了解的黑盒子,会生成大量的文件和许多无用的代码。
Visual Studio .NET 的一个功能是,无论是类、控件或表单中的对象,它都能够为新对象提供缺省名字。例
如,如果我们创建了一个新的

ASP.NET Web Application,其缺省的名字将是 WebApplication1。我们可

以在 新工程 对话框中方便地改变该应用的名字,但同时改变的只是该应用程序的名字空间的名字及其所在的虚
拟目录,源代码文件的缺省名字仍然是

WebForm1.aspx 和 WebForm1.aspx.cs(C#工程)或

WebForm1.aspx.vb(VB.NET

  

工程)。

我们可以在方案浏览器中改变

ASPX 和代码使用的文件名字,但 Web 页类的名字仍然将是 WebForm1。如果在该

Web 表单上生成一个按钮,其缺省的名字将是 Button1。事实上,所有控件的名字都是由控件的类型和数字组成

  

的。
我们能够,也应该将应用程序中所有的表单和控件的名字都修改成有意义的名字。对于较小的演示性程序而言,
缺省的名字还能够胜任,但如果应用程序由多个表单,每个表单上有许多按钮和标签时,象
frmStartup、frmDataEntry 和 frmReports 这样的表单名就比 Form1、Form2 和 Form3 这样的名字更易于

  

理解和维护。
如果表单上控件要在代码的其他地方引用,使它有一个有意义的名字就更重要了。

btnOK、btnCancel 和

btnPrint 这样的名字使看代码的人更容易理解,因而,也比名字为 Button1、Button2、Button3 这样的控

  

件更容易维护。
修改一个工程中所有文件中出现的一个名字的一个好方法是,在

Visual Studio .NET

菜单中依次选择 编

->“

发现和替换

->“

  

替换 命令。

在看二周前编写的代码时,我们经常就象第一次见到这些代码一样,因此使它们有一个有助于我们理解其含义的

  

名字是十分有必要的。

2、即使不使用 Visual Studio .NET

  

进行编程,使用代码支持文件也有利于提高应用程序的性能

Web 应用程序、Web 服务或 Web 控件等所有的 ASP.NET Web 工程中,Visual Studio .NET 都使用代码支

持文件。代码支持文件使工程具有更好的组织、模块性,更适合多人组成的开发团队。另外,它还会带来性能的

  

提高。
代码支持文件的内容被编译成一个组合文件中的类,一般是一个

DLL 文件,有时也可以是 EXE 文件。该文件驻留

  

在应用程序的组合体高速缓冲区中,在应用程序启动时,可以立即得到它。
如果代码是包含在

<script>标记中或 ASPX 文件代码中,它仍然会被编译成一个 Web 页类。在这种情况下,每当

该网页在应用程序对话中第一次加载时,都需要重新进行编译,被编译的类就会驻留在内存中。每当计算机启动、
IIS 停止、重新启动或者源代码、配置文件改变时,该文件必须重新编译。尽管不大,但这样引起的性能损耗也

  

是相当可观的。

3

  

、尽量减少表单回送

每当点击

Web 网页上的 Button、LinkButton 或 ImageButton 控件时,表单就会被发送到服务器上。如果控

件的

AutoPostBack 属性被设置为 true,如果 CheckBox、CheckBoxList 等控件的状态被改变后,也会使表

  

单会发送回服务器。
每次当表单被发送回服务器,就会被重新加载,启动

Page_Load 事件,执行 Page_Load 事件处理程序中的所有

代码。把网页的初始化代码放在这里是最合适不过的了。我们经常会希望在每次加载网页时执行一些代码,而希

  

望只有在网页第一次加载时执行另一些代码,甚至希望一些代码在除首次加载外的每次加载时执行。
可以利用

IsPostBack 特性来完成这一功能。在网页第一次加载时,该属性的值是 false。如果网页因回送而被

重新加载,

IsPostBack 属性的值就会被设置为 true。通过测试,可以在任意时候执行指定的代码。下面是相关

C#

  

代码:

protected void Page_Load(Object sender, EventArgs e)  
{  

// 

  

网页每次加载时,执行的一些操作

if (!IsPostBack)  

{  
// 

  

网页第一次加载时执行的操作

}  
else  

{  
// 

  

回送时执行的操作