.NET
.NET是 Microsoft XML Web services平台。
XML Web services允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Webservices并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
.net开源
.NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-orientedarchitecture)和敏捷性的技术。对技术人员,想真正了解什么是.NET,必须先了解.NET技术出现的原因和它想解决的问题,必须先了解为什么他们需要XML,Web Services 和 SOA。技术人员一般将微软看成一个平台厂商。微软搭建技术平台,而技术人员在这个技术平台之上创建应用系统。从这个角度,.NET也可以如下来定义:.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。(更精确的说,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时CommonLanguage Runtime之上的应用程序。)如果一个应用程序跟.NETFramework无关,它就不能叫做.NET程序。比如,仅仅使用了XML并不就是.NET应用,仅仅使用SOAPSDK调用一个Web Service也不是.NET应用。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。
2014年11月13日,为了进一步扩大云计算市场,微软将不再把.NET和VisualStudio等关键软件技术局限在Windows平台,今后还将兼容Linux、MacOS X、iOS和Android。除此之外,微软还宣布将开放.NET核心服务器运行环境和框架的源代码,使得外部开发者也可以对这一软件开发平台做出贡献。[1]
公共语言运行时
CLR叫做公共语言运行时(Common Language Runtime)。它是所有.NET应用程序运行时环境,是所有.NET应用程序都使用的编程基础,它如同一个支持.NET Framework,运行一个.NET程序也必须安装。CLR也可以看作一个在执行时管理代码的代理,管理代码是CLR的基本原则,能够被管理的代码成为托管代码,反之称为非托管代码。CLR包含两个组成部分,CLS(公共语言规范)和CTS(通用类型系统)。下面我们通过理解.NET的编程技术来具体了解这两个组件的功能。
1. CTS
C#和VB.NET都是公共语言运行时的托管代码,它们的语法和数据类型各不相同。CLR是如何对这两种不同的语言进行托管的呢?通用类型系统(Common Type System)用于解决不同语言的数据类型不同的问题,如C#中的整型是int,而VB.NET中是Integer,通过CTS我们把它们两个编译成通用的类型Int32。所有的.NET语言共享这一类型系统,在它们之间实现无缝互操作。
2. CLS
编程语言的区别不仅仅在于类型,语法或者说语言规范也都有很大的区别。因此.NET通过定义公共语言规范(Common LanguageSpecification),限制了由这些不同点引发的互操作性问题。CLS是一种最低的语言的标准,制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作性所需要的完备特征。凡是遵守这个标准的语言在.NET框架下都可以实现互相调用。例如,在C#中命名是区分大小写的,而VB.NET不区分大小写,这样CLS就规定,编译后的中间代码必须除了大小写之外有其他的不同之处。
3. .NET编译技术
为了实现跨语言开发和跨平台的战略目标,.NET所有编写的应用都不是编译为本地代码,而是编译成微软中间代码MSIL(Microsoft Intermediate Language)。它将由JIT(Just In Time)编译器转换成机器代码。C#和VB.NET代码通过它们各自的编译器编译成MSIL,MSIL遵守通用的语法,CPU不需要了解它,再通过JIT编译器编译成相应的平台专用代码,这里所说的平台是指我们的操作系统。这种编译方式实现了代码托管,还能够提高程序的运行效率。
客户端应用
组成.net软件技术的组件,组件之一,“智能”客户端应用软件和操作系统,包括PC、PA、手机或其他移动设备通过互联网、借助Web Services技术,用户能够在任何时间、任何地点都可以得到需要的信息和服务。例如:可以在手机上阅读新闻、定购机票、浏览在线相册等等。CRM系统,应用了.NET的解决方案后所有的业务人员便可以通过手机或PDA直接访问客户信息了[3] 。
WebServices
Web Services是智能终端软件的基础,微软为用户创建智能终端提供了一整套丰富的解决方案,包括:
.NET Framework-智能终端实现跨平台(设备无关性)的
Visual Studio .NET – 建立并集成Web Services和应用程序的快速开发工具
Microsoft Windows Server 2003 – 新一代的企业服务器,用于提供建立和发布各种解决方案
Microsoft Office Professional Edition 2003 – 内建的工具集也能帮助开发智能终端
Web Services是.NET的核心技术。那什么是Web Services呢?正如Web是新一代的用户与应用交互的途径,XML是新一代的程序之间通讯的途径一样,WebServices是新一代的计算机与计算机之间一种通用的数据传输格式,可让不同运算系统更容易进行数据交换。
Web Services有以下几点特性:
(1)Web services允许应用之间共享数据;
(2)Web services分散了代码单元;基于XML这种internet数据交换的通用语言,实现了跨平台、跨操作系统、跨语言。
那微软的ASP和Web services究竟有什么不同呢,ASP仍然是一个集中式计算模型的产物,只不过是披着一层互联网的外衣。但WebServices却是一个迥然不同的精灵,它秉承“软件就是服务”的真言,同时顺应分布式计算模式的潮流。而它的存在形式又与以往软件不同。这种组件模式,小巧、单一,对于开发人员来讲,开发成本较低。
在这里指出Web services不是微软发明的,同样也不属于微软专有。Web services是一个开放的标准,和HTTP、 XML、SOAP一样。他们是一个工业标准而非微软标准,WS-I是为了促进WebServices互通性的联盟组织,最初是由IBM和微软所发起,其它的成员包括BEA System、惠普计算机(HP)、甲骨文(Oracle)、英特尔(Intel)和SUN计算机(Sun Microsystem)。如今网络上存在的大多Web services其实没有使用.NET构架,Web services具有互操作属性,你同样可以使用Windows开发客户端来调用运行于Linux上面的Web services的方法。
接口规范
先前提到的接口规范问题,在.NET中,Web service接口通常使用WebServices Description Language (WSDL)描述。WSDL使用XML来定义这种接口操作标准及输入输出参数,看起来很像COM和CORBA的接口定义语言(IDLS)Interface Definition Languages。接口定义后就必须使用一些协议调用接口,如SOAP协议,SOAP源于一种叫做XML RPC(XML远程进程调用remoteprocedure calling)的协议,而Java则根据XML-RPC发展了自己的JAX-RPC协议用来调用Web Services。发布和访问WebServices的接口就用到UDDI了,这里我们只需要知道WSDL使用XML定义Web Services接口,通过SOAP访问Web Services,在internet上寻找Web Services使用UDDI就行了。
服务器架构——Microsoft Windows Server System
Microsoft提供了最佳的服务器构架—Microsoft WindowsServer System—便于发布、配置、管理、编排Web Services。为了满足分布式计算的需要微软构造了一系列的服务器系统,这些内建安全技术的系统全部支持XML,这样加速了系统、应用程序以及同样使用Web Services的伙伴应用之间的集成。
CLR与 CIL
.NET的初级组成是CIL和CLR。CIL是一套运作环境说明,包括一般系统、基础类库和与机器无关的中间代码,全称为通用中间语言(CIL)。CLR则是确认操作密码符合CIL的平台。在CIL执行前,CLR必须将指令及时编译转换成原始机械码。
wsdl发展历史
l Web服务描述语言WSDL(Web ServicesDescription Language)是一个建议性标准。用于描述Webb服务的技术调用语法。
l 1999年HP(惠普)公司是第一个引入Web服务概念,eSpeak实现了“电子服务”平台。
l 2000年6月Microsoft提出了“Web服务”术语,把Web服务作为.NET计划重要组件。
l 在Microsoft的SDL(Service Description Language和SCL(SOAP ContractLanguage)和IBM的NASSL(Network Accessible Service Specification Language)这两项技术的结合,形成了WSDL的基础。SCL采用XML来描述应用程序所交换的消息,NASSL描述服务接口和实现细节。
l 2000年9月25日IBM、Microsoft和Ariba提出WSDL1.0。2001年3月15日,他们提交的WSDL1.1成为W3C的Note。WSDL1.1规范网址是http://www.w3.org/TR/wsdl。2002年7月9日提出WSDL1.2,2003年11月10日提出WSDL2.0。
WSDL描述web服务的三个基本属性:
l 服务做些什么? 服务所提供的操作(方法);
l 如何访问服务?数据格式以及访问服务操作的必要协议;
l 服务位于何处?由特定协议决定的网络地址,如URL
Web服务描述语言(Web Services DescriptionLanguage WSDL)是Web Services技术重要组成部分;WSDL描述了分布在Internet环境中服务操作的抽象定义接口和服务的具体实现端口,实现远程计算资源共享;WSDL通常是协议定义的,协议描述缺乏准确性和严格性,需要一种形式化的表示和描述方法。
WSDL定义:
WSDL是XML描述的网络服务,基于消息机制、包含面向文本或面向过程信息的操作集合。操作及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的,这样就可以重用这些抽象定义。消息是需要交换数据的抽象描述;端点类型是操作的抽象集合。针对一个特定端点类型的具体协议和数据格式规范构成一个可重用的绑定。
一个端点定义成网络地址和可重用的绑定的联接,端点的集合定义为服务。
§ WSDL是一种XML应用,它将Web Services描述定义为一组服务访问端点,客户端可以通过这些服务访问端点对包含面向文档信息或面向过程调用的服务进行访问。
§ WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上,以最终定义具体部署的服务访问端点。
§ 在具体使用中,可以使用任意的消息格式和网络协议。
§ 在WSDL规范中,定义了如何使用SOAP消息格式、HTTP GET/POST消息格式以及MIME格式来完成Web Services交互的规范。
WSDL特点
§ 实现 Web 服务体系结构的松散耦合;
§ 无论是请求者还是提供者可以各自独立地使用平台、编程语言或分布式对象模型。