分享
 
 
 

[YC]从asp到asp.net之快速转型

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

<%@ Page CodeBehind="myDatum.aspx.cs" Language="c#" AutoEventWireup="false" In

herits="njuJob.myDatum" %>

这是用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语句来实现,稍微变一下,有人可

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

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

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

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

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

,那么这个字符串就会在生成的html文件的相应位置。这应该很好理解,就跟asp中的<%=

strTheTalbe%>的功能几乎完全一样。这个Literal控件在aspx中的声明方式如下:

<asp:Literal id="ltlTable"></asp:Literal>

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

ltlTable.Text="<table><tr>……";

这样就实现了和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所感到困惑的,如果你恰好

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

请高手不吝赐教:)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有