1.概述

1.概述

本章,我们将开始进入Visual Basic.NET的开发世界,为了有一定的共同语言,我们首先约定一些概念。

.NET是微软公司一系列战略的总称,其中关于软件开发和运行的环境称为.NET Framework。

Visual Studio是微软公司的一个集成开发工具,包括一些特定的版本,如专业版、旗舰版、Express版等等。在本书中使用的Visual Studio 2013中,包括Desktop和Web版本。从第2章开始,我们将统一使用缩写VS表示Visual Studio。

Visual Basic是Visual Studio中重要的一员,从第2章开始,我们也会使用一些缩写,如VB6表示Visual Basic 6及更早的版本,VB.NET表示Visual Basic.NET,而VB则是它们的统称,请大家根据实际情况加以区分。

1.1. VB一家亲

对于上世纪从DOS开始玩编程的朋友,一定对BASIC不陌生,它和汇编、C、C++、dBase、Foxpro等技术一起成为了一个时代的代表。

很快,我们进入了Windows时代。在基于窗口的应用程序开发中,使用传统的C、C++进行工作,相信不少程序员都会很多难忘的经历。而此时,微软推出了Visual Basic,它成为Visual Studio大家庭的一员,和Visual C++、Visual Foxpro,以及同时代的Delphi一起,成为Windows软件开发的强大工具。

Visual Basic大大简化了窗口的创建工作,我们不需要写一行代码就可以创建一个窗口界面,工作效率有多高,相信大家都能理解!而对于越来越多的基于ActiveX技术组件的出现,也让Visual Basic有了更加强大的后援团,众多开发资源的支持,也让Visual Basic几乎无敌于那个时代的Windows桌面应用开发领域。

时过境迁,转眼到了二十一世纪,互联网高速发展,开发技术突飞猛进。微软也放出大招,全面推进.NET战略,无论是Windows操作系统,还是开发工具,都全面进化。此时,Visual Basic也没有被放弃,而是一起进入了.NET大家庭。

在早期的Visual Studio.NET开发环境中,Visual Basic.NET和VC++和C#一起成为了开发语言的三驾马车,而Visual Basic.NET也完全融入了.NET世界,与前一代的Visual Basic相比……,算了,还是别比了,没有什么可比性了,完全不是一回事,要说有那么一点关系,那只是字面上的,如编程语言名称和其中所使用的关键字,看上去差不多,但本质已改变。

当然,这种改变是积极的、有效的和划时代的,完全融入.NET世界的好处就是,在Visual Basic.NET中,可以和C#程序一样,完整地使用.NET Framework中的强大开发资源,这也是基于.NET平台进行软件开发的最大特点和优势之一,无论你熟悉哪种编程语言,都可以有效地使用.NET Framework中的开发资源来提高开发效率。

说到Visual Basic,我们不得不提起它的一个近亲,这就是VBA(Visual Basic Application),如果大家在Microsoft Office中用代码写过宏(Macro),一定对VBA不会陌生了。对于VBA,如果我们熟练掌握了Visual Basic或Visual Basic.NET编程,那么,再熟悉一下Word、Excel等文档的对象结构,就可以很快掌握Microsoft Office的编程工作,对于在Excel经常需要进行大规模计算的工作者来,掌握VBA可以极大地提高工作效率。

Visual Basic的另外一个亲戚就是VBScript,在ASP(不是ASP.NET)开发Web应用的时候,VBScript真的是动态语言的不二选择了。实际上,VBScript已深深地置入到了Windows操作系统,不信?你可以创建一个文本文件,把扩展名修改为.vbs,然后输入以下内容,保存文件,再双击执行,看看会有什么结果。

MsgBox "没有开发工具也能写VB代码"

对于功能简单的计算代码,VBScript就可以了,甚至不需要任何特殊的开发工具;不过,这并不是Visual Basic.NET代码。

好的,现在,我们接下来真正要做的就是讨论Visual Basic.NET编程,相关的主题包括:

  • 编程语言。介绍Visual Basic.NET编程语言的数据处理、逻辑控制等基础知识。
  • 代码结构。我们不在乎是过程式编程或是面向对象编程;在Visual Basic.NET中,我们可以更加自由地选择。无论我们是使用模块还是使用类在组织代码,都一样能够完成各种工作,而我们需要做的就是在了解这些内容后,根据项目实际需求做出自己的选择。
  • 功能实现。学习编程,我们都知道只有基本的代码是不会做出强大功能的软件的,而对于开发资源的利用则可以让我们的软件功能有着无限的可能。所以,学习.NET Framework中的强大开发资源,或者是第三方开发的资源,再或者是我们自己创建的组件,这都是我们实现应用程序功能中所不能缺少的重要组成部分。
  • 封装。封装的作用主要有两种,即简化使用和重复利用。很多开发资源的作用是对于基本的、纯技术性的,以及系统级的功能实现,如文件处理、网络连接、多媒体应用、数据库操作等等。但我们在开发应用程序中,更注重的是用户的需求及软件的功能,如填写表单、保存数据、搜索、图片转换、从网络中获取文件等等。如何将开发资源和软件功能有机的结合,以及如何能够提高使用开发资源的效率。我想,这就是封装的本质所在。

