`
leavingme
  • 浏览: 25776 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

ASP.NET从1.1到2.0的变更要点

阅读更多

ASP.NET提供了两种组织代码的方式,不管是ASP.NET1.X还是ASP.NET2.0都是通用的<!----><!---->
(1)内置代码分离
这是最基本的一种方式,感觉是为了和传统的ASP兼容才提出的。这种方式同样用于介绍ASP.NET知识点,例如建立一个WebCodeSeparated.ASPx页面,可能的代码如下
WebCodeSeparated.ASPx
</HTML>
<head>
<script ruant="server">
</script>
</head>
<body>
</body>
</HTML>

(2)页面布局和逻辑代码分离的文件,
   VS2003就采用的这种思想,例如上面的WebCodeSeparated.ASPx可能为
WebCodeSeparated.ASPx和
WebCodeSeparated.ASPx.cs
为了关联两者关系,可以使用Codebehind和Inherits进行说明 
   在VS2005里,提供了parital关键字

现在把一个Label控件、一个TextBox控件和一个Button控件托放到WebCodeSeparated.ASPx上,最后生成的Source类似如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebCodeSeparated.ASPx.cs" Inherits="WebCodeSeparated" %>

WebCodeSeparated.ASPx

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<HTML XMLns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ASP:Label ID="Label1" runat="server" Text="Label"></ASP:Label><br />
        <ASP:TextBox ID="TextBox1" runat="server"></ASP:TextBox>
        <br />
        <ASP:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
    </form>
</body>
</HTML>

 WebCodeSeparated.ASPx.cs

public partial class WebCodeSeparated : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "hello" + TextBox1.Text + "Welcome to ASP.NET2.0";
    }
}



那么这段代码有什么特点呢?
和ASP.NET1.1相比,这段代码有什么区别呢?
首先,Page指令由由CodeBehind="WebCodeSeparated.ASPx.cs"改成了CodeFile="WebCodeSeparated.ASPx.cs",为什么会有这样的改变呢?
  这是因为,用CodeBehind的文件是在运行前编译的,而在运行时,其中的逻辑源代码文件可以不再使用。这给页面的的布局带来了非常的不便,请看下面示例子:

<%@ Page Language="C#" AutoEventWireup="true" %>
 <script lauguage="c#" runat="server" >
Button1_Click()
{ Label1.Text = "hello" + TextBox1.Text + "Welcome to ASP.NET2.0";}
</script>
<body>
    <form id="form1" runat="server">
    <div>
        <ASP:Label ID="Label1" runat="server" Text="Label"></ASP:Label><br />
        <ASP:TextBox ID="TextBox1" runat="server"></ASP:TextBox>
        <br />
        <ASP:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
    </form>
</body>
</HTML>

 

  这是单一的*.ASPx文件,显示的结果将和上面的一样。但是现在我想更改问候,例如改成如下代码,相当于中文版

<%@ Page Language="C#" AutoEventWireup="true" %>
  <script lauguage="c#" runat="server" >
Button1_Click()
{ Label1.Text = "你好" + TextBox1.Text + "欢迎进入ASP.NET2.0";}
</script>
<body>
    <form id="form1" runat="server">
    <div>
        <ASP:Label ID="Label1" runat="server" Text="Label"></ASP:Label><br />
        <ASP:TextBox ID="TextBox1" runat="server"></ASP:TextBox>
        <br />
        <ASP:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
    </form>
</body>
</HTML>
那么当使用ASP.NET1.1版本在运行时,完全没有问题,显示中文版的问候。

然而,在ASP.NET1.1里,一般都是页面布局和代码分离的,上面代码在用Visual Studio.NET2003开发时,更多的写成如下的形式
<%@ Page Language="C#" AutoEventWireup="false"  CodeBehind="*.ASPx.cs"%>
  <body>
    <form id="form1" runat="server">
    <div>
        <ASP:Label ID="Label1" runat="server" Text="Label"></ASP:Label><br />
        <ASP:TextBox ID="TextBox1" runat="server"></ASP:TextBox>
        <br />
        <ASP:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></div>
    </form>
</body>
</HTML> 

后台代码文件*.ASPx.cs为
Button1_Click()
{ Label1.Text = "hello" + TextBox1.Text + "Welcome to ASP.NET2.0";}

在开发时,由于当我们运行时(使用快捷键F5),系统自动将*.ASPx.cs编译为dll文件并放置在bin文件夹,然后供*.ASPx使用,这样以后如果我们需要将该页面部署到远程主机,例如您申请了一个 www.aspxcool.com域名和虚拟主机,你的Internet Server Provider(网络服务供应商)可能给你一个ftp帐户让你把页面文件上传到某个给定的文件夹下(例如wwww目录下),此时你上传时,只要上传*.ASPx和bin文件夹及其下面的dll文件就可以了,*.ASPx.cs源代码完全不需要(当然上传页可以),所以你现在应该感觉到了,如果我需要改变输出的问候为中文,该怎么办呢?
直接更改*.ASPx.cs里的代码为
Button1_Click()
{ Label1.Text = "你好" + TextBox1.Text + "欢迎进入ASP.NET2.0";}
可以吗?
当然不可以,事实上该源代码文件你可能都没有上传,你从何处更改,即使上传你更改了也不其作用。没有办法,您只好重新用VS.NET2003打开*.ASPx,并修改*.ASPx.cs的Button1_Click为中文版,然后再用VS.NET2003进行编译,最后把编译好的BIN下面的DLL文件再拷贝到服务商提供的wwww/bin文件夹下,覆盖原有的文件,如此一系列动作可以说是牵一发而动全身,

 特别是你部署类似blogs、Community Server这样的大的项目时,更是为了一点的改动而重新编译整个项目,非常的麻烦。

   现在ASP.NET2.0提供了CodeFile来改变这种情况,它可以使得*.ASPx.cs也是在运行时动态编译。所以在上面的例子里,如果您使用页面布局和逻辑代码分离的形式,在你更改过WebCodeSeparated.ASPx.cs里的源代码为中文版后,页面会在运行时进行显示。

在上面代码里使用了partial,那么时候了该关键字有什么好处呢
在ASP.NET1.1版本里,您应该知道,如果我们在WebForm1上放置了一个控件,例如ID为Button1的按钮则
*.ASPx会做如下记录
<ASP:Button  id="Button1" runat="server">

而*.ASPx.cs会做如下记录
protected Button Button1 ;  //定义了一个Button类对象Button1

   由于这种关系,使得系统的维护变的非常困难,特别是在稍微复杂的应用程序中,改动一点有时需要重新编译整个项目。而且更为难办的是,如果你在程序里按照如下使用
*.ASPx
protected Button Button1 ;  //定义了一个Button类对象Button1
而忘记在*.ASPx定义Button1,系统还会提示
          “未将对象引用设置为实例”的错误   
为了解决这些问题,.NET2.0才提出了partial 关键字,它使得如下的使用是正确的
你在*.ASPx里定义了一个按钮如
<ASP:Button  id="Button2" runat="server">
这样您在*.ASPx.cs里就可以直接使用Button2,不用再定义类似 Button Button2;这样的对象,系统通过paritial自动将Button2关联起来。所以提高了维护性

(3)AutoEventWireup的属性由"false"改为了false,也就是说VWD2005主要支持隐式的事件代理处理
private void InitializeComponent()
  {   
   this.SubmitBtn.Click += new System.Web.UI.ImageClickEventHandler(this.SubmitBtn_Click);
   this.Load += new System.EventHandler(this.Page_Load);this.Load += new System.EventHandler(this.Page_Load);
  }
现在VS更支持隐式的
也就是前面介绍的OnClick的方式。



陈源 2008-01-14 00:19 发表评论
分享到:
评论

相关推荐

    .NET Framework 1.1-2.0-3.5 Installer for InnoSetup

    它支持ASP.NET、Windows Forms和ADO.NET,极大地简化了Web应用和桌面应用的开发。 2. **.NET Framework 2.0**:在1.1的基础上,2.0版增加了大量新功能,如Generics、Partial Classes、Anonymous Methods等,增强了...

    IIS共存ASP.NET1.1和2.0

    - 例如,将使用ASP.NET 1.1的应用程序关联到“DotNet1_1AppPool”,将使用ASP.NET 2.0的应用程序关联到“DotNet2_0AppPool”。 4. **检查错误**: - 在完成以上配置后,可能会遇到一些错误,比如...

    FlyTreeView 4.3/3.6 for ASP.NET 1.1/2.0

    【FlyTreeView 4.3/3.6 for ASP.NET 1.1/2.0】是针对ASP.NET框架1.1和2.0版本的Web控件,它由NineRays公司开发,主要功能是提供一种高效且可自定义的树形视图展示方式。在2007年11月11日,该控件的两个不同版本3.6....

    ASP.NET MVC插件 MVC 2.0

    ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0ASP.NET MVC插件 MVC 2.0

    windows server 2008 下安装.net 1.1 配置IIS方法

    假设已经有一个名为 “Test” 的站点,可以执行以下命令来将其应用程序池设置为 “ASP.NET1.1”: ```cmd appcmd set app "Test/" /applicationPool:"ASP.NET1.1" ``` #### 可能出现的问题及解决方法 - **问题...

    asp.net1.1/2.0 日期时间控件

    可以选择日期 , 只是简单的实现功能

    WIN2003 IIS 支持 ASP.NET插件 .net framework 2.0

    对于开发和运行基于ASP.NET的Web应用程序来说,.NET Framework 2.0是一个关键组件。这篇内容将深入探讨如何在WIN2003上的IIS中安装和配置ASP.NET插件,以及.NET Framework 2.0的相关知识点。 首先,我们需要了解...

    Install ASP.NET 1.1 with IIS7 on Vista and Windows 2008

    在Windows Vista和Windows Server 2008操作系统中安装ASP.NET 1.1与IIS7是一项技术性任务,因为这两个平台默认支持的是ASP.NET 2.0及以上版本。然而,由于某些应用可能仍依赖于ASP.NET 1.1,所以了解如何在IIS7上...

    用VB.NET 开始Asp.NET 1.1的开发(PDF)

    在这个PDF教程中,读者可以期待找到关于以上知识点的详细解释,以及实践示例,帮助他们从零开始构建Asp.NET 1.1应用。"说明.html"可能是教程的简介或目录,"YuanMa.Cc.txt"可能包含额外的信息或资源链接。

    microsoft.net.framework.2.0 Microsoft .NET Framework v2.0

    3. ASP.NET增强:ASP.NET 2.0引入了母版页(Master Pages)、站点导航控件、皮肤(Skin)和主题(Theme)等功能,极大地方便了Web应用程序的开发和维护。 4. ADO.NET改进:2.0版本的ADO.NET增强了数据访问能力,...

    ASP.NET MVC VS2008 2.0 插件

    ASP.NET MVC VS2008 2.0 插件.ASP.NET MVC VS2008 2.0 插件

    精通ASP.NET2.0的Web2.0 电子教程

    【ASP.NET 2.0与Web 2.0概述】 ASP.NET 2.0是微软.NET Framework的一部分,它提供了一套强大的工具和技术,用于构建功能丰富的、...通过实践,你将能够掌握ASP.NET 2.0的精髓,并运用到实际项目中,提升你的开发技能。

    Aspmenu.net v1.1

    Aspmenu.net v1.1作为一个ASP.NET控件,可以直接在ASP.NET页面中使用,简化了开发流程,提高了开发效率。 综上所述,Aspmenu.net v1.1作为一款专注于动态JavaScript DHTML菜单的工具,其强大而灵活的功能,对不同...

    ASP.NET 2.0的web2.0应用

    ASP.NET 2.0是微软推出的用于构建动态网站和应用程序的框架,它是.NET Framework的一部分,提供了丰富的功能和改进,使得Web开发更为高效和便捷。在Web2.0的时代背景下,ASP.NET 2.0被广泛应用于创建交互性强、用户...

    asp精通ASP.NET2.0的Web2.0 电子教程(3)

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它是在ASP.NET 1.x的基础上进行的重大改进。Web2.0则是互联网发展的一个阶段,强调用户交互、社区参与和数据共享。本教程旨在帮助新手全面掌握使用ASP.NET ...

    ASP.NET1.1入门经典入门源码

    本资源“ASP.NET1.1入门经典入门源码”是一个面向初学者的实践教程,配合相关教材,能够帮助学习者深入理解ASP.NET 1.1的核心概念和技术。 首先,ASP.NET 1.1引入了控件模型,这是一个关键的改进,使得开发者可以...

    精通ASP.NET2.0的Web2.0 电子教程.rar

    【标题】"精通ASP.NET2.0的Web2.0电子教程"是一个专门针对ASP.NET 2.0框架和Web2.0技术的学习资源。这个压缩包文件包含了多个部分,旨在帮助用户深入理解和掌握如何在ASP.NET 2.0平台上构建具有Web2.0特色的动态网站...

    Professional ASP.NET 1.1

    《Professional ASP.NET 1.1》是一本专为IT专业人士准备的权威指南,它深入探讨了ASP.NET 1.1这一关键的Web开发框架。这本书的随书代码库包含了使用C#和VB.NET两种主要.NET编程语言实现的示例和项目,旨在帮助读者更...

    ASP.NET 2.0 & C# 2.0学习资料

    相较于之前的版本(如ASP.NET 1.0和1.1),ASP.NET 2.0引入了许多新特性,包括: 1. **控件生命周期增强**:控件现在拥有更明确的生命周期,使开发人员能够更好地理解和管理页面和控件的状态。 2. **母版页...

Global site tag (gtag.js) - Google Analytics