摘要:[原文作者]:Beth Massi
[原文链接]:An Example of Dynamic Programming in VB
在论坛里已经有很多人问我要VB动态编程的实例。大家都已经了解使用动态编程的优势,但对于如何在VB中使用的一些细节仍不太清楚。由于动态编程这个词是在最近才开始流行的,现在仍有很多读者不熟悉这个术语,对于这些读者,我想首先要简单介绍一下什么是“动态”。
其实我的背景也是来自于一种类似Visual Basic的动态编程语言,但是相比于VB,他有更好的数据处理和综合查询能力,并且从1995年后,他也更倾向于面向对象编程。这个语言就是Visual FoxPro。VFP和VB都具有的一些优势包括他们都很容易对对象进行操作,并且在设计时并不要求完全明确数据的类型,也就是所谓的弱类型的语言。VFP所特有的优势是能够动态执行代码,较强的交互性和支持游标,对矩阵数据源的综合查询能力。它也丰富了基于元数据的编程风格,使它能够在运行过程中改变应用程序的行为而不需要重编译。VFP 的缺点是它是完全的动态,而没有任何的静态输入检查。大家都知道你要是不仔细的话,它会给你带来很大的麻烦。。
现在VB 9既有集成查询(Linq,并且它比VFP更完善)又有静态类型检查,所以我会选择VB。VB支持动态类型,当需要的时候,也支持动态类型。这是我所知的唯一一种兼具静态和动态类型能力的语言。对于那些我曾经专注于开发的基于数据和信息系统的应用程序来说,这是一个巨大的胜利。我们需要能够简单的对这类应用程序进行设置和个性化而不需要重编译,同样我们也需要一种语言能够让我们在简单的做这些操作的同时也能够减少写代码的工作。
Visual Basic动态编程的构建和交互性仍有很大的拓展空间,并且我认为在VB 10里我们就能够看到这些改进,不过,我还是想向你展示一下使用VB 8 (VS 2005)和VB 9 (VS 2008)来做动态编程的优势。为了证实这点,我会创建一个简单的动态UI界面,他会通过读取一个XML文件来在Windows Form界面上显示一些控件。我们将用VB 8来做这个工作,同时我会在使用VB 9和VS 2008开发程序的时候,演示一些XLinq的使用。
一个VB 8.0, VS 2005动态编程实例
我已经创建了一个名为questions.xml的XML文件,该文件包含了一些关于一个调查表格的信息,我想通过这些信息动态的创建这个调查表。它不仅包含了这些问题的本身,同时也包含了他需要显示的控件类型(和一个能够找个这个控件的集合),还有一些其它的附加属性如前景色和背景色:
<?xml version="1.0" encoding="utf-8" ?>
<questions>
<question>
<assembly>System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
<control>System.Windows.Forms.TextBox</control>
<text>This is the first survey question.</text>
<height>35</height>
<forecolor>Blue</forecolor>
<backcolor>Control</backcolor>
</question>
<question>
<assembly>System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
<control>System.Windows.Forms.TextBox</control>
<text>This is the second survey question.</text>
<height>100</height>
<forecolor>Red</forecolor>
<backcolor>Pink</backcolor>
</question>
<question>
<assembly>System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
<control>System.Windows.Forms.Label</control>
<text>This is the third survey question.</text>
<height>80</height>
<forecolor>Cornsilk</forecolor>
<backcolor>Black</backcolor>
</question>
<question>
<assembly>System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
<control>System.Windows.Forms.Button</control>
<text>This is the fourth survey question.</text>
<height>30</height>
<forecolor>HotPink</forecolor>
......[
阅读全文]