1.2. VB.NET编程基础

本节,我们将介绍关于使用Visual Basic.NET开发的一些基本知识,以便在学习中对代码进行有效地测试。

1.2.1. 开发工具

对于从事任何工作的人来讲,好的工具和方法都是必须的,正所谓“工欲善其事,必先利其器”。软件开发更是这样,如果我们要真正的高效开发软件,就必须有着强有力的开发工具作为支撑。接下来,我们就来讨论关于本书中开发与测试工作中所使用的开发环境及相关工具。

本书中的开发环境,操作系统使用了Windows 7,项目代码都基于.NET Framework 4.0或更高版本,不过,如果大家安装了以下介绍的开发工具,这些都不会再是问题了。

本书中主要使用的代码编辑和测试的开发工具同要是Visual Studio家族中的成员,它们都可以从微软公司网站免费下载使用。我们使用的开发工具主要包括:

  • VS Express 2013 for Desktop,主要用于开发运行于单机的软件类型,如Windows窗体应用程序或命令行应用程序。
  • VS Express 2013 for Web,主要用于开发Web项目,如ASP.NET项目。

此外,本书的数据库主要使用了SQL Server 2012 Express,我们可以从微软公司网站免费下载使用。除了以SQL Server 2012为主介绍数据库的使用,我们还同时考虑了Access和MySQL数据库的应用开发,在桌面或Web应用中,这两种数据库都是比较常用的。

1.2.2. 项目类型

本书会使用三种基本的项目类型,即:命令行程序、窗口应用项目和ASP.NET项目。其中,前两项将在VS Express 2013 for Desktop中开发与测试;ASP.NET项目则在VS Express 2013 for Web中开发与测试;此外,对于正式一些的Web项目,我更喜欢直接使用IIS进行测试。

在介绍Visual Basic.NET编程语言时,我们会更多地使用命令行程序类型,因为这样可以简化很多工作,也使代码更加简洁明了,更易演示最重要的内容。更多功能的介绍过程中,我们会根据需要选择使用窗口应用项目或ASP.NET项目类型进行相关的测试工作。

1.2.3. 第一个程序

说了这么多,大家一定迫不及待地想飚代码了,好的,现在,我们就打开VS Express 2013 for Desktop,通过菜单“新建”->“文件项目”打开项目的创建对话框,如下图:

图像说明文字

我们在左栏模板分类中选择“Visual Basic”中的“Windows”,然后,在模板中选择“控制台应用程序”,也就是我们所说的命令行应用程序。在对话框的下方,我们可以设置项目的名称及项目保存的路径;此外,对于简单的项目,“为解决方案创建目录”选项也可以取消。最后,我们单击“确定”按钮完成项目的创建工作。

项目创建后,我们可以看到Module1.vb文件的内容,如下图所示。

图像说明文字

接下面,我们就可以在Sub Main()和End Sub之间书写测试代码了,如下面的代码,我们将在窗口中显示一行文字,如传统而经典的“Hello, World!”。

Module Module1
    Sub Main()
        Console.WriteLine("Hello, World!")
    End Sub
End Module

我们可以通过工具栏中的“启动”按钮或直接使用键盘上的F5键执行此程序,不过,程序窗口会一闪而过;所以,在测试这类命令行程序时,我们使用键盘组合键Ctrl+F5,此时,程序窗口会等待我们按任意键后再关闭,这样,我们就可以有效地观察程序执行的结果了。如下图,就是本程序执行的窗口。

图像说明文

在Visual Basic.NET开发的项目中,命令行项目会从一个名为Main的子程序(Sub)开始,也就是代码中显示的内容;而窗口程序会从一个窗体(Form)开始,这些都可以通过项目的属性进行设置,如我们通过菜单“项目”->“(项目名称)属性”就可以打开这个项目的属性页,其中,我们可以设置命令行程序的启动模块,此例中默认为Module1,如下图。

图像说明文字

下面,我们就练习一下在项目中创建文件,比如,我们再创建一个模块文件。通过菜单“项目”->“添加模块”,我们可以打开添加模块文件的对话框,如下图。

图像说明文字

新的模块文件名称为“Module2.vb”,我们暂时不需要修改,单击“添加”按钮确定创建;然后,我们可以看到它的内容,如下面的代码。

Module Module2

End Module

然后,我们可以在这个模块中再添加一个名为Main的子程序,如下面的代码(Hello/Module2.vb文件)。

Module Module2
    Sub Main()
        Console.WriteLine("Module2 is working.")
    End Sub
