什么是asp+(二)
scott mitchell (作) zhx(译)
5.post-back forms:
创建asp页面需要知道一些用户信息,在处理这些信息的时候,许多的asp开发者使用的是post-back forms:技术。对于那些不熟悉语言和技术的人来说,一个post-back forms:是一个web页面表格(使用<form…..>标签),这个表格的执行属性可以被设置不存在或被设置为与显示表格的web页面具有相同的url。当用户提交表格的时候,相同的asp页面被调用,于是用户的输入传回了表格。而在asp中处理这些时,需要用很长的if语句来判断post-back是否发生了。
在asp+中,语句的烦琐已经过去,现在开发者可以用控制按钮(我们将得到服务器的控制)创建一个asp+页面。在asp+代码中,开发者创建一个函数,这个函数将只能在被点击的时候触发。(很好,我们可以在以后的文章中更加深入的看到这一点)。这些是通过使用微软模式和post-back 表格的智能程序来完成的。表格提交后的所有行为可以用一个单一的函数来代替,而不是用一系列难读的if语句。
服务控制:使用asp,所有的采集用户输入的方法是从头到尾执行完默认的html来控制用户表格。例如:创建一个用户可以键入信息的文本框只用几行代码就可以完成。在asp+中,这些被服务控制所代替,这些服务控制可以在只有几行代码的asp+页面中被创建。例如,要在asp+页面中创建一个文本框,你可以用上面标准的html标签,或用一个带有下面代码的服务控制来完成:
<form><input type=text name=mytextbox></form>
这个服务控制文本框,用asp的文本框标签创建,在asp+指令中需要一个文本框。服务控制可以创建所需的html去描述一个标准的文本框。所以,当一个用户浏览asp+页面的时候,html返回的是:
<from name=”ctr2” method=”post” action=”intro7.aspx” id=”ctr2”>
<input type=”hidden” name=”_viewstate” value=”a0z-426043723…”>
<input name=”mytextbox” type=”text” id=”mytextbox”>
…
需要注意的是,服务控制文本框只是用来解释普通的html。还要注意的是,hidden项的值是_viewstate。这些变量以用户的输入为基础传递表格的状态。这篇短文并没有试图去挖掘服务控制是怎样工作和它们怎样保持状态的细节问题。这些对理解服务控制是怎样将清楚,正确的html语句返回给用户来说是很重要的。因此,就像以前使用asp一样,当将html传给客户端的时候,任何标准的web浏览器可以很好的看见asp+页面。
扩展是有竞争的!:微软的asp+开发小组很清楚扩展 asp应用程序是多么困难。例如,如果你想在你的扩展服务器上创建一个带有许多通用的com元件的庞大的asp应用程序,你要将这个程序移到你的成品服务器中是一个多么令人头疼的事。你要确保所有的com对象存在于两个服务器中,而且在展开一个asp应用程序时,这些已被注册的元件将是最令人头疼的事之一。还有,在扩展服务器和成品服务器之间,你要保持iis的设置要也是很令人烦恼的事。
asp+就将你从这些痛苦中解脱了。最明了的是,asp+的com注册不再是问题了。我不骗你!简单的拷贝com dll你需要有dll目录。就可以了!resvr32是不需要的!asp+也提供一个配置文件(以文本格式),它可以被修改成各种配置,它通常只是在iis管理页面中是可变的。这两个精彩的改变是扩展asp+应用程序具有竞争力的地方。
