2020/5/151第3章C#和.NET框架概述2020/5/152内容概要3.1VisualStudio.NET概述3.2C#概述注:MSDN,MicrosoftDeveloperNetwork中有关于.NET和C#的详细介绍!2020/5/1533.1.1.NET介绍3.1.2.NET框架的结构3.1.3.NET框架的基本概念3.1.4.NET框架命名空间3.1.5浏览VisualStudio.NET3.1VisualStudio.NET概述2020/5/1543.1.1.NET介绍问题:1、一个软件公司有两组程序员,一组程序员只会使用C++,一组程序员只会使用VB,现在有一个大型项目需要大量人员参加,我们能让这两组人在一起工作吗?2、我们能用ASP调用C++写的类库吗?2020/5/1553.1.1.NET介绍答案是否定的!解决:怎么办?这就是.NETFramework要解决的问题什么是NETFramework?.NETFramework是如何解决这类问题的?Microsoft首席执行官鲍尔默:“.NET代表一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构”。2020/5/156.NET框架在计算机系统中的位置Web应用Windows应用…….NET框架操作系统图.NET开发平台和基于.NET的应用3.1.1.NET介绍2020/5/1573.1.1.NET介绍.NETFramework是支持生成和运行下一代应用程序和XMLWebServices的内部Windows组件:公共语言运行时(CLR).NETFramework类库(FCL).NET1.1:集成在WindowsStudio.NET2003.NET2.0:集成在WindowsStudio.NET2005/2008.NET3.0:集成在WindowsStudio.NET2005/2008.NET3.5:集成在WindowsStudio.NET20082020/5/158操作系统公共语言运行时(CLR)VC++.NetC#VB.NetVJ#….NetFramework类库(FCL)3.1.2.NET框架的结构2020/5/1593.1.2.NET框架的结构操作系统、COM+Services公共语言运行时基类库ADO.NET和XMLASP.NETWeb表单Web服务MobileInternetToolkitWindows表单公共语言规范VBC++C#J#…VisualStudio.NET2020/5/15103.1.2.NET框架的结构.NET框架的多层结构设计使得整个框架对于操作系统和编程语言都是独立的,针对.NET平台编程时可以使用多种编程语言,同时编写的应用程序可以移植到不同的操作系统中:1、现有的.NET的编程语言:C#、VB.NET、C++、J#以及众多第三方厂商开发的编程语言;2、现有的支持.NET平台(开发)的操作系统:Windows98/Me/2000/XP/2003/2008以及WindowsCE、WindowsCE.NET等。2020/5/15113.1.3.NET框架的基本概念COM:ComponentObjectModel,允许对象向其他组件和宿主应用程序公开其功能,提供组件之间的公共接口;CLR:公共语言运行时,提供.NET所需的基本服务,例如内存管理、线程管理、代码执行、代码编译和其他系统服务等,CLR是.NET的核心,通过托管代码来实现;BCL:基本类库,定义了所有的数据类型和管理.NET核心功能的基本类,如文件输入/输出、线程、安全性等;ADO.NET和XML:是两种具有特殊功能的类,用来实现对数据库和XML格式文档的操作;CLS:公共语言规范,对不同的编程语言实现统一的编译接口;C#等:是.NET框架支持的高级程序设计语言。2020/5/1512.NET的演变历史在COM之前,应用程序是完全分开的实体,它们之间只有很少或没有任何集成关系。应用代码和数据结构2020/5/1513.NET的演变历史COM提供了组件集成的方法。但是,每个组件必须提供细节复杂的管道接口,对象不能直接交互。2020/5/1514.NET的演变历史使用.NETFramework的公共语言运行时(CLR),组件都建立在一个共同的底层基础上.不再需要管道的繁琐细节,对象可以直接交互。2020/5/1515.NET框架的工作流程2020/5/1516应用程序,包括各种高级语言编写的.NET源代码,通过CLS(公共语言规范)编译,形成MSIL中间代码;MSIL(Microsoft中间语言):是一种抽象语言,由一组特定的指令组成,这些指令指明如何执行代码。独立于任何一种高级编程语言,也独立于任何一种硬件平台和操作系统;在公共语言运行时的作用下,通过JIT形成二进制机器代码;JIT(Just-In-Time,即时编译):多种,可在不同计算机结构中运行。加快了MSIL的运行速度,同时也避免了.NET程序启动速度过慢。任何一种编程语言都使用相同的.NET类库中提供的类和方法,不同语言通过.NET框架编写的程序功能都是一致的。.NET框架的工作流程2020/5/1517日语汉语翻译英语(中间语言,MSIL)模拟CLR和MSIL2020/5/1518代码执行流程示例VB.NET源程序C#.NET源程序VB.NET编译器C#编译器MSIL:Microsoft中间语言(托管代码)CLR:公共语言运行库(JIT:JustInTime编译器)本地代码图代码执行流程的示例CLS:公共语言规范2020/5/1519CLR的作用问题:CLR在.NETFramework里起到什么样的作用?CLR负责公共语言程序(MSIL程序)的正常运行(编译)通用语言规范(CLS)规定所有.NET语言都应遵循的规则和约束生成可与其他不同语言互操作的应用程序公共类型系统(CTS)通常包含标准数据类型(单精度整型数标准类型是Int32,在VB.NET中是integer,而在C#中是int)包含操作准则集CLS、CTS和MSIL紧密配合以实现语言互操作性2020/5/15203.1.4.NET框架的命名空间命名空间(Namespace)提供了一种组织类和其他类型资源的一种逻辑组合方式;相当于C++中的类库.NET中的任何一个类都包含在命名空间中,引用一个类,首先要注明该类所在的命名空间语法:namespacetest{……}2020/5/15213.1.4.NET框架的命名空间usingSystem;namespaceSpacenameTest{classProgram{staticvoidMain(string[]args){A.Printa=newA.Print();a.DoPrint();}}}namespaceA{publicclassPrint{publicvoidDoPrint(){Console.WriteLine(MyNameSpaceA);}}}2020/5/1522命名空间说明System.Drawing处理图形和绘图,包括打印System.Data处理数据存取和管理,在定义ADO.NET技术中扮演重要角色System.IO管理对文件和流的同步和异步访问System.Windows处理基于窗体的窗口的创建System.Reflection包含从程序集读取元数据的类System.Threading包含用于多线程编程的类System.Collections包含定义各种对象集的接口和类3.1.4.NET框架的命名空间2020/5/15233.1.5浏览VisualStudio.NETVisualStudio.NET,简称VS.NET2003版(.NETframework1.1)2005版(支持.NETframework2.0和3.0)2008版(支持.NETframework2.0、3.0和3.5)2010版(支持.NETframework4.0)VS.NET是目前最流行、最方便,也是功能最强大的.NET应用程序集成开发环境。2020/5/15241、VS.NET的主要内容2020/5/15251、VS.NET的主要内容.NETFramework:.NET框架(CLR和CLS)C#、VB.NET、VC++等:高级编程语言;WinForm、WebForm:基于.NET的最常用的应用开发;ASP.NET:用于开发基于WebForm的应用程序的功能类库;ADO.NET:用于开发基于数据库的应用程序的功能类库;XML:用于开发XML服务的相关类库;WEBServices:用于开发WebServices服务的相关类库。2020/5/1526VisualStudio.NET2005是一套完整的开发工具,用于构建高性能的控制台应用程序、桌面应用程序、XMLWebServices、移动应用程序和ASPWeb应用程序。VS.NETIDE的主要特点在于:自定义IDE(集成开发环境)选项卡式窗口管理模式.NET中主要功能以窗口形式展现VisualStudio.NET2005的功能2020/5/15272、VS.NET2005IDEVisualStudio.NETIDE2020/5/15282、VS.NET2005IDE工具按钮选项卡式文档菜单栏2020/5/1529视图工具栏2、VS.NET2005IDE2020/5/15302、VS.NET2005IDE解决方案资源管理器类视图2020/5/15312、VS.NET2005IDE视图“属性”窗口2020/5/15322、VS.NET2005IDE视图服务器资源管理器2020/5/15332、VS.NET2005IDE主设计界面工具箱错误列表2020/5/15342、VS.NET2005IDE2020/5/15352、VS.NET2005IDE2020/5/15362、VS.NET集成环境VS.NET具有以下最基本的功能:(1)把光标放在隐藏的窗口上,便会自动弹出这些窗口。(2)“工具箱”窗口显示常用的窗体控件,通过简单的拖曳操作,可以快速开发图形化界面工程。(3)“解决方案资源管理器”窗口显示当前解决方案的信息(解决方案即一个或多个工程及其配置的综合),窗口中可以查看解决方案中工程的各种视图,如其中的文件等。(4)“属性”窗口显示工程内容更详细的信息,可以对工程中的单个控件或其他对象进行配置。例如,可以使用“属性”窗口改变Windows工程中一个按钮的外观、大小等。(5)“错误列表”、“任务列表”和“输出”窗口显示项目编译时的基本信息,以及开发环境已经完成的任务。2020/5/15373、VS.NET解决方案和项目结构解决方案:相当于一个容器,用来存放创建应用程序的项目文件组织结构和项目的内容(如窗体文件、代码文件等);一个解决方案通常包括一个或几个相关联的项目,如Windows程序、类库、ASP.NET程序、WebServices等;项目:解决方案内的更小的容器,用来对其组成部分进行编译、调试以及进行逻辑上的管理;一个项目通常包括一个完整程序所包含的各种元素,如窗体、类、代码文件、图片等等。2020/5/15384、基于VS.NET的开发过程编写设计说明书生成测试和调试设计用户界面编写代码创建新项目VisualStudio.NET发布2020/5/15394、基于VS.NET的开发过程2020/5/15405、应用程序类型控制台应用程序Windows应用程序ASP.NET网站(Web应用程序)设备应用程序Windows服务类库或Windows窗体控件库ASP.NETWeb服务……2020/5/1541第一个C#程序:HelloWorld实现一个最简单的应用:HelloWorld。2020/5/15425、应用程序类型1)控制台应用程序(consoleap