End Module

最后,我们修改项目属性,将“启动对象”设置为“Module2”,如下图所示。

图像说明文字

现在,我们再使用Ctrl+F5启动程序就可以看到,程序会从Module2模块中的Main方法启动,如下图所示。

图像说明文字

1.2.4. 语句

在代码中,语句是基本的执行单位,在VB中,语句是以行作为基本形式定义的,也就是说,默认情况下,一行代码就是一条语句,如下图就是前面所执行代码的说明。

图像说明文字

我们可以看到,在VB中的语句条理非常清楚,而且,代码的结构也都是使用自然语言(英语)定义,所以,也非常容易理解。如果说学习编程还能学习一点英语,那么,VB还真的有一点这个功能!^_^

虽然在VB代码中,我们也可以通过“ _”符号将语句分写在两行,或者是使用冒号(:)将两个语句连接在一行,但出于代码的可读性考虑,我们并不建议这样使用。

不过,有时候由于一行代码过长,我们会在列出代码时使用" _"将代码分行书写,这是一个空格和一个下划线,如下面的代码。

Dim num As Integer  _
= 99

它和以下代码的含义是相同的。

Dim num As Integer = 99

除了以行为基本语句单位,我们还可以看到,在VB的语句中,空格的作用也非常重要,它用于对关键字、标识符、数据等内容进行有效的分隔。

也许你已经发现了,在输入VB.NET代码时,字母的大小写其实并不重要,这也是VB代码的默认方式,我们也可以通过修改修改参数来改变这一规则;实际上,合理地利用这一点是可以减少代码的输入错误的,这是VB给程序员的福利,如果没有特殊要求,我们也不需要去修改VB的默认设置了。

1.2.5. 注释

在代码中添加注释是一项很常见,同时,也是很重要的一项工作,在VB.NET代码中,我们可以使用三种方式添加注释。

  • 第一种是使用一个英文单引号作为开始,单引号后面的内容,一直到本行结束都作为注释。
  • 第二种方式是使用REM语句,即REM加一个空格,然后,后面的内容直到本行结束也都作为注释内容。
  • 第三种是使用三个英文单引号开始,可以通过一系列的标记来格式化注释内容,这种注释最大的功能就是可以通过工具自动生动代码的说明文档。

我们知道,实际上,对于代码功能最好的解释就是代码本身,但有些时候,代码的逻辑可能真的很复杂,这时候,我们使用一个注释来说明代码的目的,会帮助代码的阅读者(包括代码的原创者)很好地理解代码的功能。但在使用注释时,我们也应注意一些问题,如:

  • 注释应该简洁、明确,只需要说明代码的目的,而不需要对代码进行重复性的说明。
  • 应注意注释与代码一起更新。
  • 我们还可以使用空的注释行有效地分隔代码的功能区,使代码的的结构更加清晰。

1.2.6. 命名空间

命名空间(Namespace)是对代码进行组织和管理工作的非常有效的方法。在.NET Framework中,开发资源都是以命名空间的形式进行管理和组织的,在介绍相关内容时,我们会给出它们在.NET Framework中定义的命名空间,以方便大家查阅详细的说明。如.NET Framework中标准数据类型都定义在System命名空间中。

在VB.NET代码文件中,如果我们需要使用哪个命名空间中的开发资源,可以在文件的顶部使用Imports语句导入相应的命名空间,如:

Imports System
Imports System.Data
Imports System.Data.SqlClient

当我们创建自己的代码库时,也可以使用命名空间,此时,我们使用Namespace...End Namespace语句结构来定义命名空间。如果命名空间有多级,我们可以直接在名称中指定或使用嵌套的格式,如下面的两种形式。

Namespace vbchef.webx
    ' 
End Namespace

或:

Namespace vbchef
    Namespace webx
        '
    End Namespace
End Namespace

此外,本书中封装的代码位于vbchef命名空间。

1.3. 小结

本章,我们了解了如何使用用Visual Studio.NET开发环境来编写Visual Basic.NET代码,并进行测试;同时,也了解了VB.NET中代码的一些基本结构。下一章,我们将开始讨论更多的VB.NET开发知识。

目录

  • 前言
  • 1.概述
  • 2.基本数据类型
  • 3.程序流程控制
  • 4.代码组织与封装
  • 5.枚举
  • 6.结构
  • 7.面向对象编程
  • 8.类的继承
  • 9.接口
  • 10.设计模式基础
  • 11.事件与委托
  • 12.泛型
  • 13.异常处理
  • 14.数组与集合
  • 15.字符串与散列算法
  • 16.日期与时间
  • 17.文件系统
  • 18.图形图像
  • 19.网络
  • 20.数据库应用基础
  • 21.创建数据层组件
  • 22.获取系统信息
  • 23.Windows窗体应用代码封装
  • 24.ASP.NET应用开发基础