第1章 C#概述及Visual Studio.NET集成开发环境(IDE)
1.1 .NET框架概述
1.1.1 .NET的定义
.NET技术是微软公司推出的一个全新概念,“它代表了一个集合、一个环境和一个可以作为平台支持下一代Internet的可编程结构”。
通过.NET这个平台,可以使用多种语言开发同一个项目,实现这些语言的跨平台应用。而微软默认的语言是Visual C#.NET。
1.1.2 .NET开发平台
.NET开发平台包括.NET框架和.NET开发工具等组成部分,.NET框架(Framework)是整个开发平台的基础,包括公共语言运行库和框架类库,.NET开发工具包括Visual Studio.NET集成开发环境和.NET编程语言。
1.1.3 .NET Framework 结构
.NET Framework(框架)的组成:公共语言运行时环境(CLR);基类库(BCL);基于ASP.NET编程框架的网络服务和网络表单;Windows桌面应用界面编程组件;数据库访问组件。
它的版本有:
● 1.x:已用于Visual Studio 2003;
● 2.0:已用于Visual Studio 2005;
● 3.5:已用于Visual Studio 2008;
● 4.0:已用于Visual Studio 2010。
Microsoft .NET Framework是一个用于Windows应用程序、Web应用程序、控制台应用程序和智能设备应用程序的平台。.NET Framework提供丰富的类库,程序员可以使用类库来减少需要编写、测试和维护的代码量。
.NET技术的核心是.NET Framework,它是构建于计算机网络基础上的开发工具。.NET Framework的基本结构如图1.1所示。
.NET Framework的两个主要组件,公共语言运行时环境和.NET Framework类库。
(1)公共语言运行时环境
.NET框架的底层是公共语言运行时环境,提供了程序代码可以跨平台执行的机制,另外还提供了内存管理、线程管理、远程处理等核心服务,并还强制实施严格的类型安全检查操作,从而提高代码的安全性、可靠性和准确性。它提供了系统资源统一管理和安全机制。其中,以公共语言运行库为目标的代码为“托管代码”,而不以公共语言运行库为目标的代码称为“非托管代码”。
(2).NET Framework类库
ADO.NET、Windows Forms和ASP.NET等组件库不是C#或Visual Basic.NET语言的一部分,而是进行相应的应用软件开发所必须掌握的。
所有.NET开发语言的能力和执行速度基本相同;
只要遵守公共语言规范(Common Language Specification, CLS)和支持公共语言运行时(Common Language Runtime, CLR),可以采用其他语言;
.NET语言生成的都是托管代码,这种代码在运行库的控制之下运行;
.NET编译生成的可执行文件是一种托管代码,称为微软中间语言(Microsoft Intermediate Language, MSIL),可以“一次编写,随处运行”,前提是有框架的支持。
图1.1 .NET框架的组成
1.1.4 Microsoft Visual Studio.NET(VS.NET)集成开发环境(IDE)
Microsoft Visual Studio.NET(VS.NET)是一套完整的开发工具,是一个集成开发环境(IDE),用于生成Windows应用程序、ASP.NET Web应用程序、XML Web Services和移动应用程序。其中包含的Visual Basic.NET、Visual C++.NET、Visual C#.NET等,全都使用相同的集成开发环境,该环境允许它们共享工具,并有助于创建混合语言解决方案。
1.2 C#语言概述
1.2.1 C#语言简介
C#起源于C语言家族,因此具有C++的功能。C#采用与C、C++或Java一致的花括号({})语法,简单易学。此外,C#语法简化了C++的诸多复杂性,同时又提供了Java所不具备的很多强大的功能,例如,可为null的值类型、枚举、委托、lambda表达式和直接内存访问。
C#语言是随.NET一起设计出来的全新的开发语言,其设计目的就是作为VS.NET的核心语言。经过几年的发展,C#已经成为Windows平台上软件开发的主流语言之一。
1.2.2 C#语言特点
C#是一种现代的、面向对象的、类型安全的编程语言。C#具有下列特点:
(1)简单。C#简化了C/C++中许多复杂的特性。例如,C#中禁止直接使用指针,从而避免了直接操作内存的复杂性和风险性;类的成员调用统一采用“.”操作符,避免了C++中的“::”或“->”操作符的复杂性;布尔值是纯粹的True和False的值,而不是容易产生歧义的整型值;采用“= =”比较操作,从而避免C语言中与赋值操作“=”的混淆错误。
(2)面向对象。C#支持数据封装、继承、多态和接口。所有的变量和方法,包括Main方法,都封装在类定义中,类可能直接从一个父类继承(不支持多重继承),但可以实现任意数量的接口,所有C#类型都继承于唯一的根类型object。原始数据类型(如int和double)通过装箱和拆箱操作可以与对象类型(如Integer和Double)之间进行相互转换。
(3)类型安全。C#是强类型语言,即每个变量和对象都必须具有声明类型。C#禁止进行不安全的类型转换。数组类型下标从0开始而且进行越界检查。另外,C#中类型溢出将被检查。C#支持泛型类型和方法,进而提供了更为出色的类型安全和性能。
(4)现代。C#语言包括许多现代语言特点,例如:
● 支持属性,充当私有成员变量的访问器。
● 支持封装的方法签名(称为“委托”),实现了类型安全的事件通知。
● 分部方法定义。分部类型可以包含分部方法。
● 支持内联XML文档注释,编入了自己的文档。
● 支持泛型方法和类型,从而提供更出色的类型安全和性能。
(5)兼容性。虽然C#语言中不提倡使用指针数据类型,但在C#代码中仍然允许使用需要传递指针参数的API交互操作,从而保证与C/C++代码的兼容性。
1.2.3 C#语言开发应用范围
C#语言主要用来构建在.NET Framework上运行的各种安全、可靠的应用程序。可创建下列类型的应用程序和服务:
● 桌面应用。包括控制台应用程序、Windows窗体应用程序等。
● Web应用。包括ASP.NET应用程序、Web服务等。
● Windows Presentation Foundation(WPF)应用程序。
● 面向服务的应用程序(Windows Communication Foundation,WCF)。
● 工作流程的应用程序( Windows Workflow Foundation,WWF)。
● 移动应用。
● Office平台应用程序。
● Windows服务。
1.3 配置Visual C#开发环境
1.3.1 Visual Studio 2008 的安装
将安装盘放入光驱后,会自动运行安装程序,出现如图1.2所示的安装界面。
图1.2 Visual Studio 2008的安装界面
选择“安装Visual Studio 2008”,出现安装向导界面,如图1.3所示。然后单击“下一步”按钮,显示“选择要安装的功能”及“产品安装路径”,如图1.4所示。
图1.3 安装向导
图1.4 “选择要安装的功能”及“产品安装路径”
在“选择要安装的功能”中选择“自定义”,单击“产品安装路径”的“浏览”按钮可更改安装文件路径,路径应为英文路径。选择好所安装的路径后,单击“安装”按钮,显示“选择要安装的功能”的下一个界面,如图1.5所示,在该页面中,可以选择要安装具体哪些语言等选项,然后单击“安装”按钮,将自动安装完成。
图1.5 选择要安装的功能
1.3.2 C#的启动
安装完Microsoft Visual Studio 2008后,选择“开始”→“程序”→“Microsoft Visual Studio 2008”➔“ Microsoft Visual Studio 2008”,Microsoft Visual Studio 2008就启动了,如图1.6所示。
图1.6 开始菜单下Microsoft Visual Studio 2008启动界面
第一次启动Microsoft Visual Studio 2008会出现如图1.7所示“选择默认环境设置”界面。在该页面中,选择“Visual C#开发设置”选项,并单击“启动Visual Studio”按钮,进入起始页,如图1.8所示。
图1.7 选择默认环境设置界面
1.3.3 起始页
起始页是打开IDE的第一个窗口。每次启动IDE时,该页作为默认页显示。
若想打开某个已经存在的项目,单击图1.8左下侧的打开项目。打开项目的另一方法:选择“文件”→“打开”→“项目/解方案(P)…”菜单项,进入“打开项目”对话框。选中某项目后,单击“打开”按钮,就打开了某一项目。
图1.8 起始页界面
若要创建一个新项目,则单击“创建项目”选项,进入“新建项目”对话框。新建项目另一方法:选择“文件”→“新建”→“项目”菜单项,如图1.9所示,也可以进入“新建项目”对话框,如图1.10所示。
图1.9 用菜单方法新建项目
图1.10 “新建项目”对话框
在“新建项目”对话框中,选中所创建项目的模板,输入项目名称及存储项目的位置等,再单击“确定”按钮,就创建好了一个空的项目。
1.3.4 Visual C#的退出
选择“文件”→“退出”菜单项,就可退出Visual C#环境,如图1.11所示。
图1.11 退出Visual C#环境
1.3.5 Visual C#菜单栏、工具栏、工具箱
如图1.12所示,最上面一栏为标题栏。标题栏下面为菜单栏,再向下是工具栏。标题栏显示项目的标题;菜单栏中的菜单项可以实现Visual Studio的各种功能;而工具栏则是实现Visual Studio常用的功能。
图1.12 标题栏、菜单栏、工具栏
如图1.13所示是工具箱界面。按下工具箱右上角中间的图标,则把工具箱固定,随时都可见。若再按下图标,就把工具箱隐藏在整个IDE环境的最左侧。只要鼠标停留在隐藏的工具箱图标上就会再次显示工具箱。当鼠标离开工具箱时,工具箱又会自动隐藏。
图1.13 工具箱界面
1.3.6 解决方案资源管理器
当创建项目后,会在“解决方案资源管理器”中显示自动生成的项目,如图1.14所示。解决方案中包含一个或多个项目,每个项目都对应于软件中的一个模块。在解决方案资源管理器中,将同类的文件放在一个目录下,当单击这个目录后,会将对应的目录下的文件全部显示出来。例如,单击“引用”文件夹前面的“+”,就会将引用的程序集全部显示出来,同时“+”变成“−”。
图1.14 解决方案资源管理器
用鼠标右键单击“解决方案资源管理器”中的节点,将弹出一个上下文菜单,通过其中的菜单命令可以对节点对象进行操作。
1.3.7 类视图
图1.14介绍的解决方案资源管理器是基于文件的项目管理,而C#是一种面向对象的编程语言。其编程用得最多的是对象,而对象是归属于类的。为此,Visual Studio 2008提供了类视图来对项目中的类进行管理,在“解决方案资源管理器”窗口的下端,单击“类视图”页面,就切换到“类视图”窗口。在类视图窗口中可以查看当前项目的类和类型的层次信息,如图1.15所示。
其中,
:表示命名空间;
:表示基类;
:表示普通类或子类。
图1.15 类视图
1.3.8 属性窗口
属性窗口(见图1.16)用于操纵一个窗体或控件的属性。属性定义了控件的一些信息,如大小、颜色、位置等。属性窗口左边一栏显示控件的属性,右边一栏显示属性所对应的值。属性窗口有几个工具按钮:“按分类顺序”显示、“字母顺序”显示、“属性”、“事件”。单击“属性”按钮,显示的是某控件的属性列表;单击“事件”按钮,显示的是某控件或窗体响应特定的用户行为。
图1.16 属性
1.3.9 窗体设计器、代码编辑窗口
1.窗体设计器
对于设计像WinForm这样的用户界面项目,IDE提供了类似于Delphi开发环境下的设计器窗口,即提供了一个图形化用户界面的设计环境,大大提高了开发速度。利用此环境设计一个窗体或服务器端对象,设计器会自动修改代码来反映所做的界面修改。选择“视图”→“设计器”菜单项,就可显示设计器窗口,如图1.17所示。
图1.17 窗体设计器
2.代码编辑窗口
选择“视图”→”代码”菜单项;或在设计器中,选中窗体或控件,单击鼠标右键,在弹出的快捷菜单中选择“查看代码”菜单项;或双击窗体或控件;也可在设计器中按快捷键<F7>,以上几种方法都可以显示代码编辑窗口。
如图1.18所示为代码编辑窗口。该窗口顶部的两个下拉列表框可用于选择和浏览相应的代码。左边的列表框包含了代码中的所有类;右边的列表框包含了左边列表框中当前类的所有方法、数据成员、所使用的控件及相应的事件处理方法。选中一项后,光标会定位于对应的代码的第一行。
图1.18 代码编辑窗口
习题1
1.在Visual Studio.NET窗口中,在________窗口中可以查看当前项目的类和类型的层次信息。
A.解决方案资源管理器
B.类视图
C.资源视图
D.属性
2.C#语言主要面向________开发环境进行编程。
A.DOS
B..NET
C.Winodws
D.Linux
3.下面关于C#语言说法中,不正确的是________。
A.C#语言完全支持面向对象编程
B.C#从C/C++发展而来,但更具有优势,如开发Web应用程序和NT服务等
C.C#语言简单,编程灵活,但功能有限,不适合开发Windows应用程序
D.C#拥有对.NET基类库的完全访问权,并易于访问Windows API
上机实验一
实验目的:
熟悉VS2008开发环境。
实验要求:
(1)通过实验,熟悉VS2008开发环境中的标题栏、菜单栏、工具栏。
(2)掌握怎样开启工具箱、属性窗口、事件窗口、解决方案资源管理器。
(3)通过实验了解如何使用帮助。
实验步骤:
(1)安装完Microsoft Visual Studio 2008后,选择“开始”→“程序”→“Microsoft Visual Studio 2008”→“Microsoft Visual Studio 2008文档”菜单项。该文档包含很多内容,几乎MSDN上与Microsoft Visual Studio 2008有关的内容都能找到,对组件、类等知识都有详细的讲解,对初学者和开发人员来说是一个相当有用的帮助文档。在开发环境中可以使用F1键进行联机帮助。
(2)启动C#。
选择“开始”→“程序”→“Microsoft Visual Studio 2008”→“”菜单项,启动C#。
(3)启动C#后的界面,如图1.19所示。
图1.19 启动C#后的界面
从图1.19的页面中截取部分图,如图1.20所示,由此可以了解标题栏、菜单栏、工具栏在开发环境中的位置。
图1.20 标题栏、菜单栏、工具栏
(4)通过某个项目了解工具箱、解决方案资源管理器、属性、事件等。
选择“文件”→“新建”→“项目”菜单项,进入“新建项目”对话框,如图1.21所示。在模板中选择“Windows窗体应用程序”,名称为“ex001”,位置“E:\zm\c#example”,其中模板、名称、位置可以根据需要进行改动。
图1.21 “新建项目”对话框
单击“确定”按钮,显示如图1.22所示项目ex001的设计界面。
图1.22 项目ex001的设计界面
工具箱如图1.23(a)所示,单击工具箱中的“关闭”图标,可以把工具箱关闭。如果想再次打开工具箱,可通过选择“视图”→“工具箱”菜单项,打开工具箱窗口。为了使设计界面更大,可以使用工具箱的“自动隐藏”图标,使工具箱隐藏在开发环境的最左侧,当鼠标停留在隐藏的工具箱图标下时,会再次显示工具箱。如图1.23(b)所示为隐藏后的图标。
图1.23 工具箱窗口
工具箱中包含了很多用于设计界面的控件。
服务器资源管理器窗口如图1.24所示,该窗口在工具箱的旁边,以树形视图显示,在IDE中编写的应用程序可以包含网络中不同服务器上的很多构件。使用服务器资源管理器,可在IDE中集中监控和管理一个应用方案所设计的所有“服务器”和“数据连接”。
图1.24 服务器资源管理器窗口
解决方案资源管理器窗口如图1.25(a)所示,可以通过图标关闭该窗口。选择“视图”→“解决方案资源管理器”菜单项,可重新打开该窗口。可以通过“自动隐藏”图标把该窗口隐藏在开发环境的最右侧,如图1.25(b)所示。
图1.25 解决方案资源管理器
属性事件窗口如图1.26所示。属性页面中有5个工具,其中常用的有“属性”、“事件”、“按分类顺序”、“字母顺序”。单击属性图标时,在属性窗口中显示的是当前选中控件的所有属性;单击“事件”图标时,显示的是当前选中控件的所有事件;如果想按照字母顺序排列属性或事件,则单击“字母顺序”图标;若想按照分类顺序排列属性或事件,则单击“按分类顺序”图标。可以自动隐藏或关闭属性窗口。关闭属性窗口后,可通过选择“视图”→“属性窗口”菜单项,再次打开属性窗口。
图1.26 属性事件窗口
通过修改控件的属性或编写控件的事件,可完成项目文件的某些功能。