从asp到asp.net之快速转型-.Net技术-3P代码网
繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 从asp到asp.net之快速转型

从asp到asp.net之快速转型

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:ASP用了两年,三个月前开始转入ASP.net,并完成了处女作就业中心网站(http://job.n ju.edu.cn),从一种语言转到另一种,过程总是艰辛的,于是我想把我在转型过程中遇到 的一些曾经很是困惑的问题做成了FAQ的形式...
关键字:asp 快速 net

ASP用了两年,三个月前开始转入ASP.net,并完成了处女作就业中心网站(http://job.n

ju.edu.cn),从一种语言转到另一种,过程总是艰辛的,于是我想把我在转型过程中遇到

的一些曾经很是困惑的问题做成了FAQ的形式,希望能对想转入ASP.net的同学有点帮助或

是启示,同时也算是理一理自己的思路吧^_^。

PS:我也是初学者,很多理解显然有点幼稚,并没有涉及到较深的层面,大家就凑合着瞧

瞧吧^_^

1.怎样建立ASP.net运行环境?

ASP有了IIS就可以了,而ASP.net也很简单,只要在IIS基础上装一个.net Framework。那

么想要运行ASP.net就会和运行ASP同样简单,参照问题2。

底下是.net Framework1.1的下载地址,直接按照向导安装好就ok了!

http://download.microsoft.com/download/7/b/9/7b90644d-1af0-42b9-b76d-a2770319a

568/dotnetfx.exe

2.ASP直接放在虚拟目录下运行就可以了,那ASPx呢?

答案很简单:完全一样:)

如果你有一个ASPx的示例网站,那么直接把它拷贝到你建立的一个虚拟目录下就可以了。

唯一要注意的可能就是如果有webconig文件,一定要直接放到虚拟目录之下,否则会出错

。当然微软对于运行ASP.net的解释可能会涉及到更深层面,包括私有,共有程序集,权限

之类,所以他会用“部署”这样一个庞大的词汇,我倒认为对于初学者来说实在有点小题

大作。

而咱们的目标不过是让它先运行起来再说:)

3.vs.net是怎样建立一个ASP.net应用程序的?

我使用vs.net开发的,所以只针对这个开发环境:P。vs.net把ASPx之类的“网页”集称之

为应用程序,多少有点让初学者迷惑(我一开始就是这样:P),这很容易让人觉得这与a

sp几乎完全不一样,其实不然(尽管实现思想上有很大差异),各个网页其实还是相互独

立的,和ASP中一样,所以我宁愿还称之为“网页”。vs.net建立一个ASP.net程序其实就

是帮你建立一个虚拟目录,然后在这个虚拟目录下建立项目文件(管理多个ASPx)。这与D

reamwaver或FrontPage中建立一个站点的性质完全一样,建立这样的项目只是为了方便开

发环境来识别出当前项目包括哪些文件,实际运行时项目的概念其实是不存在的。

4.ASPx中的代码究竟是怎样阻止的?与ASP中有什么区别?

按照微软的定义,ASPx中的代码在第一次运行是要经过编译的,这与ASP中的程序解释执行

有着本质的区别。然而,从运行结果来看,这些区别可以说是完全透明的。理解ASPx中的

代码的关键其实是要看的懂代码的结构。和ASP结构相同的嵌入式代码我就不说了,那个在

理解了代码隐藏之后很容易明白。

你现在是否对类似这样的ASPx开头感到不解?:P

这是用vs.net建立ASPx的典型开头,我想从快速入门的角度看只要了解这几个属性:

@ Page就不用说了,就是一个标志来说明底下是对页面的属性描述

Language:使用的语言

CodeBehind:此页面对应的代码存储在哪个文件中

Inherits:页面从哪个类继承,此例子中表示是njuJob命名空间中的myDatum类

后两个属性是必须要理解的

代码隐藏是vs.net独有的功能(好像其它环境不支持),它允许把对应于一个页面的程序

逻辑和表示逻辑作为两个文件分离开来(这是不同于ASP的一个明显区别),通常是这样的

结构:sample.ASPx对应的代码文件是sample.ASPx.cs(使用的c#语言),codebehind中会

自动指明。vs.net在编译时可以将所有的代码隐藏文件编译到一个dll中(所谓的程序集)

,当ASPx页面被处理时,处理程序可以从Inherits中找到所继承的类,然后从dll中找到这

个类,并实例化从而执行程序得到输出的HTML。

可能现在大家对这样的解释没有一个整体的认识,所以请看下面的问题:

5.用ASP的思路理解ASP.net--代码文件中的代码怎样控制页面的显示?

考虑一个简单的例子,在ASP中,如果你想要动态生成一个表格插入到页面中,那么做法通

常是在需要插入的地方加入一段程序和Response.Write语句来实现,稍微变一下,有人可

能会在插入的地方仅加一条语句,而strTheTable的值可能在这之前已经

计算好了,可能是通过一个函数实现的,但这种计算肯定还是包含在这个ASP页面中。

现在考虑怎样在ASP.net中实现这个过程,我们先引入最简单的一种控件,Literal控件(

关于控件大家应该有个大概的认识,就是一个通用的程序模块之类的意思),这个控件的

功能就是在页面中插入一段字符串,它具有一个text属性,你指定这个属性为一个字符串

,那么这个字符串就会在生成的HTML文件的相应位置。这应该很好理解,就跟ASP中的的功能几乎完全一样。这个Literal控件在ASPx中的声明方式如下:

当要使用代码控制这个Literal时,就用下面的语句:

ltlTable.Text="

……";

这样就实现了和ASP中一样的功能。代码实际上是在隐藏文件中的,在隐藏文件的类中会有

一个声明来包含这样的控件,这种声明通常都是由vs.net自动完成的,即:你在页面中添

加一个控件,vs.net就会为你在代码隐藏文件中加入相应的声明。隐藏文件的结构分析可

以见下一个问题.

相信通过这样的例子大家应该能对ASP.net用控件实现文本输出的功能有了一定的了解,其

实更多更复杂的控件的实现原理完全一样,只是它们提供了更多自动话的功能,例如一个

表格控件可以让你直接输出一个表格,而不用自己去写HTML代码,至于怎样精确的控制生

成的HTML代码就要靠自己去经验积累和技术提升了。

6.隐藏代码文件的结构是怎样的?

我们来实际分析一个文件:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HTMLControls;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上是说明引用了哪些程序集,这和ASP中的包含文件应该类似,只有包含了某个文件才能

使用其中的函数,而这边只用引用了某个程序集,才能使用它提供的控件。

namespace njuJob //说明你的程序集的命名空间(这暂时不必理解)

{

public class myDatum : System.Web.UI.Page //这是ASP.net页面对象模型(暂时不必

理解)

~~~~~~~~这个就是ASPx头中的继承属性

{

System.Web.UI.WebControls.Literal ltlTable; //对ASPx页面中的控件的声明

private void Page_Load(object sender, System.EventArgs e)

{

// 程序实际上是从这里开始执行

ltlTable.Text="……";

MyFunction();

}

private void MyFunction() //可以声明你自己的函数以供本页面使用

{

}

}

}

这个隐藏文件会被vs.net编译进dll,当ASPx被处理时会执行。

好了,暂时先写这些东西吧,这几个问题都是我刚着手ASP.net所感到困惑的,如果你恰好

也有同样的困惑,那我很高兴我写的东西能有所价值,如果有什么理解上的严重错误,还

请高手不吝赐教:)

责任编辑:admin
相关文章