第1章 VB.NET概论
1.1 Visual Studio 2015集成开发环境
1.1.1 Visual Studio 2015简介
随着软件开发技术的逐渐发展,越来越多的系统开发者趋向于使用一些集语言编辑、代码编译和调试于一体的综合性软件包,这一趋势促使集成开发环境(Integrated Development Environment,IDE)软件诞生。
IDE是一种综合性的软件开发辅助工具,通常包括编程语言编辑器、编译器/解释器、自动建立工具和调试器,有时还会包括版本控制系统和一些可以设计用户图形(Figure)界面的工具。Visual Studio(VS)是微软推出的开发环境,也是一套基于.NET Framework组件的软件开发工具和技术,可用于构建功能强大、性能卓越的应用程序。 Visual Studio是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML工具、代码管控工具、IDE等。其与.NET Framework的关系如图1.1所示。
图1.1 Visual Studio与.NET Framework的关系
Visual Studio主要包含以下几种功能。
(1)支持多种语言的代码编辑器。 Visual Studio集成开发环境作为多种开发工具的集大成者,提供了功能强大的代码编辑器和文本编辑器,允许开发者编写 VB.NET、VC#、VF#、VC++、 JavaScript、Python等多种编程语言的代码,并可以通过组件的方式安装更多的第三方编程语言支持模块,来支持编写更多的第三方编程语言。
在使用以上各种编程语言编写程序代码时, Visual Studio提供了强大的代码提示功能和语法纠正功能,降低了开发者学习编程语言的成本,提高了程序开发的效率。
(2)团队协作。 Visual Studio提供了代码版本管理工具以及 SVN平台等多种团队协作工具,帮助团队协同开发工作、管理开发进度,提高团队开发效率。另外,用户也可使用*先进的 Team Foundation Server服务器套件,更高效地进行版本控制、工作项跟踪、构件自动化、生产报表与规划工作簿。
(3)多平台程序发布。 Visual Studio具有强大的代码编译器和解析器,可以发布基于桌面、服务器、移动终端和云计算终端的多种应用程序。在非 Windows平台应用方面, Visual Studio也可以开发支持*新 Web标准的前端网页,并针对多种网页浏览器进行调试。
(4)编译部署。
Visual Studio提供了强大的编程语言与中间语言编译功能,可以将其自身支持的多种编程语言和用户扩展的更多编程语言编译为统一的中间语言,并将其打包为程序集,然后将该程序集发布和部署到各种服务器与终端上。
(5)设计用户界面。 Visual Studio提供了功能强大的 Windows窗体设计工具,允许开发者为 Windows应用程序设计统一风格的窗口、对话框等人-机交互界面,使用窗体控件实现软件与用户的交互。 Visual Studio 2015集成开发环境的界面则更加简单明了,集成套件包含开发人员工作效率工具、云服务和扩展等,其基于.NET Framework 4.5/4.6,以及 Visual Studio 2015 CTP(Community Technology Preview)。支持开发面向 Windows 10的应用程序。支持 Microsoft SQL Server、IBM DB2和 Oracle数据库(Data Base,DB)应用程序开发。
(6)跨平台移动设备开发。 Visual Studio 2015支持跨平台移动设备开发。开发人员可以创建适用于 Web、Windows商店、桌面、 Android和 iOS的强大的应用程序和游戏,也可以共享通用基本代码,并在 Visual Studio IDE内执行。所有这些新项目类型都可在“新建项目”对话框中见到。
1.1.2.NET Framework工作原理
.NET Framework框架的基本思想是:将互联网本身作为新一代操作系统的基础,把原有的重点从连接到互联网的单一网站或设备转移到计算机、设备和服务群组上。这样,用户将能够得到更多的服务,从而控制信息的传送方式、时间和内容。
.NET Framework提供许多服务,包括内存管理、类型和内存安全、网络和应用程序部署。它提供易于使用的数据结构和应用程序接口(Application Programming Interface,API),将较低级别的 Windows操作系统抽象化。.NET Framework是 C#、VB.NET等程序运行的平台,可在.NET Framework中使用各种编程语言,如 VB.NET、VC#、VF#、JavaScript、Python等,为这些语言提供了丰富的类库(Class Library)资源。.NET Framework平台构成的整体结构如图1.2所示。
图1.2.NET Framework平台构成的整体结构
.NET Framework体系结构包括以下五部分:
(1)程序设计语言及公共语言规范(Common Language Specification,CLS);
(2)应用程序平台, ASP①.NET及 Windows Forms等;
(3)ADO②.NET及基类库;
(4)公共语言运行库(Common Language Runtime,CLR);
(5)可视化开发环境(Visual Studio)。
.NET Framework是在.NET平台上进行开发的基础, ASP.NET、Windows Forms和 VS.NET都是.NET平台的一部分。它用于.NET应用程序的开发及展示。.NET平台的核心技术包括公共语言运行库、基类库(Base Class Library,BCL)、各种.NET编程语言及 Visual Studio.NET。
公共语言运行库是直接运行在 Windows操作系统上的一个虚拟环境,也是.NET Framework的基础内容。其主要任务是执行和管理任何一种针对.NET平台的所有代码。 CLR可以为应用程序提供很多核心服务,如内存管理、线程管理、远程处理、安全管理、异常处理、通用类型系统与生命周期监控等,并且还可以强制实施代码的安全性和可靠性管理。 CLR结构如图1.3所示。
在 CLR控制下的代码称为托管代码。如图1.3所示,CLR的代码管理功能包括多线程支持(Thread Support)、COM向下兼容(COM Marshaler)、类型检查(Type Checker)、异常处理(Exception Manager)、安全引擎(Security Engine)、调试引擎(Debug Engine)、IL到本机实时编译(IL to Native Compilers)、代码托管(Code Manager)、垃圾回收器(Garbage Collector)、类加载(Class Loader)等。
在.NET Framework的公共语言运行库的运行环境下,组件都建立在一个共同的底层基础上,不再需要源代码管道的烦琐细节,对象(Object)可以直接交互。CLR执行模型如图1.4所示。
CLR现在支持几十种现代的编程语言为其编写代码。这些在.NET基础上编写出来的代码,被以一种中间语言 MSIL(Microsoft Intermediate Language)编译成中间代码,经 CLR的 JIT(Just In Time)编译器再次编译生成二进制代码,在 CLR托管下运行,故这些代码在.NET中称为托管代码(Managed Code),如图1.5所示。所有的 Managed Code都直接运行在 CLR上,具有与编程语言平台无关的特性。而没在.NET的基础上编写出来的代码,如 C、C++、 VB开发出来的 COM组件或者 API,它们一旦编译后就编译成基于操作系统(OS)的二进制机器码,直接与 OS通信,中间没有经过 CLR,故此类代码称为非托管代码,如图1.5中的 ASP.NET。.NET Framework可由非托管组件(Unmanaged Component)承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework不但提供若干个运行库宿主,而且支持第三方运行库宿主的开发。此外, CLR还提供了许多简化代码开发和应用配置的功能,同时也改善了应用程序的可靠性。
图1.3 CLR结构
图1.4 CLR执行模型
有了 CLR,就可以很容易地设计出对象能够跨语言交互的组件和应用程序。也就是说,用不同语言编写的对象可以互相通信,并且它们的行为可以紧密集成。例如,可以定义一个类,然后使用不同的语言从原始类派生出另一个类或调用原始类的方法,将一个类的实例传递到用不同的语言编写的另一个类。这种跨语言集成之所以成为可能,正是由于基于 CLR的语言编译器和由 CLR定义的通用类系统遵循 CLR关于定义新类以及创建、使用、保持和绑定到类的规则。
CLR的上层是.NET Framework类库,或称为基类库,是一个由类(Class)、结构(Structure)、委托(Delegate)、接口(Interface)和值类型(Value Type)组成的库,提供了支持底层操作的一系列通用功能,
并且被设计为构建.NET Framework应用程序、组件和控件的基础。类库是面向对象的可复用的类集合,提供了几乎所有应用程序所需要的公共代码,覆盖了集合操作、线程支持、代码生成、输入/输出(I/O)、数据库访问、 XML支持、目录(Directory)服务、正则表达式、消息支持、映射和安全等领域的内容。类库提供了一个统一的面向对象的、层次化的可扩展的编程接口,可以被各种语言调用和扩展。也就是说,不论 VB.NET、VC#.NET、VF#.NET、 VC++.NET,还是 JavaScript、Python,都可以自由调用.NET Framework的类库。 BCL包含了4500个以上的类和众多的方法、属性,编写程序时可随时使用它们来完成开发者的设计任务。这使得开发者能将精力集中在编写他们的应用领域所特有的应用程序的代码,而不必一再重复编写类似读写文件经常使用的功能的代码。使用它们,可以让开发者开发包含从传统的命令行或图形用户界面(Graphical User Interface,GUI)应用程序到基于 ASP.NET所提供的*新创新的应用程序(如 Web窗体和 XML Web Services)在内的多种模式的应用程序。
图1.5 托管与非托管程序
ASP.NET是微软推出的新一代基于.NET Framework的 Web开发平台脚本语言。能够将代码直接嵌入 HTML,使设计 Web页面变得更简单。虽然 ASP非常简单,但却能够实现非常强大的功能,这一切得益于其组件。特别是 ADO组件,使得在网页中访问数据库易如反掌。这一切推动了动态网页的快速发展与建设,同时使 ASP得到迅速发展。
随着.NET技术的发展,.NET Framework功能越来越强大。在 Visual Studio 2015中,.NET Framework版本升级为4.6,增加了很多新特性。首先,.NET Framework4.6的核心是微软已经开源的.NET Core。开发人员既获得了完整的微软官方支持,又能基于一个开源的.NET构建服务端和云应用。
展开