设施 集成了XML支持的安全的,可扩充的服务器 给.NET提供宿主和部署
开发工具
Microsoft Visual Studio .NET 选择合适的语言编写实现代码 把应用封装为XML Web服务.Visual Studio .NET 自动产生把应用程序变成XML Web服务所需要的XML和SOAP接口.开发者集 中精力在应用逻辑上 重用已有的XML Web服务.Visual Studio .NET 为开发者提供了在自己的应用或服务中调用已有 XML Web服务的功能.
.NET平台
.NET平台
框架和工具 Common Language Runtime 统一的类库 Visual Studio.NET
积木块服务
经常调用的国际互联网服务 代码更新, 查询服务, 代码更新
查询服务 Messenger, .NET My Services
基础设施
.
NET企业服务器 企业服务器
设备
运行.NET应用的各种设备 应用的各种设备 运行
.Net框架
.NET框架是.NET平台的编程模型 .NET框架是在Microsoft .NET平台上进行开发的基 础,.NET框架以及针对设备的.NET框架简化版为XML Web服务和其他应用程序提供了一个高效安全的开发环 境,并全面支持XML. 管理许多垂直的细节, 使得开发人员把精力集中在编写应 用问题本身的事务逻辑代码上 .NET框架的核心技术为:CLR,类库,ASP.NET及 ADO.NET. 不依赖于具体的程序
设计语言 支持
软件重用
1/8
框架提供统一的编程模型
.NET框架 框架
VB Forms
MFC &; ATL
ASP
Windows API
CLS-公共语言规范
定义.NET语言的公共特性 包含有关于数据类型存储,对象等的信息 已经提交给欧洲
计算机制造商协会(ECMA) 标准化(ECMA-335) 目前只存在Windows平台的, 正在开发其他 平台(Linux, Free BSD)的framework版 本.
CLR
提供了多语
言执行环境,可以执行用任何.NET语言编写 的
程序,使得组件和XML Web服务的开发不再受编程语 言的限制. 目前,可以用来编写.NET应用程序的编程语言不下20种, 如C++, Visual Basic .NET,Jscript,C#,COBOL, Eiffel,Perl,Python,Smalltalk等等. 一个程序第一步编译为微软中间语言(MISL) MSIL被编译为目标平台的机器代码. MSIL定义了CLR的指令集 CLR引入了一些能提高应用程序运行可靠性的技术(比如 消除了内存泄漏)
CLR 的功能
1. 2. 3. 4. 5. 6. 7. 语言集成 加强安全 内存管理 进程管理 线程管理 版本管理 ……
CLR的交互
把所有的软件都映射到.NET对象模型.经过编 译,隐藏了类的原来编写语言是什么的信息
C++
C# 对象模型 平台
Eiffel
编译器
…
视图
VB C# C++ 编译器 编译器 编译器 汇编代码
中间语言 代码
Common Language Runtime JIT编译器 编译器Ngen 编译器 (Native Image Generator)
操作系统
Microsoft IL-中间语言
编译器不产生本地代码,而是生成一个与处 理器无关的中间语言
– MSIL – Microsoft Intermediate Language – 不同语言之间的集成在MSIL层上实现
IL代码执行前需要通过JIT编译为本地机器 代码
– 独立于硬件平台 – 为设备提供了Compact Framework
JIT编译器
从IL代码生成本地可执行代码 输出代码依赖于
– CPU类型 – 操作系统以及版本 – 命令行开关
交互性
问题 Eiffel和C++允许多重继承;.NET对象模型(如同
Java, C# and Visual Basic .NET)只允许一个类从 一个类继承 用户可以申明一个Eiffel的LIST [G]类描述任意类 Eiffel LIST [G] 型G的对象,不需要说明G是什么. 之后可以用 类定义类型LIST [INTEGER], LIST [EMPLOYEE], 甚至LIST [LIST [INTEGER]].C++的templates可 达到同样的目标..NET对象还不具有 数组在Visual Basic从1开始,在C中从0开始.
交互性问题
在.NET中, 名字"C++"不 仅表示语言,还表示两样 东西Unmanaged C++和 Managed C++. 来自两种语言的类能共存 在一个应用中 Unmanaged类将编译为 普通目标代码, 但不是对 象模型,所以, 它们不能 受惠于CLR从而缺乏与其 他语言的无缝交互性
CLR类型安全
实现了严格的类型和代码检查机制CTS (Common Type System),增强了代码的健壮性. CTS保证所有的managed code是自我描述