一、概述
大家知道,IIS(Internet Information Server)應用程序是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事件代碼如下:
Private Sub Webclass_Start() Set NextItem=SearchTpl End sub |
2、添加HTML模板到Webclass
添加HTML模板到IIS應用程序,可使Webclass在響應用戶請求時向瀏覽器發送HTML頁面。當添加一個模板到Webclass時,要選擇一個與它關聯的HTML頁面。一個Webclass可以包含多個模板Webitem,但每個模板Webitem僅能表示一個HTML頁面。你必須為每一個HTML頁面添加相應的模板。在插入一個HTML頁面文件之后,可以使用HTML編輯器對頁面的內容和布局進行更改。例如,我們添加一個名為SearchTpl的模板Webitem,它與SearchCondition頁面關聯,并編寫Respond事件將此HTML頁面的內容寫到瀏覽器。
Private Sub SearchTpl_Respond() SearchTpl.Write Template End Sub |
與SearchTpl模板關聯的SearchCondition頁面讓用戶輸入檢索條件。其內容如下:
<HTML> <head> <metahttp-equiv="Content-Type" content="text/HTML;charset=gb_2312-80"> <title>檢索條件</title> </head> <body bgcolor="#FFFFFF"> <form action="SearchData_Webclass.asp?WCI=SearchResult" method="POST"> <p>起始日期<input Type="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公文數據庫,創建記錄集并從中檢索滿足條件的信息。
Private Sub SearchResult_Respond() ′為獲取窗體的信息聲明變量 Private sDate1 as String Private sDate2 as String Private sTitle as String Private sCode as String ′獲取窗體參數并賦給變量 sDate1=Request.Form("date1") sDate2=Request.Form("date2") sTitle=Request.Form("title") sCode=Request.Form("code") ′為數據庫連接和記錄集聲明對象變量 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim QueryStr As String′ '形成SQL數據查詢字符串 QueryStr="select form 公文 where "&"日期>="&"#" & sDate1 &"#"& "and" &"日期<="&"# "& sDate2 & "#"&" and" &"文件標題like" & "* "&" *"& sTitle & “ * "&"*"& "and" &"文件字號like"&"*"&" "& sCode&" * "&"" ′建立數據庫連接 cn.ConnectionString="DSN=doc;UID=sa; PWD=sa;DATABASE=document" cn.Open ′創建記錄集 Open QueryStr,cn,adOpenStatic,adlockReadonly ′將結果信息逐個記錄地寫到一個表格 With Response .Write "<HTML>” .Write "<BODY>" .Write "<TABLE BORDER CELLSPACING=1 CELLPADDING=7>" Do While rs.EOF=False .Write "<TR><TD>" .Write rs("文件標題") .Write "</TD><TD>" .Write rs("文件字號") .Write "</TD><TD>" .Write rs("日期") .Write "</TD><TR>" .Write rs("責任單位") .Write "</TD><TR>" .Write rs("主題詞") .Write "</TD><TR>" rs.MoveNext Loop .Write"</TABLE>" .Write"</BODY>" .Write"</HTML>" End With′ '關閉記錄集和數據庫連接 rs.Close cn.Close End Sub |
4、調試IIS應用程序
調試一個IIS應用程序的方法和調試其他VisualBasic應用程序一樣,都是通過進入運行模式來進行的。VisualBasic為IIS應用程序創建虛擬目錄,使用瀏覽器打開相應.asp文件啟動Webclass。調試時,可以使用VisualBasic的所有工具來調試你的工程。如設置斷點、查看變量、調試語句等。
5、部署IIS應用程序
可以使用VisualBasic打包和展開向導來包裝和部署你的IIS應用程序。打包和展開向導將工程的.DLL文件和所有相關的文件包裝到一個“壓縮包”或.cab文件中。然后可以部署這個壓縮包文件和相關文件到一個Web服務器上。
三、小結
利用VisualBasic開發IIS應用程序,不但可以使用VisualBasic的類模塊和ActiveX部件,而且能夠使用VisualBasic所有的工具來調試IIS應用程序。這種開發方法大大簡化了IIS應用程序的開發過程,使我們更加方便地建立功能強大的Web站點。