关闭

.NET大局观笔记

1091人阅读 评论(0) 收藏 举报

1章 .NET概观

 

*Web Service

 

Web Service的接口使用WSDLWeb Service Description Language)定义。WSDL使用XML来定义。WSDL功能上类似与COMCORBA使用的IDLInterface Definition Language)。WSDL没有指定任何协议,一般用SOAPSimple Object Access Protocal),SOAP本身也用XML来定义,并依赖与XML定义传输格式。SOAP大多在HTTP上发送,但不是非如此不可,也可用消息队列(MSMQ)或Email或其他协议来调用Web Services的各项操作。

* UDDI

 

让客户发现Web ServicesUDDIUniversal DescriptionDiscovery and Integration)统一描述,发现和集成,找到Web Services接口。使用SOAP就可以读写UDDI数据库内容。

*WSDLSOAPUDDIWeb Services的核心技术。

 

*.NET Framework

 

.NET Framework基础上的程序都依赖于一个CLRCommon language runtime)的基础库。CLR提供了一套通用的数据类型和其他服务。.NET Framework包括CLR.Net Framework类库(ASP.NET, ADO.NET, Windows Forms, Enterprise Services等)。

*受控代码

 

.NET Framework建立的程序成为受控代码(managed code),受控对象,不同的语言编写的类可以继承,只要他们都是作为受控代码运行在CLR之上。

*COM

 

COM连接Windows DNA世界所有组件的胶合剂,CLR是新一代的COM,内建大量“用以和COMBased应用程序互动”的支持能力。CLR为接口和其他数据型别定义了一个通用规范,COM的胶合已经不是必须品。但是可能新程序(DBMS)等不用CLR开发,这时还是需要COM来展露外部服务和定义内部接口。COM并未消亡。

除非要和现有代码互动,否则COM.NET Framework中没有用场。

 

*CLR

 

标准数据类型

Garbage Collection

Metadata(元数据)。型别信息存于编译后的代码里,与COM不通,不再有独立的型别库和IDLInterfaceclass直接使用具体的编程语言来定义,而后被CLR转换为元数据标准格式。

一个通用的体制:Assemblies组织编译后的代码。Dllexe,都内含classmetadata

*Managed code

 

