ASP+出来都快半年了,我们站点也做了不少的介绍,但是今天飞刀我才终于有了心思来写一下关于这个ASP+的文章了。呵呵,让大家久等了。
首先我得申明,本教程适用于有一定网络编程经验的人,比如asp,PHP,CGI,JSP开发者,如果你对网络编程一点也不了解,那么您还是先去学学其它的语言,不然以下的文章您会有很多看不懂的地方。呵呵。
我们开始吧。
ASP+的运行环境
我们要学习ASP+,就先得搞一个调试环境出来。让你的"爱鸡"支持asp+,那么您需要以下的条件:
Windows 2000 Professional, Windows 2000 Server , Windows 2000 Advanced Server
NGWS
IE 5.5
以上是支持ASP+的需要,大家看到目前只有Windows 2000才有安装NGWS的可能,NT,Windows 98,Windows Me 暂时还没有办法支持asp+,不会老盖答应我们在以后的版本中会在其它的平台上支持asp+的,大家慢慢等吧。而且还不是所有的window 2000都可以,windows 2000的版本号要是RC 3618以上的才行(这是本人写这篇文章时的情况,现在连win98都可以了)。飞刀我以前就是windows 2000的版本太低,不得不放弃正版,买了D版(全是ASP+惹的祸)。
NGWS是个大块头,有111M之巨,飞刀兄弟我的小猫跑了5个小时才把它搞定,它的下载地址是http://download.microsoft.com/download/VisualStudioNET/Install/2204/NT5/EN-US/setup.exe 幸得M$有钱,下载站点的带宽还大,下载速度还可以咯。大家慢慢来吧。
IE 5.5 是上面最好搞定的东东了。这个东西现在已经是泛滥了:),D版的不少,呵呵,不能称D版,它本身就是免费的:)
ASP+与ASP的比较
说起ASP+的好处,那就很多了。我们这里举几个最明显的。
速度,ASP+是编译后执行的,也就是说当aspx文件第一次被请求时被编译,以后的请求就不需要重新编译了。而ASP是解释性脚本语言,每次都需要重新编译,这种原因,其速度就无法和ASP+来比了。不过ASP+的编译速度也够慢的,在本地机上调试,第一次执行的速度是很慢的。不过以后就很快了,第一次执行的任务就交给管理员去做吧。我们就去享受以后的高速度吧:)
功能,ASP+的功能是无比强大的,几乎能做我们在网络能想到的事情,呵呵,举个简单的例子,那就是文件的上传,在ASP的时代,这个问题只能通过组件才行,但是在ASP+中只需要以下的代码就可以了。下面是一个例子:
< html>
< head>
< script language="C#" runat="server">
void Button1_Click(object Source, EventArgs e) {
if (Text1.Value == "") {
Span1.InnerHtml = "Error: you must enter a file name";
return;
}
if (File1.PostedFile != null) {
try {
File1.PostedFile.SaveAs("c:\\temp\\"+Text1.Value);
Span1.InnerHtml = "File uploaded successfully to c:\\temp\\"+Text1.Value+" on the Web server";
}
catch (Exception exc) {
Span1.InnerHtml = "Error saving file c:\\temp\\"+Text1.Value+"
"+ exc.ToString();
}
}
}
< /head>
< body>
HtmlInputFile Sample
< form enctype="multipart/form-data" runat="server">
Select File to Upload:
Save as filename (no path): < input id="Text1" type="text" runat="server">
< span id=Span1 style="font: 8pt verdana;" runat="server" />
< input type=button id="Button1" value="Upload" OnServerClick="Button1_Click" runat="server">
< /form>
< /body>
< /html>
相信大家都能看懂上面的程序,不是太难。看看用ASP+上传文件就是这么简单,根本就不需要什么组件了,呵呵,只可怜飞刀我写了半天的"aspcnUP上传组件",一片心血就被M$给搞完了。我们的组件也要下岗了,唉,可悲啊。(飞刀悲情地唱起"风萧萧兮,易水寒,壮士一去不复返......")
ASP+能做的事远不止如此,这里只是举个小例子,它的更多功能我们以后再去介绍,呵呵。
ASP+还有一大优点就是结构化编程,他的程序语言可以自已任意加,目前支持C#,VB,JavaScript,呵呵,大家是不是对不支持VBScript感到失望 ?!:)这是大势所趋,大家也不必失望啦,我以后的文章的例程都会用C#去写,呵呵,如果你钟情于VB,你也可以看看本站一篇关于VB与C#语法比较的文章,很容易上手的。对于C#,大家可能比较陌生,不过我们看看上面的程序,发现他还是有很多地方是我们容易上手的。我个人认为它是C++与VB与Java的结合体,也可能是M$宣战Java的第一步,大家用多了就会觉得他好处多:)
写ASP+程序,你会觉得是在写VB或者是VC,很多的思想全都来自于VB,VC,可能是M$.net的原因吧。所以我们写程序的思维需要改变,要让你自已感觉这是在写软件,不是在写传统的asp程序。
至于ASP+还有的一些功能,我们站点以前的文章也介绍了,呵呵,大家查查,我们以后也会通过程序去了解,只可惜,我们服务商的服务器不能使用asp+,否则我们会更多了解的asp+的特性。
另外一个大家关心的问题就是,装有NGWS的Windows 2000是否还支持asp,担心我们有了aspx,就没有了asp,以前的程序就全玩完了。这个问题大家根本不用担心,NGWS设计时M$就考虑过,NGWS同样可以解析asp,文件的扩展名是.asp,那就使用asp的方法解析,如果是.aspx就使用asp+来解析,所以您以前的asp是不会报销的。哈哈,大家可以放心啦。飞刀的机器上就是这样的咯。aspx,asp都可以用:)
这第一节就到这儿了,下一节,我们介绍一下,asp+的语法:),大家多多捧场。
上一节 ,我们简单介绍了ASP+的配制环境,我们这一节来谈谈ASP+的语法.其实当你装好NGWS后,他所带的文档是最好的学习ASP+的教程,要你E文足够好,以及很好的耐性,学习ASP+不是难事啦.我们这些家伙也是从这里学了很多的,这篇关于ASP+语法的文章,大多数也来自于M$的原文,最可惜的就是我们的服务器不能装上NGWS,有些例子,大家不能看到执行结果,不太好。不过有些地方,我会把执行结果显示出来的。我们开始这一节吧:)
一个ASP+页面的后缀名是".ASPX".它能够包含八种不同的语法标置元素.我们将在这篇文章中介绍这几种不同的语法,并且举出一个例子来显示它的用法。
< % %> 与 < %= %>
用过asp吗,用过,那么大家就不会对这个标签陌生了。呵呵,下面是一个简单的例子。他执行后的结果我想我不写不出来,大家也都知道啦。这个就不多谈了,呵呵.
< % for (int i=0; i<8; i++)
{
%>
Hello World!
< % } %>
上面的例子中< % %>之间的程序将会被执行,并显示出的结果,< %="Hello World" %>就等于< % Response.Write ("Hello World") %>
注意:在C#中,是以分号(;)做为分隔符,但是我们要注意一些事情。
C# code
< % Response.Write("Hello World"); %> 这里的分号是必须的
< %="Hello World"; %> 这样写会有一些小问题就是,显示的结果是 "Response.Write("Hello World";);"
正确
声明代码的语法: < % ... number = subtract(number, 1); ... %>
重要问题:ASP+不像ASP,在ASP中所能的函数得在区域中声明,但是在ASP+中所有函数和变量都必须在区域中声明。否则,aspx编译时会出现错误.
ASP+ 服务器端控件语法
服务器上的控件使用开发者能够动态产生HTML页面,并发送给客户(如Netscape和IE所产生的JavaScript是不同的。还有普通浏览器和WAP浏览所收到的页面也是不同的).他们对象的声明也是运用了标签。但是他们和其它的标签是不同的。因为他们包含有一个"runat=server"属性。(呵呵,这个属性我们在ASP中也用过,不过功能就...)。下面的例子演示了控件的使用方法。
< html>
< script language="C#" runat=server>
void Page_Load(Object sender, EventArgs e) {
Message.Text = "Welcome to ASP+";
}
< /script>
< body>
< asp:label id="Message" font-size=24 runat=server/>
< /body>
< /html>
上面的源代码中我们加入ID为 "Message":
< asp:label id="Message" font-size=24 runat="server"/>
看了上面的代码,是不是发现我们在写VB程序,呵呵,先搭好骨架,然后再一个个的去编写他们事件处理。这就是M$给我们的新概念.
ASP+ Html 服务器控件语法
HTML服务器控件,使开发者程序化的操作HTML元素。一个HTML服务器控件只是比普通HTML元素多了一个"runat=server"属性。下面的例子具体演示了HTML服务控件的用法。
< script language="C#" runat=server>
void Page_Load(Object sender, EventArgs e) {
Message.InnerHtml = "Welcome to ASP+";
}
< /script>
...
< span id="Message" style="font-size:24" runat=server/>
他执行的结果和第一个程序的结果是一样的
&n