当前位置:
文档之家› (01) 微软.NET平台与开发体系结构
(01) 微软.NET平台与开发体系结构
公共语言运行时
元数据 (Metadata)
简化编程模式的关键 自动生成
与中间代码一起存在可执行文件里 (.dll 或 .exe) 使用现有的 PE/COFF 格式
遵从现有的扩展机制
用二进制的方式存储
可以与XML Schema互相转化 可以与COM type libraries互相转化
System.Windows.Forms
Design ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
OleDb Common SqlClient SQLTypes XSLT XPath
System.Xml
Serialization
Windows Forms
丰富的 Windows 应用程序
把VB Forms, MFC and WFC的精华集成在一起
提供了先进的功能
可视化的 Forms 继承 先进的图形支持 – GDI+ 很容易地访问 Win32 ® API
元数据里包含了些什么?
对部署单元程序集 (assembly) 的描述
标识:名字、版本、地域/文化、公钥标记 输出哪些类型 它依赖于哪些其他的程序集 需要运行的安全许可
对类型的描述
名字、可视性、基类、实现的接口 成员 (方法、域、属性、事件、嵌套类型)
用户自定义的 编译器定义的 Framework定义的
更加容易地部署,运行和维护
对Web 标准的支持
.NET Framework支持
HTML, XML, SOAP, XSLT, XPath
现有的远程协议– DCOM, CORBA, RMI – 都不能很好地使用于互联 网 使用松耦合的 RPC 机制 – SOAP
Web services使互联网上不同设备能够交互
其他特性
公共语言运行时
清单(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服务
编译
源代码 语言编译
中间代码
Assembly
元数据
本机代码 Native Code
即时编译
(JIT Compiler)
在安装或函数/方法第一 次被调用时
执行
公共语言运行时
程序集 (Assemblies)
example.DLL Metadata(元数据) IL Managed code
Resources
多语言的一个世界
超过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
微软.NET平台 与 开发体系结构
日程
.NET开发的底层框架 应用程序体系结构 应用程序开发实践
什么是.NET Framework?
是一组技术
为互联网和分布式应用程序开发提供一种新的开发平台 简化应用程序开发和部署 为Web Service提供一种标准平台 改善系统和应用程序之间的交互性和集成性 使应用程序对任何设备都能够进行访问
.NET应用程序类型
Windows Form应用程序 Windows Form控件 Windows Service应用程序 Web应用程序 Web Service
.Net Framework的设计基于如下目标
简化开发 (Simplify development)
丰富的类库
Windows Forms Web应用平台
丰富的交互式网页 强有力的 Web Services
.NET平台
开发人员发展历程 操作系统 应用服务实现 开发工具支持
Visual Studio .NET
.NET Enterprise Servers .NET Building Block Services
传统的开发
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);
简单快速,屏蔽底层细节 跨语言和应用类型
统一的编程模式 (Unify programming models)
使用公认的互联网国际标准
Rich XML, standard protocols, stateless
For components, versioning, availability
.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
XML的支持很深地扎根在.NET Framework里
Data, Remoting, Serialization, documentation, config
.NET Framework的组成部分
公共语言运行时(Common Language Runtime) (CLR)
适用所有语言的公共类型系统(Common Type System ) 多语言互用(可以相互继承和调用) 丰富的运行时环境 基本类库(Base class libraries), 和XML
无缝集成
把.NET classes当作 COM objects来用
不需要额外的开发工作
COM objects可以被引进(import)
No ref counting or COM API needed
Transactions, Object pooling, etc… No marshaling(列集) for common cases
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提供了非常好的吞吐能力
先进的多语言互用功能
目前支持20多种语言
VB, C++, C#, Java, JScript, Perl, COBOL
调试器等可以跨语言工作
功能强大的工具
更简单的部署
不需要在registry里注册
代码完全可以自我描述 只要把应用程序xcopy到目录下即可执行 安装一个应用程序不会影响别的应用程序
=>自我描述的组件,直接xcopy =>层次化的名字空间(namespace) =>原代码直接到元数据(METADATA) =>结构化的异常处理 =>root object class =>垃圾回收 (garbage collector)
=>”new” 操作符
多语言开发
内建的对象系统