82
2010/9/14 中科大软件学院SZ 1 第一章.NET引介

第一章.NET引介 - USTCstaff.ustc.edu.cn/~shizhu/DotNet/DotNet.pdf · 2010/9/14 中科大软件学院SZ 2 第一章.NET引介.NET 定义.NET的特点.NET框架. Visual Studio.NET

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

2010/9/14 中科大软件学院SZ 1

第一章.NET引介

2010/9/14 中科大软件学院SZ 2

第一章.NET引介

.NET 定义

.NET的特点

.NET框架

Visual Studio.NET框架与Java环境的比较

2010/9/14 中科大软件学院SZ 3

1.NET 定义

在 Microsoft China 网站上对 .NET 定义如下

(http://www.microsoft.com/china/net/whatis.asp)(What Is .NET?http://www.microsoft.com/net/basics.mspx)

Microsoft® .NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。

2010/9/14 中科大软件学院SZ 4

更具体地说,Microsoft 正在五个方面创建 .NET 平台,即工具、服务器、XML Web 服务、客户端和 .NET 体验。

2010/9/14 中科大软件学院SZ 5

.NET 定义

.NET是一个施用于一系列技术上的商标

.NET是软件成为一种服务的转移

.NET是一个新的编程模型——也就是说是Internet平台

Web Service是 .NET中的一个核心技术

2010/9/14 中科大软件学院SZ 6

.NET 定义

如今已经非常清楚,.NET标签主要是指两样东西:

.NET框架:提供了托管执行环境、简化的开发和部署以及与各种编程语言的集成。

主要包括:通用语言运行时(Common Language Runtime,CLR)和.NET框架类库(.NET Framework class library)。

CLR为构建应用程序提供了标准的基础设施,

.NET框架类库则提供了一大套标准类及其他类型,以任何语言编写的.NET框架应用程序都可以使用它们。

2010/9/14 中科大软件学院SZ 7

.NET 定义

如今已经非常清楚,.NET标签主要是指两样东西:

Visual Studio:一种用于创建Windows应用程序的集成开发环境(Integrated Development Environment,IDE)。虽然这个工具能够用于建造直接运行于Windows之上的软件,但其主要目的在于帮助开发者创建.NET框架应用程序。Visual Studio支持若干种用以开发这类应用程序的编程语言,包括C#、Visual Basic(VB)、F#以及C++。

DotNET Framework 与Visual Studio的版本

日期 VS版本 DotNET 框架版本

2002.1 Visual studio.net DotNet Framework 1.0

Service Pack 1,2,3

2003.7 Visual studio.net 2003 DotNet Framework 1.1

Service Pack 1

2005.10 Visual studio 2005

Team Foundation Server

DotNet Framework 2.0

Service Pack 1

2006.11 DotNet Framework 3.0

Service Pack 1

2007.11 Visual studio 2008

Team Foundation Server

DotNet Framework 3.5

2010.4 Visual studio 2010 DotNet Framework 4

DotNET Framework 与Visual Studio的版本

2010-4-12,微软发布Visual Studio 2010系列和.NET Framework 4.0。产品支持创建突破性应用程序、推动云计算等新兴趋势、合理化应用程序生命周期管理(ALM);支持统一建模语言(UML)和特定域语言(DSL);同时,还大力改善了开发测试过程的效率。

DotNET Framework 与Visual Studio的版本

VS 2010四个版本:

专业版(Professional):适用于个人开发。

售价1199美元、升级版售价799美元

高级版(Premium):适用于个人和团队开发,创建可扩展、高质量程序的完整工具包。

相比专业版增加了数据库开发、Team Foundation Server(TFS)、调试与诊断、MSDN订阅、程序生命周期管理(ALM)。

售价5469美元,升级版售价2299美元。

2010/9/14 中科大软件学院SZ 10

DotNET Framework 与Visual Studio的版本

VS 2010四个版本:

旗舰版(Ultimate):面向开发团队的综合性ALM工具。

相比高级版增加了架构与建模、实验室管理等。

售价11899美元,升级版售价3799美元。

测试专业版(Test Professional):适用于QA团队,简化测试规划与人工测试执行的特殊版本,包含TFS、ALM、MSDN订阅、实验室管理、测试工具。

售价2169美元,升级版售价899美元。

2010/9/14 中科大软件学院SZ 11

2010/9/14 中科大软件学院SZ 12

.NET的特点

高效率开发庞大地类库,垃圾回收机制,各语言无缝集成等

多平台特性

无接触部署无需注册、无需复制文件到系统目录

消除Dll Hell 不同版本间DLL文件的不全兼容性

计算更安全代码访问安全、基于角色安全、强名称、权限等

2010/9/14 中科大软件学院SZ 13

.NET框架

概述

CLR 类库

精简版

.NET Framework 3.0(3.5)

2010/9/14 中科大软件学院SZ 14

.NET框架 – 概述

互操作性问题 微观编程 类型系统问题:不同系统,类型定义不同 元数据问题:一种编译器如何发现另一种编译器编译的

类型 执行问题:不同的开发工具,不同的执行环境

宏观编程 命名冲突 错误处理:返回值表示的错误与异常表示的错误如何转

换 安全性:如何保证资源不被恶意使用 版本控制:升级中的不兼容 可伸缩性:性能、稳定性等较难预测

.NET框架 – 概述

互操作的一些解决方法

表示标准:

用以解决计算机间传递数据的问题。如:外部数据(XDR)、网络数据(NDR)等。

语言标准:

可在不改源码下,在不同环境重新编译运行。如:ANSI C。 架构标准:

解决跨语言、跨进程、跨计算机间调用方法的问题。如:分布式计算环境(DCE)的远程调用RPC,COM/DCOM等。

执行标准:

提供一个标准的执行环境。如:虚拟机等。

2010/9/14 中科大软件学院SZ 15

2010/9/14 中科大软件学院SZ 16

.NET框架 – 概述

什么是COM?所谓COM(Componet Object Model,组件对象模

型),是一种说明如何建立可动态互访组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。

简单地说,COM是一种跨应用和语言共享二进制代码的方法。

2010/9/14 中科大软件学院SZ 17

.NET框架 – 概述

COM的优点? 应用程序可定制

用户一般希望能够定制所用的应用程序,而组件技术从本质上讲就是可被定制的,因而用户可以用更能满足他们需要的某个组件来替换原来的那个。

提高软件的可重用性由于组件是相对应用程序独立的部件,我们可以在不同的程序中

使用同一个组件,软件的可重用性将大大的得到增强。

分布式、远程调用等应用程序开发得以简化。随着网络带宽及其重要性的提高,分布式网络应用程序成为软件

市场上越来越重要的买点。组件架构可以使得开发这类应用程序的过程得以简化。

2010/9/14 中科大软件学院SZ 18

.NET框架 – 概述

什么是COM+?COM的升级,COM+的底层结构仍然以COM为基础,它几

乎包容了COM的所有内容,COM+综合了COM、DCOM(分布式组件对象模型)和MTS(Microsoft Transaction Server,一种以服务器为中心的三层应用系统开发技术)这些技术要素,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此,COM+与操作系统的结合更加紧密。

COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现。COM+继承了COM几乎全部的优势,同时又避免了COM实现方面的一些不足,把COM、DCOM和MTS的编程模型结合起来,继承了它们的绝大多数特性,在原有的特性上增加了新的功能。

2010/9/14 中科大软件学院SZ 19

.NET框架 – 概述

Windows DNA技术

Windows Distributed interNet Applications Architecture ,分布式集成网络应用体系结构 ,是Microsoft多年积累下来的技术集合起来而形成一个完整的、多层结构的企业应用总体方案,其技术花样繁多,功能也不相同。

总的来说,Windows DNA是一个基于COM和开放的Internet标准的将Internet、客户/服务器、和用于计算的PC模型结合并集成在一起的分布式计算方案而设计的应用软件体系结构。使用Windows DNA模型,用户可建造一个能在任何网络上实现现代的,可伸缩的多层应用软件。

2010/9/14 中科大软件学院SZ 20

.NET框架 – 概述

对开发人员来说,.NET Framework是.NET最重要的组成部分

.NET Framework是Windows DNA的继任者

CLR(Common Language Runtime,公共语言运行库)为所有语言和环境提供了一个通用基础

.NET Framework类库为通用功能提供了标准代码

ASP.NET、ADO.NET、Windows Forms、Enterprise Services、ASP.NET Web Services、生成和处理XML documents”、远程访问服务、COM应用程序的互操作(interoperating)机制。

2010/9/14 中科大软件学院SZ 21

.NET框架 – 概述

2010/9/14 中科大软件学院SZ 22

.NET框架 – 概述

.NET Framework支持各种应用程序桌面、网络、中间间、分布式、数据库、嵌入式等

.NET Framework应用程序由托管代码构成托管代码( Managed Code ):由CLR环境(而不是直

接由操作系统)执行的代码。

托管代码往往使用托管对象进行构建

2010/9/14 中科大软件学院SZ 23

.NET框架 – 概述

2010/9/14 中科大软件学院SZ 24

.NET Framework 环境

2010/9/14 中科大软件学院SZ 25

.NET框架 - CLR

CLR(Common Language Runtime)托管代码执行核心中的引擎。运行库为托管代码提供

各种服务,如跨语言集成、代码访问安全性、对象生存期管理、调试和分析支持。

CLR定义了一套可被多种语言使用的通用语义集

语句(语法)、数据类型、控制结构、类继承机制等

CLR定义了一些基础服务Garbage Collection(垃圾回收)Metadata(元数据)标准格式

Common Scheme(程序集架构)

2010/9/14 中科大软件学院SZ 26

.NET框架 - CLR CLR支持多种编程语言

所有基于CLR的语言都具有同级别的执行性能

Managed Code总是先被编译成MSIL MSIL在第一次运行时才被即时编译(Jit

Compiled)

2010/9/14 中科大软件学院SZ 27

.NET框架 - CLR

2010/9/14 中科大软件学院SZ 28

.NET框架 - 基于CLR的常用语言

基于CLR的常用语言 VS.Net 提供了多种基于CLR的语言,用于构建.NET框

架 Visual Basic.Net C#.Net C++.Net F# 其他(Jscript.Net,j#.Net)

其他厂商 Borland Delphi (花絮:2008年5月Borland宣布将

Delphi以2300万美元的价格出售给Embarcadero Technologies,这意味着历史悠久的Delphi语言将不再归于Borland旗下)

PB

2010/9/14 中科大软件学院SZ 29

.NET框架 – 类库

.NET框架类库

.NET Framework 类库是类、接口和值类型的库,提供对系统功能的访问,且被设计为构建 .NET Framework 应用程序、组件和控件的基础。

任何基于CLR的语言都可使用.NET框架类库

.NET框架类库概观

.NET框架类库被组织成一棵树状命名空间。

每个命名空间可包含许多类及其他命名空间。

2010/9/14 中科大软件学院SZ 30

.NET框架 – 类库

2010/9/14 中科大软件学院SZ 31

.NET框架 – 类库

ASP.NET ASP.NET是ASP的继任者

ASP.NET应用程序可以使用.aspx页和.asmx页 ASP.NET在很多方面改变了ASP的开发方式

ASP.NET实现于System.Web命名空间

ASP.NET内含创建Web应用程序的大量东西:Web控件,状态维护、数据绑定等

ASP.NET代码是经过编译的,比ASP运行快

脚本代码和组件间的区别已消除

与ASP应用相比, ASP.NET更易部署

2010/9/14 中科大软件学院SZ 32

.NET框架 – 类库

ADO.NETADO.NET 为数据在内存中的操作和储存提供了一种

新模式。

ADO.NET让应用程序可以访问被存储的数据

ADO.NET客户端需依赖.NET数据提供者来访问DBMS

ADO.NET的DataSet扮演了一个“数据的内存缓冲”角色

2010/9/14 中科大软件学院SZ 33

.NET框架 – 类库(ADO.NET)

2010/9/14 中科大软件学院SZ 34

.NET框架 – 构建分布式应用程序

软件间的通讯显得越来越重要。.NET框架类包含三种截然不同的分布式应用创建技术:

ASP.NET Web Services允许经由SOAP的通讯

.NET远程系统专注于基于.NET框架的应用程序之间的通讯

企业服务器提供了分布式事务及其他服务

2010/9/14 中科大软件学院SZ 35

.NET框架 – 构建分布式应用程序

2010/9/14 中科大软件学院SZ 36

.NET框架 – 构建分布式应用程序

ASP.NET Web Services 分布式应用程序和浏览器

Web Services允许以编程的方式来访问Web应用程序

Web Services可被应用于很多方面

Web Service接口可采用WSDL(Web Services Description Language)定义

通常用SOAP(Simple Object Access Protocol,简单对象访问协议)来调用Web Service

Web Services接口定义可经由UDDI( Universal Description Discovery and Integration即统一描述、发现和集成协议)发布和访问

Web Services标准获得广泛认可

2010/9/14 中科大软件学院SZ 37

.NET框架 – 构建分布式应用程序

2010/9/14 中科大软件学院SZ 38

.NET框架 – 构建分布式应用程序

.NET远程系统

Web Services是必需的,但不够

.NET Remoting专注在基于CLR应用程序之间进行通讯

.NET Remoting既支持同步通讯也支持异步通讯

2010/9/14 中科大软件学院SZ 39

.NET框架 – 构建分布式应用程序

企业服务 为.NET 对象提供对 COM+ 服务的访问。

通过COM+服务,可以容易地开发出多层结构的应用系统,因为这些系统服务本身已经满足了多层应用的一些基本要求。

2010/9/14 中科大软件学院SZ 40

.NET框架 – 精简版

.NET Compact Framework是较小版本的.NET Framework一种独立于硬件的环境,用于在资源受限的计算设备上运行程序。它继承

了完整的.NET Framework 结构,支持 .NET Framework 类库的子集,并且包含专为 .NET Compact Framework 设计的类。

所支持的设备包括:个人数据助理 (PDA)(如 Pocket PC),移动电话,机顶盒,汽车计算设备,以及安装有 Microsoft Windows CE操作系统的自定义设计的嵌入设备。

Visual Studio.NET可开发运行于.NET Compact Framework上的应用程序

Visual Studio 2010目前缺乏对Windows Mobile 6.x及过去版本的支持

2010/9/14 中科大软件学院SZ 41

2010/9/14 中科大软件学院SZ 42

.NET Framework 3.0 现代应用程序面临的一系列新挑战: 支持基于工作流(WF)的应用程序

工作流:按照特定顺序执行的一系列步骤。使逻辑与代码分开,过程中的每一步骤都会明确定义,然后由工作流引擎执行。

支持面向服务的应用程序简化应用程序间的通信

2010/9/14 中科大软件学院SZ 43

.NET Framework 3.0 现代应用程序面临的一系列新挑战(续): 一致的数字标识用户控件

Internet 面临着巨大的挑战。 人们越来越担心联机标识被盗取、遭遇欺诈和隐私被公开这些问题。 用户必须记住越来越多的帐户和密码。 这种重负会导致“密码疲劳症”,从而会产生一些不安全的做法,比如在许多网站重复使用相同的帐户名和密码。

CardSpace 用不同的信息卡来表示每个数字标识。 统一不同的用户界面

使用不同的技术,为不同的客户端创建一致的用户界面(GUI, Web 浏览器界面, 视频播放,图形显示,文档显示等)。

示例: Yahoo! Messenger

.NET Framework 3.0 微软针对这一系列问题在Dotnet类库中增

加了相应地解决技术

在正式发布前,这一组技术(WF 、 WCF 、WCS 、 WPF)称为WinFX,后来在2006年6月改名为.NET Framework 3.0。

尽管名字这么叫,.NET Framework 3.0其实只是一组添加到.NET Framework 2.0中的仍然运行在2.0版.NET CLR上的类,它还对Windows操作系统做了一些相应的改进,如下图所示。

2010/9/14 中科大软件学院SZ 44

2010/9/14 中科大软件学院SZ 45

.NET Framework 3.0

.NET Framework 3.0 添加了四个新组件:Windows Workflow Foundation、Windows Communication Foundation、Windows CardSpace 和 Windows Presentation Foundation。

Windows Workflow Foundation Windows Workflow Foundation (WF)

WF是编程模型、引擎和工具,用于在 Windows 上快速生成启用工作流的应用程序。

它包括一个命名空间、一个进程内工作流引擎和多个 设计器。

WF可以处理的方案包括: 在业务线应用程序中启用工作流 用户界面页流 以文档为中心的工作流 人工工作流 面向服务应用程序的复合工作流 业务规则驱动的工作流 系统管理的工作流

2010/9/14 中科大软件学院SZ 46

Windows Communication Foundation

Windows Communication Foundation (WCF) WCF是 Microsoft 为构建面向服务的应用程序而提供的统一编程

模型。借助这一模型,开发人员可以构建既能跨平台与现有投资集成又能与现有投资交互的安全、可靠和事务处理的解决方案。

WCF意在成为一种可以在.NET程序集需要和其他软件实体交换数据的任何场景中都适用的技术。

2010/9/14 中科大软件学院SZ 47

Windows CardSpace CardSpace 是 Microsoft 的标识元系统的实现。

http://www.microsoft.com/china/MSDN/library/Windev/WindowsVista/aa480189.mspx?mfr=true

标识元系统允许用户从他们的数字标识公文包中选择标识,并在接受其标识的选定 Internet 服务上使用它们。 该元系统使得由一个标识系统技术提供的标识可以用在基于不同技术的系统中,前提是存在一个中间媒介,它了解两种技术并且可以安全地进行所需的转换。

下图演示了使用 CardSpace 访问需要进行用户验证的网站时发生的端到端过程。

2010/9/14 中科大软件学院SZ 48

Windows CardSpace

2010/9/14 中科大软件学院SZ 49

Windows CardSpace 当今的许多 Internet 问题(从网页仿冒攻击到不一致的

用户体验)都是因为多个数字标识解决方案拼凑在一起所造成的,而这些解决方案是软件开发商在缺少统一而构造合理的数字标识系统的情况下生成的。 标识元系统(由标识规则定义)将提供一个统一的数字标识结构,使用现有和将来的标识系统,使这些系统能够协同工作,并能够为它们创建一个简单的一致用户界面。

基于在标识规则方面的工作,Microsoft 正在与业内的其他各方合作,以使用已公布的 WS-* 协议生成标识元系统,这些协议提供可以与其他各方生成的标识系统完全互操作的 Microsoft 实现。 Microsoft 的标识元系统组成部分的实现是 CardSpace 系统。

2010/9/14 中科大软件学院SZ 50

2010/9/14 中科大软件学院SZ 51

.NET Framework 3.0 –Windows CardSpace

2010/9/14 中科大软件学院SZ 52

.NET Framework 3.0 –Windows Presentation Foundation

.NET Framework 3.0 –Windows Presentation Foundation

Windows Presentation Foundation(WPF)WPF是微软新一代图形系统,基于DirectX 9/10技术

,其图形向量渲染引擎大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。

程序员在WPF的帮助下,可开发出媲美Mac程序的酷炫界面。 WPF提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持,3D视觉效果和强大无比的控件模型框架。

2010/9/14 中科大软件学院SZ 53

Windows Presentation Foundation(WPF)针对Vista操作系统,微软提供了专门的界面开发语言XAML(

eXtensible Application Markup Language,可扩展应用程序标记语言)。XAML作为微软Vista操作系统的界面描述语言,它可对WPF程序的所有界面元素进行定制,从而构建炫丽夺目的软件界面。

XAML作为界面描述语言(注意是“语言”),它最终会被编译成.Net后台代码。因此,它能够同后台进行逻辑处理的.NET语言如C#、C++、VB等协同工作,其工作性质类似于ASP.NET中的HTML。XAML的产生,使得界面描述代码和程序代码得以分开,从而提高了开发效率并有利于团队开发。

同HTML一样,XAML既可以直接编码,也可以由专门的工具生成。

2010/9/14 中科大软件学院SZ 54

.NET Framework 3.0 –Windows Presentation Foundation

2010/9/14 中科大软件学院SZ 55

.NET Framework 3.5 结构

.NET Framework 3.5

.NET Framework 2.0

.NET Framework 2.0Service Pack 1

.NET Framework 3.0

.NET Framework 3.0Service Pack 1

2010/9/14 中科大软件学院SZ 56

. NET Framework 3.5 结构

.NET Framework 3.0 和.NET Framework 3.5 是累加的

• .NET Framework 3.0 引入了类似Windows Presentation Foundation (WPF) 这样的技术,但与.NET Framework 2.0 使用相同的公共语言运行库和基类库

同样,.NET Framework 3.5 引入了一些新技术的功能(例如LINQ 和ASP.NET AJAX)以及一些附加的基类库,但它也使用.NET Framework 2.0 附带的相同公共语言运行库和类库

.NET Framework 3.5 为.NET Framework 2.0 和.NET Framework 3.0 附带的现有技术提供了附加功能

2010/9/14 中科大软件学院SZ 57

. NET Framework 3.5 结构

NET Framework 2.0、3.0 和3.5 版之间的关系不同于1.0、1.1 和2.0 版之间的关系。.NET Framework 1.0、1.1 和2.0 版是彼此完

全独立的,而且,不管计算机上是否存在其他版本,这三个版本中的任何一个版本都可以存在于计算机上。当1.0、1.1 和2.0版位于同一台计算机上时,每个版本都有自己的公共语言运行库、类库和编译器,等等。应用程序可以选择是将1.0、1.1 还是2.0 版作为目标。

2010/9/14 中科大软件学院SZ 58

. NET Framework 3.5 结构

.NET Framework 2.0 的附带技术

公共语言运行库(CLR)。 对泛型类型和方法的支持。

C#、Visual Basic、C++ 和J# 的编译器。

基类库(ADO.NET、ASP.NET、Windows 窗体、Web 服务等)

……

2010/9/14 中科大软件学院SZ 59

. NET Framework 3.5 结构

.NET Framework 2.0 Service Pack 1 .NET Framework 2.0 Service Pack 1 更新

了.NET Framework 2.0 附带的CLR 和一些程序集,并可以独立于.NET Framework 3.5 进行安装。

对.NET Framework 2.0 的大部分更新都不是重大更改,但也有少数几处地方添加了新的API 或更改了行为,属于重大更改。

如果应用程序依赖新的或更改的功能,则建议应用程序以.NET Framework 3.5 作为目标。

2010/9/14 中科大软件学院SZ 60

. NET Framework 3.5 结构

.NET Framework 3.0 .NET Framework 3.0 需要在计算机上安装.NET

Framework 2.0。如果用户在未安装.NET Framework 2.0 的计算机上安装.NET Framework 3.0,则会自动安装.NET Framework 2.0。

下列技术是随.NET Framework 3.0 引入的技术:

Windows Presentation Foundation (WPF). Windows Communications Foundation (WCF)。 Windows Workflow Foundation (WF)。

2010/9/14 中科大软件学院SZ 61

. NET Framework 3.5 结构

.NET Framework 3.0 SP 1 .NET Framework 3.0 Service Pack 1 更新了.NET

Framework 3.0 附带的一些程序集,并可独立于.NET Framework 3.5 进行安装。

更新的内容包括非重大更改、新的API 元素和针对.NET Framework 3.0 附带的技术的附加功能。如果应用程序依赖新的功能,则建议应用程序以.NET Framework 3.5 为目标;

安装.NET Framework 3.0 SP1 时,将会安装.NET Framework 2.0 SP1(如果尚未安装在计算机上)。

2010/9/14 中科大软件学院SZ 62

. NET Framework 3.5 结构

.NET Framework 3.5 .NET Framework 3.5 为2.0 和3.0 中的技术

引入了新功能,并以新程序集的形式引入了其他技术。下列技术是随.NET Framework 3.5 引入的技术:

LINQ。

C#、Visual Basic 和C++ 的新编译器。

ASP.NET AJAX。 基类库中的附加类。

2010/9/14 中科大软件学院SZ 63

.NET Framework各版本的兼容性

向后兼容

向后兼容性意味着使用.NET Framework 的较早版本创建的应用程序可以在更高的版本上运行,例如使用.NET Framework 1.0版创建的应用程序可以在1.1版上运行

• 向前兼容

向前兼容性意味着使用.NET Framework 的更高版本创建的应用程序可以在较早的版本上运行,例如使用.NET Framework 1.1版创建的应用程序可以在1.0版上运行

1.0版创建的程序:可向后兼容

1.1版创建的应用程序:可向后兼容、可向前兼容

2.0版创建的应用程序:不可向前兼容

2010/9/14 中科大软件学院SZ 64

Visual Studio

概述

通用语言

领域特定语言和统一建模语言(UML) 团队开发

2010/9/14 中科大软件学院SZ 65

Visual Studio 概述

Visual Studio 是一套完整的开发工具,用于生成 ASP.NET Web 应用程序、XML Web services、桌面应用程序和移动应用程序。

VS为各种语言编程提供相同的集成开发环境 (IDE),这样就能够进行工具共享,并能够轻松地创建混合语言解决方案。

现今大多数.NET开发人员都使用Visual Studio Visual Studio是一个产品家族

Visual Studio 支持多种语言

下图为Visual Studio 2005的一个界面

2010/9/14 中科大软件学院SZ 66

Visual Studio 2005

Visual Studio IDE特性

主页

窗口的定位

窗口下的标签、切换

窗口自由浮动、定位、移动、组合、分离等

窗口

图形设计器、解决方案资源管理器、属性窗口、类视图、动态帮助、工具箱、服务器资源管理器、任务列表、输出窗口、命令窗口、调试窗口等

2010/9/14 中科大软件学院SZ 67

2010/9/14 中科大软件学院SZ 68

Visual Studio - 通用语言

Visual Studio 支持基于CLR的语言 Visual Basic

一门被广泛使用的语言;相对VB6,变化巨大;

C#C#是偏爱基于C++语法的.NET框架开发人员的自然语言;

与VB几乎有完全相同的功能

C++C++的语义和CLR的语义不完全相同;可以使用C++/CLI

开发基于.NET框架的应用程序,也可以使用标准C++来开发非基于.NET框架的应用程序

F#:(见下页)

F# 历史

2002年开始研发,2005年发布了第一个版本,2007年底正式从研发专案转移至产品部门,并决定将F#置入Visual Studio.NET 2010。2010年4月12日发布。

定位微软计划将慢慢整合F#至.NET平台并使F#最终成为.NET平台的

顶峰语言。

F#是一种函数型程序设计(FP,Functional Programming)语言。然而F#对命令式编程(Imperative Programming)与OOP的支持几乎一样的出色。

F#也许终将成为程序核心部分设计的首选,而C#与VB等将在用户界面交互设计方面继续发挥其强大的潜力。

2010/9/14 中科大软件学院SZ 69

2010/9/14 中科大软件学院SZ 70

Visual Studio - 领域特定语言

领域特定语言可以帮助转向模型驱动开发(http://www.microsoft.com/china/msdn/library/langtool/vsts/dnvs05vstsmo

del.mspx?mfr=true)

什么是DSL(Domain Specific language)DSL是指软件开发中出于某特定考虑而设计的小的、目标明确

的语言。它们的作用是,使用某特定领域里惯用的符号或者表示法对该领域的实体或者流程进行建模。

DSL有如下分类:

1. 固定和独立的DSL(fixed, sparate DSL),如SQL,用独立转换器实现的,导致技术孤岛

2. 嵌入式的DSL(Embedded DSL),如类和过程,还有嵌入式的DSL3. 模块可组合的DSL(Modularly Composable DSL),包含两种DSL:封

装的DSL(encapsulated DSL)和方面性(aspectual DSL)。这个两个关系就象OOP和AOP(Aspect-Oriented Programming面向方面编程)之间的关系。

2010/9/14 中科大软件学院SZ 71

Visual Studio - 领域特定语言

由此可见,DSL是面向问题域的。换句话说,DSL是用来解决(特定)问题。

1. DSL更多的是表述特定问题域的,这是和常见编程语言的最大区别,编程语言不是面向特定的问题域的,而是一般问题域。 DSL中关于问题域的名词是关键字,而编程语言不是。

如,对于保险行业来说: 代理人,保单都是DSL中的关键字,而在编程语言中不是,需要建立起该对象(OO语言中)。同时:OO追求的是一个细粒度的设计,而在DSL中可以是相对的一个粗粒度的概念。DSL中对象体系的观念并不直接。

DSL不处理编程语言中所涉及到的技术问题。

2. DSL是针对一个问题域的过程化表述。DSL基于特定问题域的关键字——名词,给出一个特定问题的流程。

2010/9/14 中科大软件学院SZ 72

Visual Studio - 领域特定语言

什么是模型驱动开发 模型驱动开发(MDD: Model-Driven Development )是模型

驱动体系架构( MDA :Model-Driven Architecture) 中的一部分。由对象管理组织OMG(Object Management Group)所定义。MDA 表示了一种模型驱动开发方法的概念框架。

强调模型的精细化,然后自动生成代码;能快速的应对需求的变动

参考的开发流程:先建模,然后工具生成代码;优点:

完善的文档:因为模型本身就是文档,而且模型驱动的开发方式是以模型为起点,所以项目一开始就有完善的文档。

准确:由于代码是生成的,所以要比手写的来的准确,能准确地表达设计意图。

效率高:由模型描述出的类,多而且繁杂,手写很费时间,生成就省事多了,也不容易出错。

2010/9/14 中科大软件学院SZ 73

Visual Studio – 领域特定语言

Visual Studio提供了类设计器以及其他的领域特定语言

类设计器根据类图生成代码

建模项目

VS 2010支持统一建模语言UML(Unified Modeling Language)建模图有助于理解、阐明和传达代码的构思和软件系统必须支持

的用户需求。

如,可用UML 用例图、活动图、类图和序列图描述和传达用户需求。用 UML 组件图、类图、活动图和序列图描述和传达系统的功能。

参考:可代替Rose建模工具,进行软件架构的构建。比rational的那些要简单。

2010/9/14 中科大软件学院SZ 74

建模项目

此版本支持以下 UML 关系图: 活动图:业务流程中的操作和参与者之间的工作流

组件图:系统的组件、组件的接口、端口和关系

类图:用于在系统中存储和交换数据的类型及其关系

序列图:对象、组件、系统或参与者之间的交互序列

用例图:系统支持的用户目标和任务

可从现有代码创建以下关系图: 层关系图:代码的不同部分之间的依赖关系

类图:.NET 代码中的类型及其关系

序列图:.NET 代码中方法调用的序列

2010/9/14 中科大软件学院SZ 75

2010/9/14 中科大软件学院SZ 76

Visual Studio – 团队开发

今天大多数软件由团队而非个人创建

Visual Studio 2005 Team System内含数种不同的工具

2010/9/14 中科大软件学院SZ 77

Visual Studio – 团队开发

Visual Studio 2005 Team Edition for Software Architects提供一组统称为分布式系统设计器(Distributed System

Designers)的工具。每一种工具提供一个DSL,分别针对架构师设计面向服务的应用程序(service-oriented applications)的各个方面。

这个产品还包括一个Visio版本,允许创建UML图、实体/关系图,以及其他面向架构的图。

Visual Studio 2005 Team Edition for Software Developers包括对实际编写代码的人员有用的工具。这些工具支持静态代码

分析,可以暴露诸如使用未初始化的变量的问题,还提供了动态代码分析功能,允许对代码进行评测以便改善性能,等等。

2010/9/14 中科大软件学院SZ 78

Visual Studio – 团队开发

Visual Studio 2005 Team Edition for Software Testers提供专注于由代码测试人员所完成的任务的工具,例如用以创建

和运行单元测试(unit tests)和装载测试的工具。

Visual Studio 2005 Team Foundation Server为其他Team System组件提供通用平台。作为独立的服务器应用

程序而实现,Team Foundation Server保持对团队项目的跟踪,维护一个工作项数据库,支持项目源代码的版本控制,并提供软件开发团队所需要的其他通用服务。

由一个特定Team Foundation server所维护的项目,也可以利用一个叫做Team Explorer的客户端进行检查。状态报告和其他信息则通过建造于Windows SharePoint Services之上的Team System入口提供。

2010/9/14 中科大软件学院SZ 79

.NET框架与Java环境的比较

2010/9/14 中科大软件学院SZ 80

.NET框架与Java环境的比较

相似处 用于Web scripting

Java Server Pages(JSP)-- ASP.NET 用于构建GUIs

Java 的 Swing -- Windows Forms 用于实现基于Web services通讯

JAX-WS(以前名为JAX-RPC)-- ASP.NET Web Services 用于建造可伸缩的服务器应用程序

Enterprise Java Beans(EJB)--企业服务(Enterprise Services)

用于访问数据库JDBC -- ADO.NET。

Java虚拟机与.NET框架的CLR也很像;甚至占优势地位的语言(微软的C#、VB)和与之相对的Java,都非常相似。

2010/9/14 中科大软件学院SZ 81

.NET框架与Java环境的比较

差异一个明显差异是Java环境可运行于不同的操作系统

上,.NET框架则专注于Windows。Java环境移植性好,但却阻碍了与任何系统的紧密整合;基

于Java的产品可以从多家厂商获得,由于不同的Java厂商可以对核心规范做一些不同的扩展,因此开发人员弄不好就被锁定于单一厂商。

.NET框架与Windows系统紧密结合;产品由微软独家提供。

这种情况所造成的分歧和竞争是一件好事。每一个阵营都有好的观念,每一方都可以借鉴对方。如果这个世界只存在一种居绝对统治地位的技术,都会导致垄断。但是如果出现一大堆选择,又将导致混乱。两个强有力的竞争对手,每一方都努力胜过另一方,这种竞争刚刚好。

2010/9/14 中科大软件学院SZ 82

术语

类型系统

CLR中定义应用程序可以使用的全部类型的部分

元数据

CLR中描述类型的部分。元数据以二进制形式存储

执行系统

CLR的一个组成部分,功能包括加载程序集、控制执行流以及管理垃圾回收堆