标题：Visual Basic 2005
Visual Basic（VB）概述
发展历史
1991年，微软公司推出了Visual Basic 1.0版。这在当时引起了很大的轰动。这个连接编程语言和用户界面的进步被称为Tripod（有些时候叫做Ruby），最初的设计是由阿兰·库珀（Alan Cooper）完成的。许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件。其实，以我们现在的目光来看，VB1.0的功能实在是太弱了；（不过最近VB6.0, 的功能相当大！）。但在当时，它是第一个“可视”的编程软件。这使得程序员欣喜之极，都尝试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出VB2.0，VB3.0，4.0三个版本。并且从VB3开始，微软将ACCESS的数据库驱动集成到了VB中，这使得VB的数据库编程能力大大提高。从VB4开始，VB也引入了面向对象的程序设计思想。VB功能强大，学习简单。而且，VB还引入了“控件”的概念，使得大量已经编好的VB程序可以被我们直接拿来使用。VB1.0的DOS版本VB1.0于1991年发布。这个连接编程语言和用户界面的进步被称为Tripod（有些时候叫做Ruby），最初的设计是由阿兰·库珀（Alan Cooper）完成的
2002年Visual Basic .NET 2002 (v7.0)问世，2003年Visual Basic .NET 2003 (v7.1)问世，2005年11月7日Visual Basic 2005 (v8.0)问世，同时间推出Visual Basic 2005的免费简化版本Visual Basic 2005 Express Edition给Visual Basic初学者及学生使用。
VB 2005的“显著”优点是，可以直接编写出XP风格的按钮，以及其他的控件。但是其编写的小程序占用近10MB的内存。
通过几年的发展，它已成为一种专业化的开发语言和环境。用户可用Visual Basic快速创建Windows程序，现在还可以编写企业水平的客户端/服务器程序及强大的数据库应用程序。
VB会吸引更多的赞誉和批评，也会继续为广大的用户和程序员使用。它非常适合用来开发拥有友好界面的程序（比如针对终端的数据），但是不适合开发其它程序（比如联合计算程序）。
现在还有某一些VB软件的精简版，比如VB6的精简版。
语言特性
一个典型的VB进程VB的中心思想就是要便于程序员使用，无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统，但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合，并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内，所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上，但是随着计算机速度的飞速增加，关于性能的争论已经越来越少。
窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件（比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供，但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动，这样就形成了一个动态的程序。举个例子来说：窗体的大小改变事件中加入了可以改变控件位置的代码，在运行时候每当用户更改窗口大小，控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码，程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。
VB的程序可以包含一个或多个窗体，或者是一个主窗体和多个子窗体，类似于操作系统的样子。有很少功能的对话框窗口（比如没有最大化和最小化按钮的窗体）可以用来提供弹出功能。
VB的组件既可以拥有用户界面，也可以没有。这样一来服务器端程序就可以处理增加的模块。
VB使用参数计算的方法来进行垃圾收集，这个方法中包含有大量的对象，提供基本的面向对象支持。因为越来越多组建的出现，程序员可以选用自己需要的扩展库。和有些语言不一样，VB对大小写不敏感，但是能自动转换关键词到标准的大小写状态，以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的，但是可以关闭这个功能。
VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了建立、使用和重用这些控件的方法，但是由于语言问题，从一个应用程序创建另外一个并不简单。
术语
在讨论Visual Basic时，经常可以听到以下这些术语，因此对这些术语的基本理解十分有帮助。
控件——简单的说，控件就是构成或者说建造Visual Basic应用程序的图形化工具，包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等...。
事件——由用户或操作系统引发的动作。事件的示例有击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制，或从端口接收数据。
方法——嵌入在对象定义中的程序代码，它定义对象怎样处理信息并响应某事件。例如，数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素，它含有定义其特征的属性，定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。
对象——一个控件、窗体等都可被看作一个对象。
过程——为完成某些特定的任务而编写的代码段，过程通常用于响应特定的事件，也可以当作应用程序的用户自定义函数来使用。
属性——属性是组成用户界面的各对象的性质的具体描述。例如上述“对象”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的 属性。属性决定对象的外观，有时也决定对象的行为。对象的属性绝大部分是VB中已经事先定义好的，但也有的属性是需要在应用 过程中才去定义的。属性即可为对象提供数据，也能从对象取回信息。
VB的局限性
继承。VB5和VB6都是面向对象的编程语言，但是不包含继承特性。VB中提供了特殊的类的功能，但是还是不能满足程序员的需求。 包含了所有面向对象的特性。 
多线程支持 (2002以及之后的版本，都支持多线程技术。）
异常处理。中使用了Try-Catch-Finally来处理异常。而VB中只有"On Error Goto line"语句。 
对指针的支持非常有限。 
VB只能支持8到32位的整形，很多语言都有无限制的支持。 
VB不允许在任何数组内存在不变的变量。 
VB不支持以上特性，程序员需要自己建构方法来实现相似的功能。
争议
反对观点：
VB是一种充满了争议的语言：很多程序员对VB程序的质量有强烈的感受。很多人认为VB不配他们使用，认为它是一种给儿童和菜鸟程序员的语言。它自从设计开始就是一种简单的语言。一些C++和Java中的特性在VB中并没有出现。在感受开发的方便和快速的同时，一些类似于编译时进行类型和声明检查的功能在默认情况下是关闭的。这样一些程序员一边感叹VB的易用性，一般沮丧地地看着一些类似于“未定义类型”错误的发生。
一些批评家认为VB的简单特性使得其在未来具有伤害性。很多人自学了VB，但是并没有学到好的编程习惯。当VB进入课堂的时候，学生们不会学到很多基础的程序技术和结构，因为很多技术已经包含在那些对用户可见的组件里面了。不用学习标准的编程习惯，因为VB具有可视化的特性，所以导致了一些莫名其妙的代码的产生。而且很多错误和警告的检查默认情况下都是关闭的，程序员很难找到隐藏的错误。有经验的程序员在用VB编程的时候都会把这些选项打开。
很多批评家批评微软简单地拷贝了BASIC的思想到VB中。著名的计算机科学家Edsger Dijkstra说过一句名言：“如果一个学生最早学过BASIC，那么几乎不可能让他学会优秀的编程：因为这些人已经放弃了涅磐的希望。”（Dijkstra对待Fortran、PL/1、COBOL和APL同样也毫不留情。）
另外一个笑话是：“真正的程序员不用BASIC。12岁以下的孩子才用。”
并不是非常简便，它开发的程序只能运行在Microsoft Windows中。 
个头太大了。Visual Studio要用好几张盘才能装下。VB程序在运行时候还需要一个1.4M大小的运行库。 
IDE中有错误。 
VB不能很好的综合Windows的基础API，很多时候要使用低级运算的“小伎俩”来进行编程。而C语言的低级内存运算比VB的要简单得多。 
支持观点：
但是很多VB的支持者解释说VB的易用性就是它最大的优势，可以让经验丰富的VB程序员或是刚刚懂得皮毛的人都能用自己的方式快速开发程序。而且VB的程序可以非常简单的和数据库连接。比如利用控件可以绑定数据库，这样一来用VB写出的程序就可以掌握数据库的所有信息而不用写一行代码。
很多语言的特性比如GoSub、On Error和用变量名字的最后一个字符判断声明类型（比如字符串型str$）都是从VB中来的。VB的语法和绝大部分语言都不同，可能会让新的程序员混淆。比如声明“Dim a,b,c As Integer”声明了c为整形变量，但是a、b都是Variant类型的。 {这儿我说明一下，如果想申明3个Integer，必须写 Dim a as Integer, b As Integer, c as Integer；而直接写Dim a，后面不写类型，则自动变成Variant类型——占用大量资源。} 还有一些特性，比如下划线字符“_”用于一行代码分多行写时候。一些程序员在使用的时候由于不规范使得便引起报错。
发展时间线
1991年4月，Visual Basic 1.0 Windows版本发布 
1992年9月，Visual Basic 1.0 DOS版本发布。 
1992年11月，VB2.0发布。它对于上一个版本的界面和速度都有所改善。 
1993年夏天，VB3.0发布，分为标准版和专业版。其中包含一个数据引擎，可以直接读取Access数据库。 
1995年8月，VB4.0发布了32位版本和16位的版本。其中包含了对类的支持。 
1997年2月，VB5.0发布。程序员可以用32位的版本导入由4.0版本创建的16位程序，并且能顺利编译。同时还包含了对用户自建控件的支持。 
1998年夏天，VB6.0发布。 
2001年，Visual Basic.net和.NET Framework发布。由于其使用了新的核心和特性，所以很多VB的程序员都要改写程序。 
2003年，Visual Basic.net 2003和.NET Framework 1.1发布。 
2004年，微软开放了Visual Studio 2005的测试版本（代号Whidbey）。包含了.NET Framework2.0的测试版本。 
2005年，微软宣布将不会再对非.NET版本的VB进行支持。VB社群立即作出反应表示关心这个消息，一些老用户还递交了希望能够继续对VB进行技术支持的请愿书。微软目前还不愿意改变他们的决定。 
由VB派生的语言
微软开发了一系列有关VB的脚本语言：
Visual Basic for Applications，即VBA，包含在微软的应用程序中（比如Microsoft Office），以及类似WordPerfect Office这样第三方的产品里面。VBA这样嵌入在各种应用程序中看起来有些矛盾，但是它的功能和VB一样强大。 
VBScript是默认的ASP语言，还可以用在Windows脚本编写和网页编码中。尽管它的语法类似于VB，但是它却是一种完全不同的语言。VBS不使用VB运行库运行，而是由Windows脚本主机解释执行。这两种语言之中的不同点影响ASP网站的表现。 
当微软准备开发一种新的编程工具的时候，第一决定就是利用最抢手的VB6来进行旧改，或者就是重新组建工程开发新工具。微软后来开发了VB的继任者Visual Basic .NET，同时也是.NET平台的一部分。VB.net编程语言是一种真正的面向对象编程语言，和VB并不完全兼容。
关于VB.NET
Visual Studio.net 2005已经在2005年11月7日发布。
Visual Basic.NET(简称VB.NET)是新一代的VB。它不是VB 6.0的简单升级，VB.NET与VB之间有非常大的区别。其新特性主要表现在以下几方面：
1．VB.NET完全集成到Visual Studio集成开发环境中，在这种集成开发环境与VB在若干方面有差异。主要体现在窗体的布局以及菜单等方面都有所不同。
2．VB.NET项目与VB不同。它使用基于文件夹的模型，所有项目均放置在项目文件夹层次结构中。
3．VB.NET中使用ADO.NET来访问数据库，ADO.NET是.NET框架的一部分。在VB.NET中实现数据访问的方法重要有两种：其一是在程序设计阶段，通过创建、配置数据适配器DataAdapter和生成数据集DataSet；其二是在运行中，通过编程方式动态创建配置数据适配器和创建、生成数据集。
4．在VB.NET中是使用ASP.NET技术来编写Web页面的。在ASP.NET中使用的也不是脚本语言，而是真正意义的编程语言。凭借ASP.NET的Web应用程序、XML Web Services等基于Web的功能，使得VB.NET开发Web页面与开发Windows应用程序很相似，Web页面代码也显得有条有理了。
5. VB.NET已经成为完全的面向对象的编程语言。
Visual Basic 2005 的更新情况
Microsoft Visual Basic 2005 从 Visual Basic 语言演变而来，是一种为高效地生成类型安全和面向对象的应用程序而设计的语言。Visual Basic 允许开发人员开发面向 Windows、Web 和移动设备的程序。与所有面向 Microsoft .NET Framework 的语言一样，使用 Visual Basic 编写的程序都具有安全性和语言互操作性方面的优点。
这一代 Visual Basic 延续了为您提供一种简单快捷的方法来创建基于 .NET Framework 的应用程序的传统。
此版本的 Visual Basic 恢复了对“编辑并继续”的支持，并具有可快速开发应用程序的新功能。其中一种称为 My 的功能提供了对以下内容的快速访问：由 .NET Framework 提供的常见任务，与应用程序及其运行时环境相关的信息和默认对象实例。新的语言功能包括循环继续、有保证的资源处置、运算符重载、泛型类型和自定义事件。Visual Basic 与 .NET Framework 和公共语言运行库 (CLR) 完全集成，它们提供了语言互操作、垃圾回收、增强的安全性和版本管理支持。
Visual Basic 编译器和语言
Visual Basic 2005 中的语言改进简化了源代码，并且启用了与使用高级功能的组件的交互。
使用 My 进行 Visual Basic 开发
Visual Basic 2005 提供了用于快速应用程序开发的新功能，旨在于提供强大功能的同时提高效率并简化使用。其中一种称为 My 的功能提供了对由 .NET Framework 所提供的常用功能的访问，还提供了对与应用程序及其运行时环境关联的信息和默认对象实例的访问。这些信息按 IntelliSense 能够识别的格式进行组织，并根据用途按逻辑进行描述。
开发应用程序
My.Application 对象提供对应用程序的访问，允许您轻松地更新应用程序并从中记录信息。My.Application 也可用于访问应用程序的命令行参数，或在应用程序开始或结束时运行代码。
剪贴板
My.Computer.Clipboard 对象提供了更为容易的剪贴板读写访问，同时提供了用于清除剪贴板和确定剪贴板上存储的数据类型的方法。
计算机资源
通过 My 对象可以访问很多计算机资源，包括计算机的时钟、键盘、鼠标、端口和注册表。
文件输入/输出
My.Computer.FileSystem 对象提供可简化文件 I/O 的文件访问方法和属性。使用 TextFieldParser 对象可以分析大型分隔的或固定宽度的文本文件，而像 WriteAllText、WriteAllBytes、ReadAllText 和 ReadAllBytes 这样的方法在提高性能的同时使对文件的读取和写入更加直观。类似地，GetFileInfo、GetDirectoryInfo 和 GetDriveInfo 方法提供关于文件、目录和驱动器的信息。 
网络操作
My.Computer.Network 对象提供方法和属性，可用于上传和下载文件、检查连接状态和确定远程计算机是否可用。
资源
使用 My.Resources 对象可以访问像音频资源、图标资源和本地化资源这样的资源。
可以使用“项目设计器”的“资源”页来添加和管理资源。
用户设置和应用程序设置
使用 My.Settings 对象可以保持和更改用户设置以及读取应用程序设置。有关更多信息，请参见访问应用程序的设置。
也可以使用“项目设计器”的“设置”页来管理应用程序设置。
数据访问
Visual Basic 2005 包括多个用于辅助开发访问数据的应用程序的新功能。数据源配置向导简化了将应用程序连接到数据库、Web 服务和用户创建的对象中的数据的过程。 
新的“数据源”窗口提供了一个用于查看项目可用数据及关联数据的中心位置，并且允许您通过将项从窗口拖到窗体上来创建数据绑定控件，从而降低了数据绑定的复杂性。 
现在可以使用 Visual Studio 生成的新 TableAdapter 对象完成数据集的填充、查询的运行和存储过程的执行。使用新的本地数据功能可以在应用程序中直接包含 Microsoft Access 数据库文件和 Microsoft SQL Server Express 数据库文件。
设计时增强功能
1.编辑并继续
使用“编辑并继续”可以在应用程序在调试器下运行时对其进行更改，而不必停止和重新启动应用程序。继续执行应用程序时会立即应用在中断模式中所做的更改。 
2.“属性”(Property) 窗口中的属性 (Attribute) 编辑
现在可以在“属性”(Property) 窗口中编辑应用到类和方法的公共属性 (Attribute)，而不必在代码中应用它们。 
3.IntelliSense 筛选
现在可以调整代码编辑器中 IntelliSense 提供的详细信息的级别。显示 IntelliSense 窗口时，可以通过单击“常用”选项卡筛选掉不太常用的成员，或通过单击“全部”选项卡查看可用的所有内容。通过调整级别，可以在不需要不常用的或深奥难解的成员时将其轻松筛选出来，或在需要时包含它们。 
4.区域 IntelliSense
“区域 IntelliSense”是一个 Visual Basic IntelliSense 功能，该功能以不同的颜色在语句结束列表中显示不具有足够的权限来在指定的安全区域运行的某些项。使用此设计时支持可以更轻松地开发在部分信任的情况下运行的应用程序。 
5.IntelliSense 代码段
IntelliSense 代码段库由 380 个预编写的代码片段组成。可以向代码添加这些可重用的例程并使用代码包含的指针编辑它们。当在“代码编辑器”中右击然后单击“插入代码段”时代码段可用。它们也可通过键盘快捷键使用。
代码段任务的范围包括创建自定义异常、发送电子邮件消息以及绘制圆形等任务。有些代码段任务则是常用编程结构的简单扩展。该库是可扩展的；您可以创建符合业务需要的代码任务并将其添加到库中。还可以从第三方软件供应商和 Visual Basic 社区站点下载更多库任务。 
6.错误纠正和警告
使用“智能编译错误纠正”，代码编辑器可对常见的错误和警告建议解决方案，并允许您选择适当的纠正措施，然后对代码应用纠正措施。当出现错误时，如果在波形曲线右下方有一个符号，那么，将鼠标悬停在波形曲线上就可将该符号转换为一个智能标记面板。单击该智能标记面板可打开“错误纠正选项”帮助器窗口，此窗口提供错误说明、建议可能的修复方法，并且在适当的位置还允许您预览修复结果。 
7.异常助手
默认情况下，调试应用程序时会打开“异常助手”以辅助处理未处理的异常。如果您选择该选项，则可以更改环境以便在代码内发生任何异常时出现该助手。“异常助手”列出了异常的类型、特定于已引发的异常的消息、疑难解答提示列表和可能应用的操作。 
8.XML 文档
使用 XML 代码文档可以将代码中的类文档化并将该文档公开为 XML。得到的 XML 文档可以用各种方法来使用和显示，从而可以在编写代码时创建代码的文档。 
9.“文档大纲”窗口
除了 ASP.NET 网页和 HTML 页，“文档大纲”窗口现在还支持 Windows 窗体的大纲视图。在编辑器的“设计”视图中，可以使用“文档大纲”窗口来在 Windows 窗体上的控件之间进行导航。若要访问此窗口，请在“视图”菜单上单击“其他窗口”，然后单击“文档大纲”。
用于管理项目、设置和资源的项目设计器
在“项目设计器”中可集中管理项目的属性、设置和资源。它可以使用“项目”菜单上的“属性”命令访问。
设置设计器
使用“项目设计器”的“设置”页可指定项目的应用程序设置，此设置可以是用户范围的或应用程序范围的。此功能替换动态属性。
资源设计器
“资源设计器”是一种用户接口工具，可用来管理项目使用的资源（例如，字符串、图像、图标、音频和文件）。它使用 My.Resources 对象创建您在运行时可以访问的强类型资源。有关通过 My.Resources 对象访问资源的信息，请参见访问应用程序资源。
“项目设计器”的“资源”页承载“资源设计器”的实例，用于在单一位置 (Resources.resx) 存储和维护资源。
ClickOnce 部署
使用 ClickOnce 部署可以发布能像 Web 应用程序一样轻松地安装、更新和运行的、自行更新的 Windows 应用程序和控制台应用程序。
使用“项目设计器”上新的“安全”、“签名”和“发布”选项卡可以自定义 ClickOnce 部署。使用“生成”菜单上新的“发布”命令（或“解决方案资源管理器”中的快捷菜单）来打开“发布向导”（一个分步指导您完成应用程序发布的工具）。
64 位应用程序部署
ClickOnce 和 Windows Installer 部署都支持在 64 位平台上安装。
扩展示例
Visual Basic 2005 附带超过 60 个示例应用程序。涵盖的新功能包括：