上一篇:ASP.NET身份模拟 >>
选择ASP.NET代码编写策略
很多ASP开发人员并非真正经过培训的开发者,他们往往只是HTML代码编写者,他们处理的ASP模型很不合理。这些开发人员通常只知道将他们的ASP常规思维应用到ASP.NET环境中,而这个过程他们却不知做出相应的选择。
以往的缺点
我特别喜欢ASP.NET所具有的稳定性,尤其是当我在ASP开发过程处于迷惑不解的时候。我的迷惑不解来自ASP的本质,即所有操作都集中在同一个bucket,也就是说,一个ASP页既包含源代码,也包含HTML。在一个Web页中放置java script也是类似的,这通常称为内联(inline),但开发人员通常将其称为意大利面程序码(spaghetti code).
在一个开发项目中,计划和开发过程的结合没有很好地与项目任务匹配,而出现这种情况通常为Web用户界面设计者和程序开发者。允许Web开发人员查看ASP代码往往使得程序开发者感到不安,并且使Web开发人员感到迷乱。一个比较可行的方法是将设计过程分离化。
分离并改进
当提及.NET的优点时,微软都会吹嘘面向对象程序开发(OOP),而OOP特点在ASP.NET中更为显著。它通过一个背后代码文件(codebehind file)的方式允许源代码从Web markup分离开来。Web markup存储在一个.aspx文件中,并且源代码(VB.NET,C#等)存放在一个附带的代码文件中。Codebehind文件名取决于使用的开发语言,但如果我们利用VB.NET来建立一个名为TestPage的ASP.NET页,以下的文件名是合法的:
TestPage.aspx:Web markup,java script等。
TestPage.aspx.vb:包含VB.NET源代码的文件。
如果选用的是C#.NET语言,Codebehind文件将被称为TestPage.aspx.cs。Codebehind文件包含的类是来源于位于System.UI.Web空间名称的Page类。Codebehind文件与@Page标志的aspx文件及其附带文件Inherits属性进行链接。Inherits属性指向Codebehind文件和类的名称,而这一指向不需要文件扩展。
<%@ Page language="c#" Inherits="TestPage" %>
语言的特性表示了页面的语言──并不是Codebehind。页面可以通过内联(inline)代码使用一种语言和在Codebehind文件中使用的另一种语言。Inherits属性指定了页面的基本类(Codebehind类)。
在缺省情况下,Codebehind文件使用Page类作为其基本类,但也可以使用普通的类。这就提供了建立程序的主控页面(master pages)的可能性。
以Visual Studio .NET方式处理
使用Codebehind文件是Visual Studio .NET开发环境中的默认特性。例如,在ASP.NET页中建立的@Page标志具有以下的语法:
<%@ Page language="c#" Codebehind="TestPage.aspx.cs"
AutoEventWireup="false" Inherits="TestPage" %>
以上代码包含两个额外的特性:
Codebehind属性指向页面的codebehind文件。这一属性只适用于Visual Studio .NET。
AutoEventWireup属性表示标准事件是否自动地连接到代码中的任意句柄。Visual Studio .NET在处理事件建立时将这一属性设置为false。
Visual Studio .NET将codebehind文件编译成为一个可执行文件,这一可执行文件可使用于Web程序的bin目录中。这就加快了页面的载入,因为当网页首次被请求时无需再被编译。另一方面,一旦第一个客户端请示时,内联(inline)代码即被编译。
做出你自己的选择
OOP语法是分离源代码和用户界面部分的支撑者,但这也并非意味着它能适用于所有情况。分离方法依赖于不同因素(包括开发时间和专业技术),但拥有所有可能的知识可以更容易地做出决定。自从引入ASP.NET的介绍之后,关于内联(inline)和背后代码(codebehind)的话题一直处于激烈的讨论中。
下一篇:ASP.NET文件上传程序的源代码 >>
相关文章:
- · 在ASP.NET中实现弹出日历
- · ASP.NET中共用代码
- · 实现一个Asp.net自定义Back控件
- · ASP.net下的前台日历控件源代码
- · Asp.net中对象使用的实例
- · ASP.NET 链接数据库基础
- · 在ASP.NET下使用水晶报表一
- · Asp.net中对象使用的实例
- · Asp.Net中使用水晶报表(下)
- · Asp.Net中使用水晶报表(中)
- · Asp.Net中使用水晶报表(上)
- · 在vb.net中使用webbrowser控件和mshtml以及流操作体会(vb.net内嵌IE,拆取 Web 页)
- · 在ASP.NET 中实现单点登录
- · asp.net 关于form认证的一般设置
- · Asp.net中对象使用的实例
- · 解读ASP.NET 2.0 Internals
- · oracle9i连接asp.net方法及注意点
- · Asp.Net中使用水晶报表(下)
- · Asp.Net中使用水晶报表(中)
- · Asp.Net中使用水晶报表(上)
- · ASP.NET导出数据到Excel
- · ASP.net下的前台日历控件源代码(不刷新页面)
- · 用ASP.NETt实现简单的文字水印
- · 在ASP.Net中两种利用CSS实现多界面的方法.
- · 用Asp.net实现简单的文字水印
- · Asp.net 实现验证码功能的Web控件
- · ASP.NET结合存储过程写的通用搜索分页程序
- · ASP.net随机数应用实例
- · asp.NET特写
- · ASP.NET中Cookie编程简明参考
- · ASP.NET中Datagrid常见错误
- · ASP.NET中编程杀死进程
- · ASP.NET中的状态管理
- · 如何在命令行下编译一个asp.net项目
- · ASP.NET实现数据图表c
- · ASP.NET实现数据图表b
- · ASP.NET实现数据图表1
- · ASP.NET实现数据图表a
