使用VB6的新的WebClass技术使得容易创建灵活而又功能 强大的基于Internet应用程序
今年早些时候,我们曾向你展示了如何编写一个注册应用程序,它允许用户访问你的页面并注册一个软件产品.["Create a User Registration Class,"VBPJ 1998年4月和"Add E-Mail Registration to your Server,"VBPJ 1998年5月].在注册后,应用程序将通过e-mail给用户发一个序列号,同时还存在一个跟Web的连接以继续注册过程.早些时候给你示范的VB5应用程序创建了一个运行在Web服务器上的ActiveX DLL和一个测定用户的状态的并适当的调用该DLL的相应的ASP脚本.(Active Server Page).现在VB6为编写这种类型的应用程序提供了一种新的手段,既使用新技术-WebClass.
简而言之,WebClass是运行在Web服务器上的ActiveX DLL.它允许客户端的浏览器上的HTML页的超链接激活服务器DLL中的事件.WebClass的编程模式类似于传统的VB模式-不同之处在于,VB中是窗体中包含控件,而WebClass应用程序是Web页面包含控件.在服务器端,对于开发者来说他知道完整的的VB事件模型,这样可以进行高度的交互式的Web开发.在本专栏中,我们将讨论如何创建一个简单的WebClass应用程序,向你说明这事是多么简单.
为创建一个简单的WebClass应用程序,你应启动VB6并在新工程的对话框中选择IIS应用程序.在属性窗口中将工程命名为SimpleReg.双击工程浏览器中的WebClass设计器.(你能可通过View菜单看到属性窗口和工程浏览器).在属性窗口中,命名WebClass为wcSimple并在NameURL属性中输入SimpleReg.这将在编译ActiveX DLL时创建一个名为SimpleReg.asp的启动文件.接着保存该工程.
一个WebClass应用程序通过使用HTML模板在用户的浏览器上显示HTML.由于VB6没有包括HTML编辑器,你必须在VB6外创建一个HTML模板(VB6的DHTML设计器完全跟WebClass无关).你可以用任意的HTML编辑器,但由于Visual Studio包括Visual InterDev(VID) 6.0,所以VID是合理的选择.
在VB6的Tools|Options菜单中为Visual Basic设定Visual Staudio为缺省的HTML编辑器.在Advanced标号,将如下Visual InterDev的路径-C:Promram FilesMicrosoft Visual StudioCommonIDE|IDE98Devenv.exe填入外部的HTML编辑框中.你将通知Visual InterDev制作用于你的工程的模板文件的副本.如:你的模板叫WebPage.htm的话,那InterDev创建一个名为Web1Page.htm的副本.如果你用记事本或其他编辑器创建你的模板时请考虑到这一点.
在例程代码中,SimpleReg.htm文件是一个由Visual InterDev创建的模板.在WebClass设计器的左边的窗格中,选择HTML Template WebItem文件夹.如下操作可在工程中添加SimpleReg模板:点击AddHTML Template WebItem键并在文件选择对话框中选择SimpleReg.htm文件(见图1).命名该新的WebItem为tplSimple.双击tplSimple查看关于WebClass的代码.找到WebClass_Start过程并用如下代码代替原来生成的代码以在加载WebClass时显示模板:
Private Sub WebClass_Start()
'显示主要的HTML模板 www.knowsky.com
Session("Title") = "Enter Your" & "Registration Information"
tplSimple.WriteTemplate
End Sub
WebClass_Start过程类似于传统的VB应用程序的Form_Load过程.运行程序并观看你的浏览器所展示的HTML页.退出浏览器并终止VB应用程序.(这是在调试开发过程中的正常的关闭WebClass的方法).
在WebClass设计器中,右击tplSimple WebItem并从上下文菜单中选择编辑HTML模板.你将在你的缺省的HTML编辑器中看到模板页.阅读源代码,你能看到这是一个有三种特殊的被称为标签的部分组成的简单的页,格式如下:
<TitleWC@TAGTITLETitle</WC@TAGTITLE
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/asp/)这些标签的文本部分的("Title")在运行时被你所添加到WebClass的代码取代.当执行WrieteTemplate方法时,它为HTML模板中的所找到的每个标签调用一次称为ProcessTag的特殊过程.回到VB,双击tplSimple WebItem显示代码窗口.在代码窗口的上部的组合框内选择tpSimple_ProcessTag过程,并添加如下代码:
Dim sHTM As String
Select Case TagName
Case "WC@TAGTITLE"
TagContents =Session("Title")
Case "WC@TAGMAIL"
sHTM = "Enter Email Address:<br"
sHTM = sHTM & "<input type= 'text'"
sHTM = sHTM & " name= 'Email'<br"
TagContents = sHTM
Case "WC@TAGNAME"
sHTM = "Name:<br"
sHTM = sHTM & "<input type= 'text'"
sHTM = sHTM & " name= 'Name'<br"
TagContents = sHTM
End Select
回传TagContent参数中的HTML代码以替换标签.在tplSimple中设定断点.WriteTemple加到WebClass_Start过程中,并运行你的应用程序.在断点,用F8单步调试该工程以看看事件的发生的顺序.你将看到ProcessTag过程被调用了三次-为模板中的每个标签调用一次.真正酷的事是:在运行过程中过程将用能在浏览器中产生文本框的HTML代码取代E-mail和Name标签.
能交互式地调试你的服务器