Asp.net中的代码与表现分离

asp.net

.NET Framework Version 2.0出来好久了,VS 2005 beta2也有了,近段时间一直在断断续续地玩Asp.net,发现刚学不久的东西马上就得更新,不更新还真不行。

先从Asp.net中的代码与表现分离说起,这是一个非常有用的功能,特别是在team work中,我想。

在 .NET Framework Version 1.0/1.1中,微软是这么教我们代码与表现分离的:
1、首先要在.aspx文件的@Page指令中加入如下一行:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="SamplePage.aspx.vb" Inherits="SampleProject.SamplePage"%>
*注:这里的Codebehind属性换成Src属性亦可
2、在使用后台代码文件时,也就是.vb文件时,必须在后台代码中为表现文件内使用的每个控件声明实例,可以如下声明:
Protected WithEvents lblMessage As Label
忘了可不行,浏览器会告诉你“the name "lblMessage is not declared”!
按照MSDN上的原话是这样讲的:
The code-behind class is a complete class definition; it contains instance variables for all controls on the page, explicit event binding using delegates, and so on.

以上都是以前的事了,说说现在的情况。
在.NET Framework Version 2.0中,微软告诉我们以前这样实现代码与表现分离太麻烦了,兄弟,现在我们可以这样来实现它:
1、在.aspx文件的@Page指令还是要写的,不过改成这样子写:
<%@ page language="VB" compilewith="SamplePage.aspx.vb" classname="SamplePage_aspx" %>
用compilewith属性来替换codebehind和src属性,这越来越多的属性,我想应该是为了向后兼容付出的必要代价吧,classname指明后台文件所使用的类。
2、使用后台代码文件时,不必为表现文件内使用的每个控件声明实例,这里微软takes advantage of a new language feature known as partial classes.
The code-behind file for a page is not a complete class definition. Instead, it includes only the application code you need, such as event handlers. The code-behind partial class does not need to include instance variables or explicit event binding. ASP.NET can infer the control instances and derive event bindings from the markup during compilation.

这样一来确实减少些代码,在VS2005中微软声称可以减少70%的代码,我暂且学到这里,不知道还有没有其它减少代码的地方。

时间: 2024-12-15 06:17:30

Asp.net中的代码与表现分离的相关文章

asp.net中using代码语句解释

问题描述 asp.net中using代码语句解释 您好,麻烦帮我解释一下,在代码页面写代码时, 需要在页面的最前面加下面的语句 using JD.Model; 这一句有什么用途?非常谢谢?急用,辛苦了 解决方案 访问另一个命名空间里的类,需要写完整的命名空间,比如 JD.Model.XXX 为了简化,像使用自己的命名空间那样使用,直接写类名XXX即可.需要用using: using JD.Model 解决方案二: using JD.Model; 这个就是你要使用的那个的数据的包 那个包是开发这个

ASP.NET中的代码分离

asp.net|代码分离 ASP.NET中包含了一种新方法:将商业逻辑代码从表达代码中分离出来.这通常被称为背后的代码,功能非常强大,并且非常容易执行.实现步骤就是:向ASP.NET 页面中增加用户界面元素,并为它们指定属性"runat=server".然后,用.NET语言创建一个类文件来操作这些用户界面元素.最后,在ASP.NET 页面顶部增加一个指令,将用户界面与操作它的类文件附着在一起. 用一个简单的例子就能展示它是如何完成的.下面创建一个名叫WebPage.aspx的ASP.N

ASP.NET中促进代码重用的2种模式

开发复杂的动态ASP.NET应用程序时,必须尽量减少重复代码,提高应用程序的重用性和灵活性.在某些应用程序中,用户采取的不同操作可能具有不同的控制器逻辑,但结果都是相同的视图(例如显示一个产品列表时,可能允许用户增添或删除一件产品.但在控制器引导用户完成了添加或删除过程后,最终显示的都是同样的产品视图,其中含有修改过的数据).  开发可重用的程序逻辑时,第一步就是尽量减少服务器脚本页中的代码数量.脚本页中的逻辑很难(有时甚至不可能)重用,造成视图和控制器分离得不够好.另外,它的测试和调试也显得异

ASP.NET中共用代码

asp.net 在 ASP.NET 中由於可直接使用或替換 DLL 檔,大部分人較不關心動態共用原始碼的問題,由於 ASP.NET 在執行時可動態編譯最新原始碼供網站執行,是否一定要採用 DLL 來執行網頁對於管理者來說,沒有絕對的準則,但對系統或程式設計師來說,動態共用原始碼意味相同原始碼可供各專案同時共用,當在開發或維護某一專案時,針對共用原始碼的變動,亦等同於針對所有專案一起更新,此外亦可降低相同功能類似原始開發維護時間,有助於開發力的提升及專案小組共同開發. 例如早期專案存取資料庫可能以

ASP.NET中的Inherits、CodeFile、CodeBehind的区别详解_实用技巧

Inherits.CodeFile.CodeBehind 在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中. 通常一个 @page 指令如下: 复制代码 代码如下: < %@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplic

ASP.Net中程序构架与程序代码的分离

asp.net|程序 一年前,当本人拿到一个名叫TWIG的PHP程序时,立即被作者OOP编程思想所折服,很难想像TWIG中所有的功能(行事历.邮件.个性化)均在一个PHP文件(index.php3)中执行完成,这就得益于作者采用了程序代码与页面构架分离的思想,但是我也看到尽管作者做了很大的努力,但由于PHP的局限性,程序并没有真正做到代码与构架的分离,index.php3这个主文件由于要执行的功能太多,所以其require的模块文件相当之多,至使整个文件依然显得十分零乱,本人愚昧,当时花了半个月

ASP关于页面和代码分离的问题

代码分离|问题|页面|代码分离     为了避免ASP程序和HTML代码混写造成维护困难的情况,本文介绍了一种方法,利用模板来分离程序和页面,使程序设计更加轻松.       在使用ASP制作一个站点的时候,常常会出现一个ASP文件中,程序代码和HTML代码混合的情况.这样子做有许多缺点:    1. 且不说编程时就要对页面布局进行设计和编排,造成代码混乱难懂,不规范:    2. 当需要改变页面外观时,你不仅要改变HTML部份,也需要改变ASP代码,不易维护.       那么,要如何才能避免

使用模板实现ASP代码与页面分离

模板|页面 使用模板实现ASP代码与页面分离 每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码难以理解.难以修改:程序编写必须在美工之后,成为项目瓶颈:整合的程序代码和HTML静态页面时,花费大量的时间才能得到理想的效果,兼作了美工.的确,用脚本语言开发Web应用不容易将数据的处理和数据的显示分开,但在多人合作的情况下,如果无法将数据和显示分开,将大大影响开发的效率,专业分工的发挥. 其它的脚本语言,如J

ASP.NET 2.0 中的代码隐藏和编译

asp.net|编译 代码隐藏 虽然该代码隐藏模型在 2.0 中是不同的,但是它的语法已经进行了少量更改.实际上,该更改十分细微,如果您不仔细查看,甚至都无法注意到它Figure 1 Syntax in ASP.NET 2.0 Default.aspx<%@ Page Language="C#" AutoEventWireup="true"     CodeFile="Default.aspx.cs" Inherits="Msdn