《微软平台介绍》PPT课件.ppt
学前动员-为什么要学?,先进的技术诱人的前景,理解可视化编程和面向对象编程的基本概念理解并掌握C#面向对象程序设计常用技术掌握常用的错误处理和异常处理方法 掌握基本的控制台和windows编程,课 程 要 求与培养目标,第1章:微软.NET平台简介第2章:微软.NET平台动手实验,.NET平台与C#面向对象程序设计课程内容,第3章:C#语言第4章:C#语言实验,第5章:面向对象的设计思想与UML第6章:面向对象的设计思想与UML实验,.NET Framework相关概念.NET应用程序开发概述代码设计规范及命名规则,教 学 要 点,第12章,C#数据类型操作符、表达式与常用流程控制处理程序异常、调试程序,面向对象相关概念类及其成员的正确使用类的封装、继承、多态与抽象泛型与泛型集合接口的使用委托的使用,第34章,第56章,第1章 微软.NET平台介绍,内容:,.NET和.NET框架通用类型系统程序集 Windows应用程序项目的创建,学习完本节后,你将能够:了解.NET平台和.NET框架中各个组建的功能了解公共语言运行库(CLR)的功能了解.NET框架类库的功能,.NET和.NET框架 1.1,微软首席执行官鲍尔默:“Microsoft.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程框架。”,微软的.NET战略,微软主席比尔.盖茨:“软件将使一切成为可能”。这种向.NET平台的迁移是和“从DOS到Windows迁移”一样意义重大。,.NET平台,.NET框架,操作系统,公共语言运行库,.NET 框架类库,ADO.NET、Windows 窗体、ASP.NET、全球化、安全性,编程语言,Win32,MSMQ(消息队列),COM+(事务、分区、对象池),IIS,ADO,.NET框架,公共语言运行库CLR,.NET 框架类库,ADO.NET:数据和 XML,ASP.NETWeb 窗体和Web服务,Windows 窗体,VB,C+,C#,Perl,.NET 框架的目标,极大的简化了应用程序的开发和部署统一的编程模型健壮和安全的执行环境支持多种编程语言,公共语言运行库 CLR 1.2,CLR(Common Language Runtime)负责管理和执行.NET框架代码。CLR在.NET平台中可看做在执行时管理代码的代理人,负责底层统一的进程/线程管理(如线程安全)、内存管理(如垃圾收集)、安全管理、代码验证、编译等核心的系统服务。CLR通过中间语言机制实现.NET的编程语言无关性,此外也为.NET Framework带来潜在的平台无关性-一次编写,到处运行。,公共语言运行库 CLR 1.2,.NET 框架类库支持,类加载器,类加载器,JIT 即时编译器,执行,安全性检查,类库(中间码),信任的、预编译代码,调用一个未经编译的方法,Runtime Engine,机器码(目标码),编译器,源代码文件,EXE/DLL(中间码文件),.NET程序执行过程,垃 圾 收 集,手工的内存管理常见问题:忘记释放内存-内存泄露 意外访问已释放内存-游离指针.NET CLR提供了自动的内存管理内存的申请和释放自动由CLR负责,程序员轻松减少了错误和bug的出现,内存怎么不够用啦?!,我的数据怎么被别人篡改啦?!,.NET Framework类库 1.3,不同的编程语言所提供的API或类库存在很大差异。选择一种编程语言意味着程序员必须学习该语言所提供的类型、结构、类库、函数等等。.NET Framework实现了应用程序开发的“通用性”,所有的编程语言均使用统一的基础类库。一致性大大提高了软件开发的效率和生产率,并可以节省由于语言差异而对程序员培训的费用。,.NET Framework类库 1.3,命名约定使用点语法命名方案:全名的第1部分即最右边的点之前的内容是命名空间名,最后一部分是类型名。如:System.Collection.ArrayList表示ArrayList类型,该类型属于System.Collection命名空间。库开发人员在创建命名空间的名称时应使用:公司名称.技术名称,如Microsoft.Word符合此命名规则。重要命名空间,通用类型系统 1.4,不同的编程语言有不同的类型系统,并且有些是某种语言所特有的,例如VB的Variant,VC中的HWND。数据类型的不一致使应用程序的互操作十分困难。在.NET中,所有语言使用一套公共类型系统CTS,虽然在不同语言中表现形式不尽相同,如整型在VB.NET中表示为Integer,在C#中表示为int,但最终在CLR中被统一映射成System.Int32类。内置的公共类型系统极大地提高了应用程序的互操作性,同时保证类型安全性。,通用类型系统 1.4,通用类型系统(Common Type System,CTS)定义了如何在公共语言运行库中声明、使用和管理类型,同时也是公共语言运行库支持跨语言集成的一个重要组成部分。CTS执行以下功能:建立一个支持跨语言集成、类型安全和高性能代码执行的框架。提供一个支持完整实现多种编程语言的面向对象模型。定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够交互作用。,通用类型系统 1.4,通用类型系统支持两种一般类别的类型:值类型和引用类型。值类型直接包含其数据,其实例在堆栈或内联在结果中。值类型主要由结构和枚举组成结构分为数值类型(Numeric)、布尔型(bool)、用户定义的结构(struct)。引用类型存储对内存地址的引用,位于堆中,可以使用自描述类型、指针类型或接口类型。,.NET编程语言,.NET平台是“语言中立的”目前支持20多种编程语言遵循公共语言规范CLS微软提供:VB.NET,C+.NET,C#.NET,J#.NET第三方提供:APL,COBOL,Pascal,Eiffel,Haskell,ML,Oberon,Perl,Python,Scheme,Smalltalk,程序集 1.8,程序集可直接与公共语言运行库打交道,一个程序集是一个或多个托管模块的集合。除了托管模块,程序集还包括资源文件、程序集清单,一个不包含程序集清单的的托管PE文件不会被执行。程序集是组建复用、实施安全策略和版本策略的最小单元。,程序集 1.8,程序集分为单文件程序集和多文件程序集。程序集功能:(1)包含公共语言运行库执行的代码;(2)形成安全边界(3)形成引用范围边界(4)形成版本边界(5)形成部署单元(6)是支持并行执行的单元,程序集 1.8,两种程序集:弱命名程序集和强命名程序集。两种部署方式:私有部署和公有部署私有部署:简单地文件复制,把程序集复制到硬盘的某个目录中。全局部署:将程序集安装到一个特点的目录中。规则:强名称程序集可以进行私有或全局部署,若命名程序集仅可以进行私有部署。,代码设计规范 1.12,大小写样式:Pascal大小写:BackColorCamel大小写:backColor大写:IO命名规则:选择易读的标识符名称可读性比简洁性更重要避免使用与编程常用语言的关键字冲突的标识符,代码设计规范 1.12,命名类、结构和接口的规则安照Pascal 大小写格式,使用名词、名词短语和形容词短语不要为类名加前缀考虑在派生类的末尾使用基类名称为接口名称前加上字母I前缀在定义类的接口时,除接口带有前缀I外,其他部分完全相同不要将Enum作为枚举类型的后缀不要在标志枚举的名称中添加Flag作为后缀为自定义属性类添加Attribute后缀为在事件中使用的类型的名称添加EventHandler后缀为扩展System.EventArgs的类添加EventArgs后缀为从System.Exception,继承的类型添加Exception,Stream后缀,概述,内容:,.NET和.NET框架 浏览Visual Studio.NET Windows应用程序项目的创建,浏览 Visual Studio.NET 1.2,学习完本节后,你将能够:了解Visual Studio.NET 环境了解Visual Studio.NET 帮助了解Visual Studio.NET 的编程特点了解Visual Studio.NET 进行开发的过程描述Visual Studio.NET 解决方案和项目文件的组织结构,Visual Studio.NET 窗口,解决方案资源管理器类视图属性窗口任务列表服务器资源管理器工具箱其它窗口可停靠窗口和选卡式窗口,Visual Studio.NET 帮助,动态帮助联机帮助-搜索功能联机帮助-索引功能,开发环境的使用,Demo,开 发 过 程,VS.NET的编程功能和特点,设计,开发,调试,部署,VS解决方案和项目结构,解决方案一个容器,把多个VS.NET项目组织在一起的项目集合一个解决方案通常包含一个或几个相关联的项目项目解决方案内的容器,用来对项目内容进行编译、调试以及管理和配置,概述,内容:,.NET和.NET框架 浏览Visual Studio.NET Windows应用程序项目的创建,Windows 应用程序的创建 1.3,学习完本节后,你将能够:创建基于Windows 应用程序模板的 Visual C#项目浏览 Windows 窗体设计器浏览“属性”窗口创建常用的 Windows 应用程序,应用程序模板,提供了起始文件、项目结构定义和环境设置,Windows窗体设计器的使用,“属性”窗口的使用方法,设置属性,包括尺寸、标题和颜色,创建一个简单的Windows程序,练 习,参见教材P20页1.3.5 课堂练习,10 分钟,回 顾,学习完本章后,你将能够:了解.NET和.NET框架中各个组件的作用浏览Visual Studio.NET开发环境创建Windows应用程序,小憩片刻,终于休息啦!,