Managed code总是先被编译为MSILMicrosoft Intermediate Language),MSIL是与CPU无关的指令集。装配件(Assemblies)中每个dllexe包含的都是MSIL代码。应用程序运行时,MSIL会在运行前转换为原生码(native code)。每一个Method通常在第一次调用时才被即时编译。(JIT compliedJITjust-in-time compilation. 不同语言写的应用程序运行速度不会有太大差别。

 

*C

 

允许运算符重载和“直接方位特定内存地址”的代码(unsafe code

*Managed C++

 

提供C++访问CLR特性的能力,C++的扩充件。扩充了一些关键字。

*System空间   P23

 

包含所有namespaces和核心数据类型。

System.Web   ASP.NET

System.Data   ADO.NET

System.Windows.Forms    Windows GUI

System.EnterpriseServices  COM+提供的服务。允许managed code访问COM+服务。

System.XML   生出和处理XML定义出来的数据。包括XSDXPath等支持。

System空间的各种包都是指CLR中的程序库,使用CLR之上的CLR-based语言(C#,VB.NET)都使用这个公用的库,并且把自己特殊的数据类型和语言特性映射到CLRCLICommon Language Infrastructure)的基本数据类型和MSIL的中间指令上。

*Dataset

 

一个Dataset可以持有来自不同DBMS的多个查询表,是数据的“in-memory Cache

XML文档可以直接读入Dataset表中。DBMS表通过.NET data provider进入Dataset

*ASP.NET   P27

 

开发由HTTPHTML访问的浏览器应用程序  app.aspx

开发可经由SOAP访问的Web Services应用程序  app.asmx

axmx中的methods开放为Web Services,只要在定义前插入[WebMethod]

*.NET My service :例如微软的Passport Service  P31

*.NET Enterprise servers   P34

BizTalk Server2000: 同一范围不通系统的不同应用程序之间高效交换信息。Messaging EngineXML-based文档定义和传输),Orchestration Engine(图形界面)

Application Server2000:管理工具,降低“在复制服务器上部署和管理Windows DNA应用程序”的成本和复杂度。

Commerce Server2000:开发的电子商务应用程序。

Host Integration server2000:和Unix通信。HIS2000

SQL Server2000

 

Exchange Server2000:核心消息处理,E-mail和相关应用。

Mobile Information Server2001:无线应用设备程序开发平台。

Internet Security and Acceleration Server2000:ISA2000,防火墙和代理服务

这些服务器使用Windows DNA技术,COM实现,纳入只是为了商业和战略的目的。

*delegate  P129

 

delegate是一个包含函数引用的对象,实现了C/C++中函数指针的功能。

 

//声明委托类型SDelegate,参数为string,返回值为void

 

delegate void SDelegate(string s);

 

//用函数WriteString产生一个委托SDelegate类型的对象del,del包含一个WriteString方法的引用。

 

SDelegate del = new SDelegate(WriteString);

 

*C++是VS.NET中唯一能够直接编译成原生代码的语言,其他所有CLR-based language(include Managed C++)都是被编译为MSIL。  P164

 

5章 .NET Framework类库

 

*.NET Framework类库  P174

 

System.Collections    泛化type如stacks和queues

 

System.ComponentModel 为构件软件组件提供了基础,包括Component作为Windows Forms使用的组件的基础。

 

System.Configuration  支持配置装配件和创建安装器。

 

System.Data 包含的types用以构成ADO.NET

 

System.Diagnostics  支持tracing,assertion等

 

System.DirectoryService 提供一个API用于活动目录

 

System.Drawing  支持创建文本和数种图形。GDI+

 

System.EnterpriseServices 包含的types用以访问COM+服务。包括分布式事务支持等。与替他类库不通的是,这里包含的types提供了对现有COM+软件的包装,而不是以受控代码的方式重新实现的。

 

System.Globalization  用以创建国家化日立,转换各国代码也,格式化时间,文本等。

 

System.IO  支持文件和目录的访问。

 

System.Management 支持处理WMI(Windows Management Instrumentation,windows管理设备)数据。提供了对WMI查询语言的支持。

 

System.Messaging 提供了一套type访问MSMQ API

 

System.Net 支持对HTTP,TCP和其他协议的访问。

 

System.Reflection 访问装配件的元数据。

 

System.Resource 用于操纵资源(位图,字符串等),与国际化有关。

 

System.Runtime 提供了互操作,远程访问,序列化和其他基础性服务。

 

System.Security 提供了加密支持和其他安全服务。

 

System.ServiceProcess 开发windows service

 

System.Text  支持文本转换,并可处理正则表达式

 

System.Threading 提供了可被所有CLR-based 语言使用的标准线程服务。

 

System.Timers 支持处理规律发生的时间。

 

System.Web  实现了ASP.NET

 

System.Windows.Forms  支持构建local windows GUIs。

 

System.XML 包含了处理XML-defined数据的广泛支持。

 

*序列化  P184

 

提供两种格式器:二进制格式器和SOAP格式器(XML格式化为SOAP消息)。

 

Serializable和NonSerialized attribute标识是否该被序列化。

 

*XPath  P190

 

XPath是用于对XML文件的部分进行定址(addressing)的语言

 

XSLT是一种用于指定XML文档转换的机制,由XSLT样式表描述。可以将一个XML文档从一种模式转换为另一种。XML的居于中心的Infoset是对文档内容的抽象表示。

 

*XML APIs   P191

 

SAX :访问XML定义信息的streaming API,将XML文档按序读出,深度优先遍历文档树。SAX-Simple API for XML。非W3C。

 

DOM :整个文档表示为一个内存数据结构,允许应用程序遍历它。W3C,属于navigational API。DOM-Document Object Model。

 

*System.XML   P192

 

XmlReader class支持以streaming方式访问XML定义的信息,访问XML文档最快方式。

 

XmlWriter class能够涂写XML文档。

 

XmlDocument 一个DOM实现,常用,允许随机向前向后移动。

 

*反射  P195

 

XmlSerializer 生成标准XML,序列化不作用在pirvate成员上。产生和XSD完全兼容的XML。

 

SoapFormatter 为了.NET Remoting使用,将输出结果放到一个SOAP封套种。所有成员(包括Private)可被正确输出和传输。假定通信双方都有.NET Framework。难以被微软之外的系统理解。

 

Reflection.Emit 提供的types支持动态创建装配件。应用程序能够显示生成并执行MSIL代码。

 

*Remoting

 

.NET Framework专注于在CLR-based应用程序之间通讯,支持同步(RPC)和异步通讯(不受阻塞)。

 

远程是指不同应用域(Application domains)里对象之间的任何通讯。(可能为单机)通讯由channel负责。在应用域之间传递values,必须经过编列(marshaled)和解列(unmarshaled)  P203

 

MBV(marshal by value)将value拷贝到远程,传递的types必须标以Serializable

 

MBR(marshal by reference)必须继承子MarshalByRefObject才可以。远程产生一个包含reference的代理。

 

用户定义的types不可序列化,也没有继承MarshalByRefObject,则不能被marshaled跨越应用域边界。

 

TCP channel:缺省用binary formatter来序列化。效率较高。没有安全选项。

 

HTTP channel:缺省用SOAP格式器,可使用IIS安全选项。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10198次
    • 积分:163
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:5篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论