动态网站Web开发PHP、ASP还是ASP.NET(2)

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

实践——语言比较

变量声明

在VBScript中(ASPASP.NET都使用VBScript),在使用变量之前并不一定要对其进行声明,尽管技术文档通常建议这么做。使用OptionExplicit声明,开发人员可以通过程序强制进行变量声明。在PHP中,变量可以被声明,尽管没有办法强制开发人员做到这点。的确,在使用之前变量都自动进行声明。PHP变量的优点在于变量可以被设置成为其他变量的引用(references),而在VBScript中变量只能通过值来定义。

以下是引用片段:
<%
'VBScriptExample
OptionExplicit
myVar=1
myOtherVar=myVar
myVar=2
'myResultwillbe3
myResult=myVar+myOtherVar
%>
<?
//PHPExample
$myVar=1;
'Usetheampersandtomakeareference
$myOtherVar=&$myVar;
$myVar=2;
//$myResultwillbe4
$myResult=$myVar+$myOtherVar;
?>

变量收集

PHP以及ASP中使用表单以及querystring变量的方法非常相似。有很多办法可以访问表单以及querystring变量的集合,例如通过name或者将其作为数组。在ASP.NET中情况则有很多不同,尤其是对于表单域。不同于盲目的寻找提交过的表单变量,code-behind可以对HTML页面中的每一个表单域了如指掌,并可以按照任何已知事件的执行为条件触发对这些表单域的值进行检查。其中一个事件是“postback”,当表单被用户提交时此事件被触发。其他的事件可以是客户端的程序,并且可以通过JavaScript来触发。在ASP.NET中,二者没有性质上的区别。

以下是引用片段:
<%
'ASPExample
myFormVal=request.form("myInputField")
myQSval=request.querystring("myQSitem")
myVal=request.item("myFormOrQSitem")
%>
<?
//PHP4.1+Example
$myFormVal=$_POST['myInputField'];
$myQSval=$_REQUEST['myQSitem'];
//PHP3+Example
$myFormVal=$HTTP_POST_VARS['myInputField'];
//Ifregister_globals=on
$myVal=$myFormOrQSitem;
?>
<!--ASP.NETexample-->
<html>
<scriptlanguage="VB"runat=server>
SubSubmitBtn_Click(SenderAsObject,EAsEventArgs)
Message.Text="Hello"&Name.Text
EndSub
</script>
<body>
<formaction="action.ASPx"method="post"runat="server">
Name:<ASP:textboxid="Name"runat="server"/>


< ASP:buttontext="OK"OnClick="SubmitBtn_Click"
runat="server"/> 
< ASP:labelid="Message"runat="server"/> 
</form> 
</body> 
</html>

字符串连接(StringConcatenation)

PHP似乎对此问题给予了足够的重视,它允许将变量插入到字符串中而无需考虑通常的串连(Concatenation)问题。ASP.NET则把整个过程弄得比较麻烦,需要借助其StringBuilder类,但由此ASP.NET的运行速度也会快很多。

