本文介绍了利用visualbasic开发iis应用程序的方法和步骤。使用这种开发方法不但大大简化了iis应用程序的开发过程,而且使我们的web站点具有更强的功能和更大的灵活性。
一、概述
大家知道,iis(internetinformationserver)应用程序是visualbasic应用程序,它在动态的、基于浏览器的应用程序中使用html和已编译的visualbasic代码。iis应用程序驻留在web服务器上,接受来自浏览器的请求,运行与请求相关联的代码并返回响应到浏览器。iis应用程序可以使用visualbasic代码来完成以前用脚本、cgi处理和其他方法完成的功能。iis应用程序可以在任何浏览器上运行,因此它很容易得到广泛的应用。对用户来说,一个iis应用程序好象是由一系列的html页面组成。对开发者来说,一个iis应用程序是由一些被称为webclass的特殊类型对象组成。而webclass包含一系列称为webitem的资源。webclass作为应用程序的核心,处理来自浏览器的数据并向用户发送信息。webitem是webclass为响应一个请求发送给浏览器的html页面和其他数据。
二、iis应用程序的开发过程
iis应用程序的开发过程大体分为五个步骤。我们结合一个公文数据检索程序来说明。
1、建立iis应用程序工程
当建立一个iis应用程序时,应选择iis应用程序类型工程。iis应用程序工程是一个activexdll工程类型,它自动包括一个activex设计器。这个称为webclass的设计器作为创建应用程序的基础。一个webclass设计器对应一个webclass,但它可以包含多个html模板和webitem。如果想在应用程序中包括多个webclass,必须在工程中插入另外的设计器。多数情况下,必须编写代码告诉webclass当应用程序第一次启动时做哪些工作,使用start事件来完成它。当用户第一次访问你的应用程序时,start事件发生。使用start事件代码漫游到应用程序中的第一个webitem。
例如,我们建立一个名为searchdata的iis应用程序,编写webclass的start事件代码如下:
privatesubwebclass_start()
setnextitem=searchtpl
endsub
2、添加html模板到webclass
添加html模板到iis应用程序,可使webclass在响应用户请求时向浏览器发送html页面。当添加一个模板到webclass时,要选择一个与它关联的html页面。一个webclass可以包含多个模板webitem,但每个模板webitem仅能表示一个html页面。你必须为每一个html页面添加相应的模板。在插入一个html页面文件之后,可以使用html编辑器对页面的内容和布局进行更改。例如,我们添加一个名为searchtpl的模板webitem,它与searchcondition页面关联,并编写respond事件将此html页面的内容写到浏览器。
privatesubsearchtpl_respond()
searchtpl.writetemplate
endsub
与searchtpl模板关联的searchcondition页面让用户输入检索条件。其内容如下:
<html>
<head>
<metahttp-equiv="content-type"content="text/html;charset=gb_2312-80">
<title>检索条件</title>
</head>
<bodybgcolor="#ffffff">
<formaction="searchdata_webclass.asp?wci=searchresult"method="post">
<p>起始日期<inputtype="text"size="10"name="date1"></p>
<p>终止日期<inputtype="text"size="10"name="date2"></p>
<p>文件字号<inputtype="text"size="50"name="code"></p>
<p>文件标题<inputtype="text"size="50"name="title"></p>
<p><inputtype="submit"name="submit"value="确定">
<inputtype="reset"name="clear"value="清除">
</p>
</form>
</body>
</html>
3、添加自定义的webitem到webclass
自定义的webitem允许你通过visualbasic代码动态地向浏览器发送响应。自定义的webitem通常是一组过程代码。iis应用程序中的大多数处理发生在自定义webitem的事件过程中。iis应用程序接收html页面的请求,与webitem的事件进行匹配,并运行相应的事件过程代码。例如,我们添加一个名为searchresult的自定义webitem。它使用request对象在searchcondition页面窗体中获取用户输入的查询条件,然后建立一个连接到ado公文数据库,创建记录集并从中检索满足条件的信息。
privatesubsearchresult_respond()
′为获取窗体的信息声明变量
privatesdate1asstring
privatesdate2asstring
privatestitleasstring
privatescodeasstring
′获取窗体参数并赋给变量
sdate1=request.form("date1")
sdate2=request.form("date2")
stitle=request.form("title")
scode=request.form("code")
′为数据库连接和记录集声明对象变量
dimcnasnewadodb.connection
dimrsasnewadodb.recordset
dimquerystrasstring′
'形成sql数据查询字符串
querystr="selectform公文where"&"日期>="&"#"&sdate1&"#"&
"and"&"日期<="&"#"&sdate2&"#"&"and"&"文件标题like"&"*"&"*"&stitle&“*"&"*"&"and"&"文件字号like"&"*"&""&scode&"*"&""
′建立数据库连接
cn.connectionstring="dsn=doc;uid=sa;
pwd=sa;database=document"
cn.open
′创建记录集
openquerystr,cn,adopenstatic,adlockreadonly
′将结果信息逐个记录地写到一个表格
withresponse
.write"<html>”
.write"<body>"
.write"<tablebordercellspacing=1cellpadding=7>"
dowhilers.eof=false
.write"<tr><td>"
.writers("文件标题")
.write"</td><td>"
.writers("文件字号")
.write"</td><td>"
.writers("日期")
.write"</td><tr>"
.writers("责任单位")
.write"</td><tr>"
.writers("主题词")
.write"</td><tr>"
rs.movenext
loop
.write"</table>"
.write"</body>"
.write"</html>"
endwith′
'关闭记录集和数据库连接
rs.close
cn.close
endsub
4、调试iis应用程序
调试一个iis应用程序的方法和调试其他visualbasic应用程序一样,都是通过进入运行模式来进行的。visualbasic为iis应用程序创建虚拟目录,使用浏览器打开相应.asp文件启动webclass。调试时,可以使用visualbasic的所有工具来调试你的工程。如设置断点、查看变量、调试语句等。
5、部署iis应用程序
可以使用visualbasic打包和展开向导来包装和部署你的iis应用程序。打包和展开向导将工程的.dll文件和所有相关的文件包装到一个“压缩包”或.cab文件中。然后可以部署这个压缩包文件和相关文件到一个web服务器上。
三、小结
利用visualbasic开发iis应用程序,不但可以使用visualbasic的类模块和activex部件,而且能够使用visualbasic所有的工具来调试iis应用程序。这种开发方法大大简化了iis应用程序的开发过程,使我们更加方便地建立功能强大的web站点。
->