单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,AutoCAD,计算机辅助设计,,C#,程序设计教程,,清华大学出版社,第,1,章,NET,平台与,Visual Studio 2005,开发工具,,本章要点:,,,.NET,平台的概念及理解,,,.NET,平台的架构,,命名空间的概念及使用,,,Visual Studio 2005,开发工具的使用,,利用常用的开发工具建立第一个,C#,应用程序,,理论性的东西删除点,介绍过程的内容没有删太多,,1,.1,Microsoft .NET,平台,1,.1.1,.NET Framework 2.0,概述,,,.NET Framework,是支持生成和运行下一代应用程序和,XML Web Services,的内部,Windows,组件,是,.NET,战略的核心NET Framework,的目标是:,,提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在,Internet,上分布,或者是在远程执行的提供一个将软件部署和版本控制冲突最小化的代码执行环境提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。
提供一个可消除脚本环境或解释环境的性能问题的代码执行环境使开发人员的经验在面对类型大不相同的应用程序(如基于,Windows,的应用程序和基于,Web,的应用程序)时保持一致按照工业标准生成所有通信,以确保基于,.NET Framework,的代码可与任何其他代码集成1,.1,Microsoft .NET,平台,1,.1.1,.NET Framework 2.0,概述,,,.NET Framework,目前的版本为,2.0,,本书即以该版本为基础最新的,3.0,版本将在稍后推出,,.NET Framework 3.0,是,2.0,的附加版本,并且使用,.NET Framework 2.0,的核心运行时组件,所以它完全向后兼容其早期版本基于,.NET Framework 2.0,的现有应用程序可继续运行,不需要任何修改实质上,,.NET3.0,可以描述为:,,,.NET 3.0 = .NET 2.0 + WCF + WPF + WCS + WWF,,,,用图形的方式描述,.NET 3.0,的架构如下页图所示,,,,1,.1,Microsoft .NET,平台,1,.1.1,.NET Framework 2.0,概述,,,,1,.1,Microsoft .NET,平台,1,.1.,2,,.NET Framework,类库,,,.NET Framework,类库是一个由,Microsoft .NET Framework SDK,中包含的类、接口和值类型组成的库。
该库提供对系统功能的访问,是建立,.NET Framework,应用程序、组件和控件的基础该类库是面向对象的,并提供开发人员自己的托管代码可从中导出功能的类型这不但使,.NET Framework,类型易于使用,而且还减少了学习,.NET Framework,的新功能所需要的时间NET Framework,类型库使开发人员能够完成一系列常见编程任务,如:字符串管理、数据收集、数据库连接以及文件访问等任务等除这些常见任务之外,类库还包括支持多种专用开发方案的类型NET Framework,具有两个主要组件:公共语言运行库及,.NET Framework,类库,下面分别给以介绍,,1,.1,Microsoft .NET,平台,1,.1.,2,,.NET Framework,类库,,可使用,.NET Framework,开发下列类型的应用程序和服务:,,控制台应用程序Windows GUI,应用程序(,Windows,窗体)ASP.NET,应用程序XML Web Services,Windows,服务NET Framework,以命名空间的形式组织类库中的类,具有相似或关联功能的类被组织到一个特定的命名空间中,如:,System,、,System.IO,、,System.Collections,、,System.Data,、,System.Xml,等,这些命名空间包含了与系统、系统输入输出、集合、数据以及,XML,等操作相关的类,编程时可以通过引用这些命名空间来使用相关类。
1,.1,Microsoft .NET,平台,1,.1.,3,,Common Language Runtime,,,Common Language,Runtime(CLR,),即公共语言运行库,也称为,.NET,运行库,为,.NET Framework,提供的运行时环境C#,中根据代码受,CLR,控制与否,将代码分为托管代码,(managed code),和非托管代码,故托管代码是由公共语言运行库环境(而不是直接由操作系统)执行的代码,,托管代码是可以使用,20,多种支持,Microsoft .NET Framework,的高级语言编写的代码,它们包括:,C#,,,J#,,,Microsoft Visual Basic .NET,,,Microsoft,JScript,.NET,,,以及,C++,等所有的语言共享统一的类库集合,并能被编码成为中间语言,(IL),运行库编译器(,runtime-aware,ompiler,)在托管执行环境下编译中间语言(,IL,)使之成为本地可执行的代码,并使用数组边界和索引检查,异常处理,垃圾回收等手段确保类型的安全1,.1,Microsoft .NET,平台,1,.1.,4,,C#,语言,,,,C#,(发音为,C-Sharp,),是由微软推出的最新编程语言。
这是针对,.NET,平台而开发的一种面向对象编程语言C#,保持了,C++,中熟悉的语法和面向对象的特征,同时摒弃了,C++,中复杂、易于出错的部分C#,语言综合了,C/C++,灵活性和,RAD,开发工具的高效率不仅能适用于,WEB,服务程序的开发与部署,更能高效的完成桌面应用系统的开发作为一种针对,.NET,平台开发的语言,,C#,继承了,C++,强大的功能又兼顾,VB,等语言的易用性,同时也吸取了目前绝大多数开发平台的可以借鉴的优点,可以说是一个各种优点的集大成者C#,具有如下一些优势如:,易于掌握、支持跨平台、面向对象、与,XML,相融合等1,.1,Microsoft .NET,平台,1,.1.,5,,理解,命名空间,,,,,一个命名空间是一个逻辑的命名系统,用来组织庞大的系统类资源,使开发者使用起来结构清晰、层次分明、使用简单,同时,开发者可以使用自定义的命名空间以解决大型应用中可能出现的名称冲突1),定义命名空间,,在,C#,中定义命名空间的语法格式如下:,,namespace SpaceName,,{,,......,,},,其中,namespace,为声明命名空间的关键字,,SpaceName,为命名空间的名称,在整个,{},内的内容都属于名称为,SpaceName,的命名空间的范围。
其中可以包含类、结构、枚举、委托和接口等可在程序中使用的类型1,.1,Microsoft .NET,平台,1,.1.,5,理解命名空间,,,,,(2),嵌套命名空间,,命名空间内包含的可以是一个类、结构、枚举、委托和接口,同时也可以在命名空间中嵌套其他命名空间,从而构成树状层次结构namespace,Wrox,,{,,,namespace,ProCSharp,,,{,,,namespace Basics,,,{,,,class,NamespaceExample,,,{,,,// Code for the class here...,,,}}}},,1,.1,Microsoft .NET,平台,1,.1.,5,理解命名空间,,,,,每个类名的全称都由它所在命名空间的名称与类名组成,这些名称用“,.”,隔开,首先是最外层的命名空间,最后是它自己的短名所以,ProCSharp,命名空间的全名是,Wrox.ProCSharp,,,NamespaceExample,类的全名是,Wrox.ProCSharp.Basics.NamespaceExample,需要指出的是:命名空间是一个逻辑上的组织与程序集无关。
同一个程序集中可以有不同的命名空间,也可以在不同的程序集中定义同一个命名空间中的类型1,.1,Microsoft .NET,平台,1,.1.,5,理解命名空间,,,,,(3) using,语句,,当出现多层命名空间嵌套时,键入起来很繁琐,为此,要在文件的顶部列出类的命名空间,前面加上,using,关键字在文件的其他地方,就可以使用其类型名称来引用命名空间中的类型了:,,using System;,,using Wrox.ProCSharp;,,所有的,C#,源代码都以语句,using System;,开头,因为,Microsoft,提供的许多有用的类都包含在,System,命名空间中1,.,2,,Visual Studio 2005,开发环境,,Visual Studio 2005,是一套完整的开发工具集,包含了大量的功能它主要用于生成,ASP.NET Web,应用程序、,XML Web Services,、桌面应用程序和移动应用程序 该集成开发环境中为开发人员提供了大量的实用工具以提高工作效率这些工具包括了自动编译、项目创建向导、创建部署工程等等1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,1 Visual Studio 2005,开发环境概览,,,,单击“开始”,|“,程序”,|“Microsoft Visual Studio 2005”|“Microsoft Visual Studio 2005”,命令,进入,Microsoft Visual Studio 2005,开发环境。
出现欢迎窗口如图,1.2,所示第一次启动时,会出现如图,1.3,所示的对话框,这里读者可以选择“,Visual C#,开发设置”图,1.2,图,1.3,,1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,1 Visual Studio 2005,开发环境概览,,,Visual Studio 2005,的起始页界面如下图所示,,1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,2,菜单栏,,,,,菜单栏中包括了,Visual Studio 2005,的大多数功能,菜单项众多Visual Studio 2005,的菜单随着不同的项目,不同的文件进行着动态的变化此处仅对常用的文件菜单,编辑菜单和视图菜单进行简单的介绍,以方便读者尽快的熟悉,Visual Studio 2005,常用菜单的使用1),文件菜单,,文件菜单提供了对,Visual Studio 2005,中文件及项目操作的各种功能,其菜单项功能如下页表所示1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,2,菜单栏,,,,,,(1),文件菜单,菜单项,功,,能,新建,新建项目、网站、文件等,打开,打开项目、文件等,添加,向解决方案中添加项目、网站等,关闭,关闭当前页面,关闭解决方案,关闭当前解决方案,保存,保存当前打开的项目或文件,另存为,将项目另存为其他项目或文件,高级保存选项,采用不同的编码方式保存当前文件,全部保存,将所有未保存文件保存,导出模板,导出当前项目为基础项目模板,页面设置,打印页面设置,打印,打印功能,最近的文件,最近打开的文件,最近的项目,最近打开的项目,退出,退出,Visual Studio,,1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,2,菜单栏,,,,,(2),编辑,菜单,,,编辑菜单提供了大多数常见的文本编辑操作,以及,Visual Studio 2005,中所特有的部分操作。
编辑菜单项的功能如表,1.2,所示菜单项,功,,能,撤消,撤消上次操作,重复,重复上次操作,撤消上次全局操作,撤消上次全局操作,重复上次全局操作,重复上次全局操作,剪切,剪切选中内容到剪切板,复制,复制选中内容到剪切板,粘贴,粘贴剪切板中的内容,菜单项,功,,能,循环剪贴板中的复制项,循环剪贴板中的复制项,删除,删除选中内容,全选,选择当前文件中全部内容,查找和替换,查找和替换功能,转到,转到指定行,将文件作为文本插入,将文件作为文本插入当前文件,高级,高级功能菜单,,1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,2,菜单栏,,,,,(3),视图菜单,,,,视图菜单中各菜单项提供的功能比较简单,主要是对各种窗口视图的显示和隐藏的控制,本节稍后部分对各个视图的功能有较详细的说明1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,3,工具栏,,,,,,工具栏提供了最常用的功能按钮对工具栏的熟悉可以大大的节省工作时间,提高工作效率同菜单栏一样,,Visual Studio 2005,的工具栏也是动态变化的随着文件的不同,工具栏也不尽相同。
工具栏的内容还可以根据个人的使用习惯进行自定义,以方便不同开发人员的使用下图给出的是位于菜单栏下方的第一个工具栏1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,3,工具栏,,,,,,工具箱是,Visual Studio 2005,的重要工具,每一个开发人员都必须对这个工具非常熟悉工具箱提供了进行,Windows,窗体应用程序开发所必须的控件通过工具箱,开发人员可以方便的进行可视化的窗体设计工具箱的存在简化了程序设计的工作量,提高了工作效率下图即工具箱的外观若“工具箱”无显示,可以从,1.2.2,小节中讲到的“视图”菜单中找到“工具箱”菜单项,或使用,Ctrl+W,,,X,快捷键以激活工具箱窗口1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,4,属性及解决方案资源管理器面板,,,,,,,“属性”面板是,Visual Studio 2005,中另一个重要的工具该窗口为,Windows,窗体应用程序的开发提供了简单的属性修改方式对窗体应用程序开发中的各个控件属性的修改都可以由“属性”面板来完成属性”面板不仅提供了属性的修改功能,还提供了事件的管理功能。
属性”面板可以管理控件的事件,方便编程时对事件的处理属性”面板同时采用了两种方式管理属性和方法,按分类方式和按字母顺序方式读者可以根据自己的习惯采取不同的方式面板的下方还有简单的帮助,方便开发人员对控件的属性和方法进行操作和修改右图是按分类方式列出窗体属性的“属性”面板1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,4,属性及解决方案资源管理器面板,,,,,,“解决方案管理器”面板是一个非常方便的工具,该面板提供了观察项目结构的非常直观的功能通过“解决方案管理器”面板可以对文件组织进行方便的查看下图即为“解决方案管理器”面板示意图1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,5,其他面板,,,,,(,1,)类视图面板,,,,,,“类视图”面板是一个非常方便的工具,该面板提供了观察类结构的非常直观的功能通过“类视图”面板可以对类的内部构造进行方便的查看右图即为“类视图”面板查看类结构的示意图可以通过选择“视图,|,类视图,”,菜单项来控制该面板的显示与否,,1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,5,其他面板,,,,,(,2,)代码编辑器,,代码编辑器是,Visual Studio,中开发人员需要面对和耗费时间最多的一个工具。
该工具提供了强大的代码编辑功能在,Visual Studio 2003,的基础上,,Visual Studio 2005,又提供了以下新增功能:,,折叠到定义功能自动换行,,向后,/,向前定位按钮,,剪贴板循环,,代码的大纲显示,,折叠块,/,全部折叠,,给行编号,,编码问题指示器,,一个典型的代码编辑器窗口如下页图,所示1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,5,其他面板,,,,,(,2,)代码编辑器,,1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,5,其他面板,,,,,(,3,)错误列表面板,,,,“错误列表”面板为代码中的错误提供了即时的提示和可能的解决方法如下图所示,当某句代码中忘记输入分号作为本句的结束时,错误列表中会显示该错误1,.,2,,Visual Studio 2005,开发环境,1,.,2,.,5,其他面板,,,,,(,4,)输出面板,,,,,“输出”面板用于提示项目的生成情况在编程实际操作中,开发人员会无数次的看见这个面板,同样,读者也将会经常和该面板打交道,此处就不再详述其外观如下图,所示1,.,3,,使用,Visual Studio 2005,创建控制台应用程序,使用,Visual Studio 2005,创建控制台应用程序的过程如下:,,,,(1),选择“文件”菜单中“新建”菜单项,在弹出的子菜单中单击“项目”命令,在弹出的窗口中选择“控制台应用程序”选项,并将其名称设置为,ConsoleApplication1,并单击“确定”按钮,如下图所示:,,1,.,3,,使用,Visual Studio 2005,创建控制台应用程序,,Visual Studio 2005,开发环境自动切换到,Program.cs,页面,如下图所示:,,1,.,3,,使用,Visual Studio 2005,创建控制台应用程序,其中,using,表示程序引用的命名空间,本示例中,System,,,System.Collections.Generic,和,System.Text,为控制台应用程序默引用的命名空间,这几个命名空间由,.NET Framework 2.0,中提供。
namespace ConsoleApplication1,语句为项目创建一个命名空间,名称为,ConsoleApplication1,在该命名空间中,仅包含一个类,Program,,,C#,中类由,class,关键字来定义C#,是一门面向对象的语言,所有的程序都由类构成Program,类中包含了一个,Main(),函数,该函数为应用程序的入口函数,一个应用程序必须有一个,Main,函数2),在,Main,函数中输入如下代码,:,,,,Console.WriteLine("Hello,World!");,,,Console.ReadLine,();,,1,.,3,,使用,Visual Studio 2005,创建控制台应用程序,,(3),按,F5,运行程序,输出结果如下图所示:,,1,.,4,,使用,Visual Studio 2005,创建,WinForm,应用程序,建立,Windows,应用程序的步骤如下:,,,(1),选择“文件”菜单中“新建”菜单项,在弹出的子菜单中单击“项目”命令,在弹出的窗口中选择“,Windows,应用程序”选项,其他接受默认设置,单击“确定”按钮,如下图所示:,,,,1,.,4,,使用,Visual Studio 2005,创建,WinForms,应用程序,建立,Windows,应用程序的步骤如下:,,,(2) Visual Studio,将自动打开一个默认的窗体如下图所示,,,,,1,.,4,,使用,Visual Studio 2005,创建,WinForms,应用程序,建立,Windows,应用程序的步骤如下:,,,(2),把鼠标指针移到屏幕左侧的工具箱上,然后移到“所有,Windows,窗体”列表中的“,Button”,选项,并双击该选项。
此操作将在新创建的窗体,Form1,中新建一个按钮,,,(3),双击添加到窗体的按钮“,button1”,按钮,,Visual Studio 2005,将转入代码编辑器界面并添加如下代码private void button1_Click(object sender,,EventArgs,e),,{,,},,,在大括号中间处填入以下代码:,,,MessageBox.Show(“Hello,World!”);,,,,1,.,4,,使用,Visual Studio 2005,创建,Winforms,应用程序,,(3),按,F5,运行程序,输出结果如下图所示:,,1,.,5,,使用,Visual Studio 2005,创建,Web,应用程序,创建,Web,应用程序的步骤如下:,,,(1),选择“文件”菜单中“新建”菜单项,在弹出的子菜单中单击“网站”命令,在弹出的窗口中选择“,ASP.NET,网站”,指定“位置”为“文件系统”,选择“浏览”按钮设定该网站所要保存的位置,并在“语言栏”中选中“,Visual C#”,单击“确定”按钮Visual Studio,将自动打开一个默认的窗体如下图所示 。
1,.,5,,使用,Visual Studio 2005,创建,Web,应用程序,创建,Web,应用程序的步骤如下:,,,(2),切换到设计视图,选择“工具箱”中的“,Label”,控件,拖到设计视图中,调整控件大小,在属性视图中设置控件的“,Text”,属性为“,Hello world”,,(3),编译、执行,输出结果如下图所示:,,1,.,6,,其他常用开发工具,1,.,6,.,1,SharpDevelop,,,,,,SharpDevelop,是另外一款优秀的集成开发环境,支持,.NET Framework,下的,C#,、,VB.NET,等语言项目的开发SharpDevelop,不仅免费,而且开源SharpDevelop,提供了窗体设计器,集成调试功能,代码自动完成功能,集成的,NUnit,(一种单元测试框架)支持等非常多的特性各种功能的不断完善,使得,SharpDevleop,成为除,Visual Studio 2005,之外的另一种选择其开发环境如下图所示1,.,6,,其他常用开发工具,1,.,6,.,2,UltraEdit,,,,,,UltraEdit,是一款通用编辑器,既可以用作文本文件的编辑器,也可以用作各种编程语言的代码编辑器,而不仅仅是针对,C#,。
UltraEdit,的开发界面如下图所示1,.,6,,其他常用开发工具,1,.,6,.,2,UltraEdit,,,,,,配置,UltraEdit,,使得其能够直接编译,C#,应用程序的过程如下:,,,(1),选择“,Advanced”|“Tool,Configuration”,命令,;,,(2),单击“,Insert”,按钮,,UltraEdit,会自动产生一个工具配置,如下图所示:,,,,,,,,1,.,6,,其他常用开发工具,1,.,6,.,2,UltraEdit,,,,,(3),修改“,Menu Item Name”,文本框为工具名称,如“,C#,编译器”,单击“,Command Line”,文本框右侧的“,Browse”,按钮,选择位于“,C:\WINNT\Microsoft.NET\Framework\v2.0.507\”,下的文件“,csc.exe,”,,该文件即命令行下的,C#,程序编译器,.,在“,Command Line”,文本框的最后添加“,%F”,,“,%F”,是,UltraEdit,中一个特殊的变量,表示当前编辑的文件,,,(4),修改“,Working Direction”,文本框为“,%P”,,同样,,%P,表示当前编辑文件的目录。