(01) 微软.NET平台与开发体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译
源代码 语言编译
中间代码
Assembly
元数据
本机代码 Native Code
即时编译
(JIT Compiler)
在安装或函数/方法第一 次被调用时
执行
公共语言运行时
程序集 (Assemblies)
example.DLL Metadata(元数据) IL Managed code
Resources
传统的开发
Windows API
HWND hwndMain = CreateWindowEx( 0, "MainWinClass", "Main Window", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain);
没有负面影响的安装(Zero-impact install)
不同版本的应用可以同时运行
各种版本的应用程序可以同时存在
数据 and XML
ADO.NET
非连接数据集(DataSet) – 内存中的关系型表
Fill from managed providers or XML
连接托管提供器(Managed Providers)
其他特性
公共语言运行时
清单(manifest)
指向元数据中对导出类型的描述 Classes Base classes Implemented interfaces Data members Methods
对程序集的描述
Name Version Culture Other assemblies Security Permissions Exported Types
The .NET的演变历史
使用 .NET Framework的公共 语言运行时(CLR), 组件都建 立在一个共同的底层基础上. 不 再需要管道的繁琐细节,对象 可以直接交互。
公共语言运行时(Common Language Runtime)
管理运行代码
确认类型的安全性 提供垃圾收集,错误处理 对半信任代码的访问安全控制 数值类型 (integer, float, user defined, etc) 引用类型(Objects, Interfaces) 提供跨语言的支持,包括统一的异常处理和跨语言调试 包括Windows API和COM InterOP服务
.NET应用程序类型
Windows Form应用程序 Windows Form控件 Windows Service应用程序 ASP.NET Web应用程序 Web Service
.Net Framework的设计基于如下目标
简化开发 (Simplify development)
.NET Framework
Operating Systems
结构
编程语言
统一的API(类库)支持
公共语言运行时
操作系统
.NET Framework 体系结构
VB C++ C#ห้องสมุดไป่ตู้J# …
公共语言规范(CLS)
ASP.NET Web Form , Web 服务 Mobile Internet Toolkit Visual Studio .NET Windows Form
=>自我描述的组件,直接xcopy =>层次化的名字空间(namespace) =>原代码直接到元数据(METADATA) =>结构化的异常处理 =>root object class =>垃圾回收 (garbage collector)
=>”new” 操作符
多语言开发
内建的对象系统
只要选择喜欢的语言使用即可 不需要学习更多的规则或API 跨语言继承,异常处理
System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
强壮、安全的执行环境
自动内存管理
所有不再使用的对象会被系统自动注销 统一的错误处理类 没有不安全的调用和未初始化的变量
异常处理
类型安全
简化的安装和部署
不再需要注册表
Side-by-side 执行方式 映射为本地二进制码
Ngen.exe
统一的编程模式
不论什么语言和编程模式都是用一样的API
丰富的类库
Windows Forms Web应用平台ASP.NET
丰富的交互式网页 强有力的 Web Services
.NET平台
开发人员发展历程 操作系统 应用服务实现 开发工具支持
Visual Studio .NET
.NET Enterprise Servers .NET Building Block Services
多语言的一个世界
超过20种语言
同一个开发环境
C++ Visual Basic
同一套体系框架 同一样调试方式
C# J# Delphi Mondrian Component Pascal Pascal Python Haskell Ada Perl RPG JScript Scheme Oberon Smalltalk Java Eiffel Oz Mercury Cobol Fortran C Objective Caml ML APL
简单快速,屏蔽底层细节 跨语言和应用类型
统一的编程模式 (Unify programming models)
使用公认的互联网国际标准
Rich XML, standard protocols, stateless
For components, versioning, availability
Stream-level access to data sources Fastest way to get data out of SQL
System.Xml
非常好的标准支持
100% 兼容 W3C 标准 XSLT 1.0, XPath 1.0, XSD 1.0, DOM2.0
为原始数据解析和XSLT提供了非常好的吞吐能力
元数据里包含了些什么?
对部署单元程序集 (assembly) 的描述
标识:名字、版本、地域/文化、公钥标记 输出哪些类型 它依赖于哪些其他的程序集 需要运行的安全许可
对类型的描述
名字、可视性、基类、实现的接口 成员 (方法、域、属性、事件、嵌套类型)
用户自定义的 编译器定义的 Framework定义的
先进的多语言互用功能
目前支持20多种语言
VB, C++, C#, Java, JScript, Perl, COBOL
调试器等可以跨语言工作
功能强大的工具
更简单的部署
不需要在registry里注册
代码完全可以自我描述 只要把应用程序xcopy到目录下即可执行 安装一个应用程序不会影响别的应用程序
.NET Framework
快速开发工具
强大, 相对复杂
代码嵌套在 HTML页面中
VB Forms
MFC/ATL
ASP
Windows API
统一的编程API
.NET Framework 类库
System.Web
Services Description Discovery Protocols Caching Configuration UI HtmlControls WebControls Security SessionState
ADO.NET 和 XML
基本类库
公共语言运行时
操作系统
The .NET的演变历史
应用
代码和数据结 构
在COM之前, 应用程序是完全分 开的实体,它们之间只有很少或 没有任何集成关系
The .NET的演变历史
COM提供了组件集成的方法 . 但是, 每个组件必须提供细 节复杂的管道接口,对象不 能直接交互.
Framework下的开发
VB.NET
Dim form1 As New Form() form1.Text = "Main Window" form1.Show() C#.NET Form form1 = new Form(); form1.Text = "Main Window"; form1.Show();
Windows Forms
丰富的 Windows 应用程序
把VB Forms, MFC and WFC的精华集成在一起
提供了先进的功能
可视化的 Forms 继承 先进的图形支持 – GDI+ 很容易地访问 Win32 ® API
System.Windows.Forms
Design ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
OleDb Common SqlClient SQLTypes XSLT XPath
System.Xml
Serialization
微软.NET平台 与 开发体系结构
日程
.NET开发的底层框架 应用程序体系结构 应用程序开发实践
什么是.NET Framework?
是一组技术
为互联网和分布式应用程序开发提供一种新的开发平台 简化应用程序开发和部署 为Web Service提供一种标准平台 改善系统和应用程序之间的交互性和集成性 使应用程序对任何设备都能够进行访问
XML的支持很深地扎根在.NET Framework里
Data, Remoting, Serialization, documentation, config
.NET Framework的组成部分
公共语言运行时(Common Language Runtime) (CLR)
适用所有语言的公共类型系统(Common Type System ) 多语言互用(可以相互继承和调用) 丰富的运行时环境 基本类库(Base class libraries), ADO.NET 和XML
无缝集成
把.NET classes当作 COM objects来用
不需要额外的开发工作
COM objects可以被引进(import)
No ref counting or COM API needed
Transactions, Object pooling, etc… No marshaling(列集) for common cases
提供通用类型系统(common type system)
公共语言规范(Common Language Specification)
提供访问系统资源的功能
基类库支持
线程支持
COM编组 异常处理器 调试引擎
类型检查器 安全引擎
IL到本机代码 的翻译器
代码管理器
垃圾收集器
类加载器
编译和执行
更加容易地部署,运行和维护
对Web 标准的支持
.NET Framework支持
HTML, XML, SOAP, XSLT, XPath
现有的远程协议– DCOM, CORBA, RMI – 都不能很好地使用于互联 网 使用松耦合的 RPC 机制 – SOAP
Web services使互联网上不同设备能够交互
公共语言运行时
元数据 (Metadata)
简化编程模式的关键 自动生成
与中间代码一起存在可执行文件里 (.dll 或 .exe) 使用现有的 PE/COFF 格式
遵从现有的扩展机制
用二进制的方式存储
可以与XML Schema互相转化 可以与COM type libraries互相转化
.Net类可以使用COM+ 服务
方便地调用系统函数
CLR简化了开发过程
完全消除了COM的繁琐底层细节 再也不用…
Registration GUIDs .IDL files HRESULTs IUnknown AddRef/Release CoCreateInstance
源代码 语言编译
中间代码
Assembly
元数据
本机代码 Native Code
即时编译
(JIT Compiler)
在安装或函数/方法第一 次被调用时
执行
公共语言运行时
程序集 (Assemblies)
example.DLL Metadata(元数据) IL Managed code
Resources
传统的开发
Windows API
HWND hwndMain = CreateWindowEx( 0, "MainWinClass", "Main Window", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain);
没有负面影响的安装(Zero-impact install)
不同版本的应用可以同时运行
各种版本的应用程序可以同时存在
数据 and XML
ADO.NET
非连接数据集(DataSet) – 内存中的关系型表
Fill from managed providers or XML
连接托管提供器(Managed Providers)
其他特性
公共语言运行时
清单(manifest)
指向元数据中对导出类型的描述 Classes Base classes Implemented interfaces Data members Methods
对程序集的描述
Name Version Culture Other assemblies Security Permissions Exported Types
The .NET的演变历史
使用 .NET Framework的公共 语言运行时(CLR), 组件都建 立在一个共同的底层基础上. 不 再需要管道的繁琐细节,对象 可以直接交互。
公共语言运行时(Common Language Runtime)
管理运行代码
确认类型的安全性 提供垃圾收集,错误处理 对半信任代码的访问安全控制 数值类型 (integer, float, user defined, etc) 引用类型(Objects, Interfaces) 提供跨语言的支持,包括统一的异常处理和跨语言调试 包括Windows API和COM InterOP服务
.NET应用程序类型
Windows Form应用程序 Windows Form控件 Windows Service应用程序 ASP.NET Web应用程序 Web Service
.Net Framework的设计基于如下目标
简化开发 (Simplify development)
.NET Framework
Operating Systems
结构
编程语言
统一的API(类库)支持
公共语言运行时
操作系统
.NET Framework 体系结构
VB C++ C#ห้องสมุดไป่ตู้J# …
公共语言规范(CLS)
ASP.NET Web Form , Web 服务 Mobile Internet Toolkit Visual Studio .NET Windows Form
=>自我描述的组件,直接xcopy =>层次化的名字空间(namespace) =>原代码直接到元数据(METADATA) =>结构化的异常处理 =>root object class =>垃圾回收 (garbage collector)
=>”new” 操作符
多语言开发
内建的对象系统
只要选择喜欢的语言使用即可 不需要学习更多的规则或API 跨语言继承,异常处理
System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
强壮、安全的执行环境
自动内存管理
所有不再使用的对象会被系统自动注销 统一的错误处理类 没有不安全的调用和未初始化的变量
异常处理
类型安全
简化的安装和部署
不再需要注册表
Side-by-side 执行方式 映射为本地二进制码
Ngen.exe
统一的编程模式
不论什么语言和编程模式都是用一样的API
丰富的类库
Windows Forms Web应用平台ASP.NET
丰富的交互式网页 强有力的 Web Services
.NET平台
开发人员发展历程 操作系统 应用服务实现 开发工具支持
Visual Studio .NET
.NET Enterprise Servers .NET Building Block Services
多语言的一个世界
超过20种语言
同一个开发环境
C++ Visual Basic
同一套体系框架 同一样调试方式
C# J# Delphi Mondrian Component Pascal Pascal Python Haskell Ada Perl RPG JScript Scheme Oberon Smalltalk Java Eiffel Oz Mercury Cobol Fortran C Objective Caml ML APL
简单快速,屏蔽底层细节 跨语言和应用类型
统一的编程模式 (Unify programming models)
使用公认的互联网国际标准
Rich XML, standard protocols, stateless
For components, versioning, availability
Stream-level access to data sources Fastest way to get data out of SQL
System.Xml
非常好的标准支持
100% 兼容 W3C 标准 XSLT 1.0, XPath 1.0, XSD 1.0, DOM2.0
为原始数据解析和XSLT提供了非常好的吞吐能力
元数据里包含了些什么?
对部署单元程序集 (assembly) 的描述
标识:名字、版本、地域/文化、公钥标记 输出哪些类型 它依赖于哪些其他的程序集 需要运行的安全许可
对类型的描述
名字、可视性、基类、实现的接口 成员 (方法、域、属性、事件、嵌套类型)
用户自定义的 编译器定义的 Framework定义的
先进的多语言互用功能
目前支持20多种语言
VB, C++, C#, Java, JScript, Perl, COBOL
调试器等可以跨语言工作
功能强大的工具
更简单的部署
不需要在registry里注册
代码完全可以自我描述 只要把应用程序xcopy到目录下即可执行 安装一个应用程序不会影响别的应用程序
.NET Framework
快速开发工具
强大, 相对复杂
代码嵌套在 HTML页面中
VB Forms
MFC/ATL
ASP
Windows API
统一的编程API
.NET Framework 类库
System.Web
Services Description Discovery Protocols Caching Configuration UI HtmlControls WebControls Security SessionState
ADO.NET 和 XML
基本类库
公共语言运行时
操作系统
The .NET的演变历史
应用
代码和数据结 构
在COM之前, 应用程序是完全分 开的实体,它们之间只有很少或 没有任何集成关系
The .NET的演变历史
COM提供了组件集成的方法 . 但是, 每个组件必须提供细 节复杂的管道接口,对象不 能直接交互.
Framework下的开发
VB.NET
Dim form1 As New Form() form1.Text = "Main Window" form1.Show() C#.NET Form form1 = new Form(); form1.Text = "Main Window"; form1.Show();
Windows Forms
丰富的 Windows 应用程序
把VB Forms, MFC and WFC的精华集成在一起
提供了先进的功能
可视化的 Forms 继承 先进的图形支持 – GDI+ 很容易地访问 Win32 ® API
System.Windows.Forms
Design ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
OleDb Common SqlClient SQLTypes XSLT XPath
System.Xml
Serialization
微软.NET平台 与 开发体系结构
日程
.NET开发的底层框架 应用程序体系结构 应用程序开发实践
什么是.NET Framework?
是一组技术
为互联网和分布式应用程序开发提供一种新的开发平台 简化应用程序开发和部署 为Web Service提供一种标准平台 改善系统和应用程序之间的交互性和集成性 使应用程序对任何设备都能够进行访问
XML的支持很深地扎根在.NET Framework里
Data, Remoting, Serialization, documentation, config
.NET Framework的组成部分
公共语言运行时(Common Language Runtime) (CLR)
适用所有语言的公共类型系统(Common Type System ) 多语言互用(可以相互继承和调用) 丰富的运行时环境 基本类库(Base class libraries), ADO.NET 和XML
无缝集成
把.NET classes当作 COM objects来用
不需要额外的开发工作
COM objects可以被引进(import)
No ref counting or COM API needed
Transactions, Object pooling, etc… No marshaling(列集) for common cases
提供通用类型系统(common type system)
公共语言规范(Common Language Specification)
提供访问系统资源的功能
基类库支持
线程支持
COM编组 异常处理器 调试引擎
类型检查器 安全引擎
IL到本机代码 的翻译器
代码管理器
垃圾收集器
类加载器
编译和执行
更加容易地部署,运行和维护
对Web 标准的支持
.NET Framework支持
HTML, XML, SOAP, XSLT, XPath
现有的远程协议– DCOM, CORBA, RMI – 都不能很好地使用于互联 网 使用松耦合的 RPC 机制 – SOAP
Web services使互联网上不同设备能够交互
公共语言运行时
元数据 (Metadata)
简化编程模式的关键 自动生成
与中间代码一起存在可执行文件里 (.dll 或 .exe) 使用现有的 PE/COFF 格式
遵从现有的扩展机制
用二进制的方式存储
可以与XML Schema互相转化 可以与COM type libraries互相转化
.Net类可以使用COM+ 服务
方便地调用系统函数
CLR简化了开发过程
完全消除了COM的繁琐底层细节 再也不用…
Registration GUIDs .IDL files HRESULTs IUnknown AddRef/Release CoCreateInstance