English

飞跃:Visual Basic.NET

2001-06-06 来源:中华读书报 □靳慧峰 我有话说
V isu a l Basic.NET对VB做了重要的改变。C++革命性地跳跃到.NET后有了一个新名字:C#,而V isu a l Basic的名字没变。然而,如果把VB.NET当作语法相似的一门新语言而不是简单的“升级”,可能掌握起来就要容易一些。因为这次升级与其说是VB的一个新版本,还不如说是迁移到一个新平台上,这种迁移和从DOS迁移到W in-d ow s的跨度差不多。

VB.NET拥有的第一项新功能就是继承能力。继承是VB开发者长期以来要求得最多的功能。V isu a l Basic现在是真正的面向对象语言了。V i-su a l Basic.NET现在提供大量面向对象功能,例如从其他类导出想创建的类。像在其他面向对象语言里一样,现在还能够覆盖基类的方法和属性,并且能实现多态以创建健壮的、扩展性好的组件。

另一个改变发生在表单身上,表单现在是类模块,就是说类本身包含建立表单的所有代码。这个改变同时带来强大的新功能,包括继承这些表单的能力。M ic ro so ft把这一技术称为可视化继承。

有了上面所述的特性,VB.NET就具有了很强的代码复用能力。代码复用简化了开发过程,像可视化继承这样的功能就有利于更简单、更强大的代码复用。代码复用在.NET之中使用范围更广,通过支持VB.NET的通用语言运行库(C om m o n Lan gu ag e R un tim e CLR),还可以继承在其他VS.NET语言里定义的类。例如C#类,就能从VB里继承。

VB.NET的面向对象更彻底:一切都是对象。这样我们使用W ind ow s API的机会可能就会大大减少,相关的功能集符合逻辑地包含在对象里。这种处理方式的另外一个好处就是:类把相关的功能很好地组织了起来。

可能被讨论得最多的VB.NET特征就是CLR,VB运行在它的顶层,是CLR提供了VB.NET的许多关键功能,例如跨语言继承性以及自由线程等。

V isu a l Basic.NET的面向对象功能很强大,但第一次启动VB.NET时往往还注意不到。可能注意到的第一件事就是它的IDE。IDE的改变远比外表显示的深刻。所有.NET语言使用相同的IDE,并且IDE中的新工具功能强大又易于理解。能把任何一个设计窗口设置为自动隐藏(就像你能自动隐藏W ind ow s任务栏那样),这样就大大地减少了混乱。主工作区域是一系列选项卡,这意味着IDE不再同时显式多个表单和代码模块。当打开对象的源代码时,IDE在它的主工作区域为工作的对象添加一个新的选项卡。

另一个变化就是VB.NET的表单,M ic ro so ft废弃了旧的表单引擎而使用W ind ow s Fo rm代替。所有基于CLR的语言都使用W ind ow s Fo rm引擎。

除了新的W ind ow s Fo rm引擎,.NET还包括一个为创建W eb表单而特别设计的表单引擎。这些被称为W eb Fo rm的表单很好用,就像以前的VB能很容易地为传统W ind ow s桌面应用程序创建表单一样,W eb Fo rm让你能方便地为W eb创建表单。W eb Fo rm是ASP.NET里的技术,能让你使用熟悉的RAD工具创建带有代码的表单。创建的ASP.NET代码编译并驻留在服务器上,并在那里被执行,然后以HTML方式发送给任何一个支持HTML 3.2的浏览器。底层结构捕获客户端上的事件数据,并把它发送给服务器。这意味着可以使用各种用户界面工具,可以利用现有的表单设计技巧,而且应用程序界面是不依赖浏览器的。如果可以放弃不依赖浏览器,你还有另一个选择来利用In te rn e t Exp lo re r某些功能特有的优势。W eb Fo rm使支持W eb的应用程序能更容易地创建更好、更丰富多彩的用户界面。

VB.NET里的另外一个重要的面向W eb的功能是:W eb服务。W eb服务的本质就是使用标准协议的、由W eb服务器提供的、类似于COM的对象。注意在技术上,W eb服务并不是COM对象,但和COM对象的表现方式很相像。M ic ro so ft希望看到所有的公司使用W eb服务,并且未来的应用程序可以简单地“粘”在不同的W eb服务上,就像现在可以使用V isu a l Basic fo r App lica tio n s(VBA)建立基于O ffice和支持VBA的程序的解决方案一样。

M ic ro so ft彻底更新了它的技术,而不仅仅是核心语言。例如,在V isu a l Stu-d io.NET里同时提供了A-DO.NET,这是有特殊优点的下一代Ac tiv eX D a ta O b jec ts(ADO)版本。它的一个灵活改变是:ADO.NET用Ex ten-sib le M arkup Lan gu ag e(XML)作为在组件之间传递数据集的格式。这意味着接收组件不一定必须是ADO.NET组件,同时接收组件可以接受任何XML格式的数据集。谈到XML,它支撑着VS.NET中的任何东西,从配置文件到远端过程调用。ADO.NET在处理断开的数据集时比ADO的性能要好,并且具有更好的伸缩性。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有