以下是引用片段:
<?
//PHPExample
$link=mysql_connect("host","user","password")ordie("mysql_error());
mysql_select_db("database")ordie("Couldnotselectdatabase");
$query="SELECT*FROMTable"; 
$result=mysql_query($query)ordie(mysql_error()); 
while($line=mysql_fetch_array($result,MYSQL_ASSOC)){ 
foreach($lineas$col_value){ 
//dosomething 
}
}
?>

连接数据库

对于数据库的连接问题,每种技术都表现出了各自突出的规范性。首先,每种情况都要建立到数据库的连接。对于PHP,在建立之后选择数据库(对于ASP以及ASP.NET则将在连接阶段完成)。随后将建立一个询问,并将其传送给数据库,由此可能产生也可能不会产生一条返回记录。

由于在本质上ASP.NET更为以对象为导向,并且支持复杂的错误处理(errorhandling),因此无论是相对于PHP还是ASP,在完成简单任务方面ASP.NET可能会需要编写更多的代码。但在优势方面,ASP.NET完成显示数据功能所需要的代码则大大少于PHP以及ASP——尤其如果使用内建的datagrid控制来自动创建HTML输出。

以下是引用片段:
<%
'ASPExample
SetobjConn=Server.CreateObject("ADODB.Connection")
objConn.Open"Driver={SQLServer};Server=MyServerName;"&_
"Database=myDatabaseName;Uid=;Pwd="
conststrSQL="SELECT*FROMTable"SetobjRS=Server.CreateObject("ADODB.Recordset") 
objRS.OpenstrSQL,objConn
DoWhileNotobjRS.EOF
'dosomething
objRS.MoveNext 
Loop
%>
' ASP. NETExample
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.SqlClient"%>
<html>
<scriptlanguage="VB"runat="server">
SubPage_Load(SenderAsObject,EAsEventArgs)
DimMyConnAsSqlConnection=NewSqlConnection("server=(local)...")
DimMyCommAsSqlCommand=NewSqlCommand("select*fromTable",MyConn) 
MyConn.Open()
DimdrAsSqlDataReader=MyComm.ExecuteReader()
MyDataGrid.DataSource=dr 
MyDataGrid.DataBind() 
MyConn.Close()
EndSub
</script>
<body> 
< ASP:DataGridid="MyDataGrid"runat="server" 
Width="600"


BackColor="#FFFFFF"
BorderColor="#000000"
ShowFooter="false"
CellPadding=2
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt" 
HeaderStyle-BackColor="#EEEEEE"
EnableViewState="false"
/>
</body>
</html>

结论

选择 ASPPHP 还是 ASP. NET将最终取决于应用程序的需要,以及运行程序的系统环境。 开发人员对于相似编程语言或范例的熟悉程度同样可以作为选择的因素。记住没有完美的方法和个人实际情况可以表明哪种技术是最佳选择。比如,使用 ASP. NET为一个Windows服务器创建一个单页面的表单邮件应用程序似乎有些大材小用,但对于 ASP来说这是极佳的应用环境。如果一个站点需要同LinuxApache服务器上的mySQL数据库连接,那么使用 ASP或者 ASP. NET则会显得力不从心。如果能够提前详细考虑用户的个人要求,那么 开发人员在这些相互竞争的技术中进行选择的过程则已成功了一半。

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
三种Web开发主流技术ASP-PHP-JSP的评价三种主流技术是哪三种呢?我主要讲一下ASP(ActiveX Server Page)、PHP、Java这三种技术。主要是基于我到现在已经使用的以下产品而谈:ASP MS IIS 4/Visuale Interdev 6 PHP Apache 1.2.x/HomeSite 4.5/PHP 4 Java iPlanet Web Server 4.1/JBuilder 3.5/JDK 1.2.2 以上技术本人却实使用过,而且已经使用它们做过项目,基于以前的工作经验给初学者和正在对自己应用系统进行选择的同仁谈谈自己对它们的评价,以做参考,同时也请大家提出自己的想法和意见 ,多交流。但是我有一个这样的看法:“一个产品它存在就有存在的理由,它不可能一无是处,而是需要你去选择一个最合适你的技术、产品”。 一个好的技术要用在最合适它的地方,所以本文可以做为你参考的一个文章,而不会告诉你任何一个技术的“最”。 · ASP我们先来谈谈它,因为ASP是到现在开发人郡最广的一个技术了,所以想来大家也会对它最关注。ASP是一个近乎完美的想法,可是因为MS一个大的环境的问题所以在一些方面反回使它缩小在了一个小的框架中,如果它能更好的跳出这个框架,我想由它现在的基础将无人可比。 ASP更精确的说是一个中间件,这个中间件将Web上的请求转入到一个解释器中,在这个解释器中将所有的ASP的Script进行分析,再进行执行,而这时可以在这个中间件中去创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,同时再通过这些COM组件再完成更多的工作。所以说,ASP强大的不在于它的VBScript, 而在于它后台的COM组件,这些组件来无限的扩充了ASP的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值