尽管在Visual Basic 6中也有一些有关互联网功能的组件,例如WebClasses、Winsock和 WebBrowser控制。
尽管在Visual Basic 6中也有一些有关互联网功能的组件,例如WebClasses、Winsock和 WebBrowser控制,但也仅此而已,它再也没有其他更令人激动的功能了。尤其是WebClasses,更象是后来添上去的,简直可以说是没有一点用处。
但在VB.NET中,网络功能则扮演着重要的角色。首先,VB.NET中有Web Services,它将是DCOM的取代者。其次,VB.NET中还有Web Forms。Web Forms可以使用户无需使用古老的ASP或者CGI就能有效地建立全交互的互联网网站。(仅仅是理论上是如此,我并不希望你真的这样作。)
理论
在介绍Web Forms的具体细节之前,让我们先抽出一点时间来介绍一些理论方面的基础知识。
那么我们现在使用的互联网开发工具有什么不足之处呢?对于任何比较重要的开发活动,一般都需要用到ASP,但我必须说明的是,我并不喜欢它。
首先,它会使我们所编写的代码显得凌乱。我们必须将表示层(实际的HTML代码)与ASP代码混在一块儿。我们应该将所有代码都隐藏在窗体的后面,尽管有几种方法能够解决这一问题,但并不是十分理想。
其次,必须浪费时间对所有使用老式计算机的用户提供支持,如果这些用户的浏览器不支持JavaScript,我们就需要发现这一问题,并通过修改网页,满足用户的需求。
此外,还存在状态管理问题。如果有人登录了网站,而我们希望知道有关它的基本情况,就需要使用Session对象。当有多台机器需要访问Session对象时,网站的负荷就会很大,这时我们又会遇上麻烦。
令人不可思议的是,VB.NET中的Web Forms将能够使所有这些问题迎刃而解。Web Forms是全新的ASP.NET(不再是ASP+),它们可以使用我们在VB.NET中有效地创建交互式互联网网页,而且这一工作还非常地轻松。
我们只要简单地在VB.NET中创建一个Web Form即可。这一过程与设计一个WebClass有点类似,但令人遗憾的是,我们只能在FrontPage中设计好网页,然后把生成的HTML代码传送给VB.NET中的Web Form。
提示:尽管可以将在FrontPage中生成的HTML代码传送给VB.NET中的Web Form,但这与事实有一定的出入。在我的多次试验中,似乎在网页比较简单时没有什么问题,但如果网页的输出变得复杂时,就会出错。在以后的版本中这一问题应该得到修正。
因此,我们可以通过Web Form创建基本的网页,然后在VB.NET中添加交互性元素━━例如文字框或提交按钮,此外,还可以在其中添加不需要进行独立下载的更高级的HTML功能━━Web Controls。这样设计出来的网页可以兼容所有的浏览器。
提示:VB.NET中捆绑有许多Web Controls,例如,我们在稍后会使用到的Calendar控制。
在设计出网页和添加上交互性元素后,还需要再添加一些代码使得二者能够更好地融合在一块儿。也就是说,我们在Web Form上有了一个文本框和按钮,但还需要编写一段代码,获得在文本框中输入的数据并在标签中显示它,或者把它添加到数据库中、或者在一个用户列表中进行校验,然后把用户定期导向到成员区中。
这里的关健问题是我们可以将整个网页和对象当作一个对象来处理。你再也无需象在原来的ASP中那样请求一些窗体字段,而只需象在Windows Form中那样调用对象即可。
在把ASP.NET与ASP进行比较后,我们再来看看我在上面提出的问题,并找出如何解决它们的办法。
首先,是HTML、ASP代码混用的问题。在VB.NET中不会遇到这一问题,HTML网页与所使用的代码是完全分离的,在Web Form上只有一行代码与所使用的代码模块有关,其他的工作有互联网服务器来完成。
提示:象ASP文件有.ASP后缀那样,Web Forms有一个.ASPX后缀。当互联网服务器向用户提交这一网页时,.NET Framework首先自动地对它进行处理,例如,Web Controls被转换为HTML代码,编译代码等,我们在后面会更详细地谈到这一问题。
第二,使用原来的ASP,我们必须在检查用户的浏览器并对内容进行适当的修改使它的兼容性更好方面花费一定的时间。在VB.NET中,它可以为我们完成所有的处理,.NET Framework只能产生可以被目标浏览器所识别的HTML代码。
那么状态管理如何呢?对于大多数的ASP开发人员而言,这都是个难以处理的问题。在ASP.NET中,状态是被存储在发给用户的网页中的(以一种隐藏字段的方式。)。在下次再发送该网页时,就可以读取和使用其中的数据。
提示之一:我们可以把ASP.NET中的状态管理认为与使用Property Bags类似,它会自动地在Property Bags中添加信息,例如文本框信息。此外,我们还可以自己添加相关的信息,然后再使用它们。
提示之二:测试表明,与传统的ASP中的Session对象相比,使用这种状态管理的方法在性能上有较大的提升。
提示之三:安全仍然是个问题,数据编码的标准化程度非常高,如果在实际的操作中需要真正有效的安全,还需要根据具体的情况,将状态管理与现有的数据库口令记录等类似的东西结合起来。
好了,这就是ASP.NET,它是一种崭新的工具,它所提供的功能是ASP开发人员所梦寐以求的。如果你使用Visual Basic作为开发工具,并希望涉足互联网应用开发,这将是一个理想的机会。