Microsoft.Net与Web Service

news/2024/7/5 18:24:36

Microsoft.NetWeb Service

Microsoft.NetMicrosoft的新一代Internet全面解决方案,开发者利用.Net平台、产品和服务,可以轻松地建设真正分布式的、协作的新一代的Web服务,让用户在任何设备、任何时间和任何地点,轻松地获取信息。

1.Net是什么?

Microsoft .Net的目标是让分布在不同区域的计算机、设备一起工作,为用户提供各种各样的服务。人们可以控制在什么时候、获取什么信息以及怎样获取信息,而不必像现在这样,用户在无数个信息孤岛中找来找去,寻找着自己需要的信息。例如,我想在居住的小区内找一家烧烤店,并且晚上7点还有空位; 又比如,我有一笔业务要做,我要知道哪家供货商库存有该货物,如果有几家可以提供该商品,我还要知道谁能给我最好的价格以及谁能最先将货送到。类似这样的服务在现在的Internet上并不存在,因为没有一个标准将这些分属于不同单位的信息集成起来。Microsoft .Net将彻底改变现在Internet的工作方式,推动下一代Internet的发展。XMLSOAP是实现上述伟大理想的核心技术。

简单地说,.Net主要由两大部分组成:

l          .Net平台 包括.Net基础框架、工具和核心服务等;

l          .Net产品和服务 包括Windows .NetMSN.NetOffice.NetVisual Studio.Net以及bCentral for .Net

本文主要介绍.Net基础框架以及 .Net包含的重要理念——Web Services  

2Web Services架构

Web Service是由应用程序完成的服务,通过Internet标准,可以和其他Web Service集成,它是一个URL服务资源,客户端可以通过编程方式请求得到它返回的信息。Web    Services的一个重要特点就是客户端不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型(DCOM/CORBA)完全不同。

.Net系统之间的通信采用通行的Web协议和数据格式,例如HTTPXML,任何支持Web标准的系统都能支持Web ServicesXML是定义一套可扩展的、标准化的语言的最好选择,它可以表示命令和类型数据定义。SOAP(简单对象访问协议)则是一套用XML表示数据和命令的国际标准。因此,在.Net中,选用SOAP定义通信消息格式应是很好的选择。

Web Services 定义了明确的接口,在.Net中被称为约定(contracts),它描述了Web Services提供的服务,客户端应用程序就是根据约定知道Web Services是否包含所需的服务以及调用方法。开发人员可以通过组合调用远程服务、本地服务和自己编写代码来实现一个Web应用。图1显示了怎样将Web Services连接在一起,建立分布式的Web应用。

3.Net框架

我们知道,.Net的主要目标就是在Internet的站点之间通过分布式的协作,为用户提供更加完美的服务。但在目前的技术条件下,实现这样的应用难度非常大,Microsoft为此开发的.Net框架、核心基础构件服务以及系列开发工具,将使开发人员可以很容易地搭建这样的应用(包括开发Web应用和Web 服务)。.Net框架是MicrosoftDNA之后最新提出的新一代Internet软件开发模型。图2显示了Microsoft .Net框架的组成。

从图中可以看出,Microsoft.Net框架的核心是公共语言运行环境(Common Language Runtime)引擎和服务框架(Servies Frameworks),它们建立在操作系统层之上。公共语言运行环境(Runtime)引擎的功能是管理代码的运行,代码可以采用任何现代编程语言编写,并以一种中间语言(IL)代码的形式出现。另外,运行环境引擎还提供了许多服务功能以简化代码的开发和应用配置,同时也改善了应用程序的可靠性。.Net还包括一组类库,开发人员可以在任何一种编程语言环境中使用。最上一层是各种应用程序开发模型,并特别针对开发Web站点和Web服务提供了更高一级的组件和服务。

1)公共语言运行环境(Runtime)

.Net框架的核心是公共语言运行环境(Runtime)引擎。很多程序员对Runtime这个概念并不陌生,我们知道C Runtime库、标准模板库、MFC库、活动模板库以及VB运行库等,目的都是为应用程序提供公共服务,以节省编程时间和提高程序的可靠性。Runtime引擎和库同样如此,不同的是,Runtime引擎更像Java虚拟机,因为它管理的代码是与机器无关的中间代码,在Runtime加载后才编译执行。专门为Runtime生成的代码在.Net中称为可管理代码(Managed Code)。简单地说,可管理代码意味着在执行代码和Runtime之间定义了一个接口,诸如创建对象、方法调用等任务都可以交给Runtime完成,它同时还向执行代码提供一些附加的服务功能。另外,Runtime还具有平台无关、语言交叉集成、自描述组件、简单配置、版本控制和集成安全服务等特性。

l          平台无关            在图2中,最底层是操作系统但并没有特指是Windows,因此它可以是任何一种操作系统,只要开发出了可在该操作系统下运行的Runtime,就可以在上面执行.Net应用。一个可管理的.Net应用(完全是由可管理代码组成),只要编写一次,就能够在任何支持.Net 的平台上执行。Microsoft.Net的平台无关性与Java完全一样。

l          语言集成            过去,我们可以用不同的编程语言实现对COM的互操作,现在,.Net实现了语言的相互集成。例如,用C++建立一个类,而其基类是VB实现的类,则.Net可以实现这一目标,因为它定义并提供了一个对所有.Net语言都通用的公共类型系统。

l          公共类型系统    语言集成是在公共类型系统的基础上实现的,公共类型系统能表示绝大多数现代编程语言的语法。通过定义一组标准的类型和规则集,可建立新的类型,Runtime知道怎样建立和执行这些类型(类)。编译器和解释器使用Runtime提供的服务来定义类型、管理对象和进行方法调用,而以前是使用工具或某种语言特定的方法来完成同样的事情。

l          自描述组件                 自描述组件可以大大简化系统的开发、配置,并且改进系统的可靠性。由Runtime提供的许多服务都需要元数据(metadata)的驱动,元数据是执行代码的附加信息,由于所有的数据和代码都放在一个文件中,因此,这个执行文件在.Net中称作自描述组件。自描述组件最主要的优点是使用这个组件时不再需要其他文件。

l          汇编(assembly   .Net框架再次提出了汇编的概念。这里的汇编与DOS下宏汇编的概念稍有不同,在这里,一个汇编是资源、类型(类)以及与资源和类型相关的元数据的组合,它们可以被装配成一个单元(Unit)。元数据称作汇编清单,它包括一些信息,例如对外可见的类型(类)以及资源的列表信息。一个汇编可以专属于某个应用,也可由多个应用共享。另外,一个汇编的多个版本也可以同时放在一台机器上。]

l          .Net 安全              Runtime 提供了系统的安全服务,以保证未授权用户不能访问机器上的资源,并且代码也不能完成未授权的活动,这将大大改善系统的安全性和可靠性。由于用Runtime加载代码、建立对象并实现方法调用,因此,当可管理代码被加载和执行时,Runtime可以进行安全检查和执行安全策略。.Net框架提供了两种安全方案:代码访问安全和基于角色的安全。

l          中间语言和JIT编译器     .Net中,编译器产生的可管理代码并不是x86机器码或其他机器码,而是Microsoft中间语言(MSIL)代码。MSIL比大多数机器语言的层次高,它懂得对象类型,有建立和初始化对象、在对象上调用虚拟方法以及直接操纵数组元素等指令,它甚至有提交和捕捉例外进行错误处理的指令。MSIL指令不能在CPU上直接执行,因此,Runtime引擎必须首先编译可管理的MSIL指令,使其成为本地CPU指令。

2 Win Forms应用模型

在图2中可以看到,在服务框架的上方有两种应用模型:Win Forms应用模型和Web应用模型。虽然.Net框架的主要目标是开发Web服务和Web应用,但它也可以用来开发传统的Windows应用,同时这些应用也可以使用Web Services

在写Windows客户端应用程序时采用Win Forms应用模型,可以调用Windows丰富的界面功能,包括现存的ActiveX控件和一些Windows 2000新功能。不管是选择传统的Windows方式还是新的Web方式,Win Forms编程模型和设计支持都是非常直观的,与现在的Windows窗体方式很相似。Win Forms同样也利用了.Net框架的Runtime引擎,这样可以减少Windows客户端应用程序的开发工作量。.Net框架的安全模型保证了在客户端机器上能够安全地执行应用程序和组件。

3 Web 应用模型

Microsoft .Net框架下的Web应用程序模型称作ASP+。在这个模型中,一个Web应用是从一些基URL引伸而来的一组URL,它涵盖了在浏览器中产生显示页面的Web应用和Web ServicesASP+是从ASP发展而来。ASP+充分利用了公共语言运行环境(Runtime)和服务框架(Services Framework),为Web应用提供可靠的、坚固的和可伸缩的运行环境。另外,系统提供的服务使应用的开发、配置也变得很简单。ASP+的核心概念是HTTP      Runtime、模块管道和请求处理器。HTTP Runtime是基于底层结构建立的高性能HTTP处理运行环境;模块管道和请求处理器则增强了系统的灵活性和可扩展性。另外,ASP+还对ASP中的三种Web应用状态管理功能进行了增强,并提供了缓存服务。在ASP+编程模型之上,还有以下两种更高级的编程模型:

l          ASP+ Web Forms              Web Forms的开发风格类似VB窗体的快速应用开发。Web Forms支持传统的ASP语法:混合HTML内容和脚本代码,但它也提供了一个结构化的方法,可以将应用代码和用户界面内容分离。新引入的Web Forms控件提供了一个机制,即可以将公共用户界面内容打包。这样,我们可以使用类似VB的工具,以所见即所得的方式完成Web页面布局开发。使用控件的一个重要优点是让程序能自适应客户端的特点,这样,相同的页面就能适应多种不同的客户端平台,包括低端浏览器的HTML3.2IE5.0的动态HTML。代码和内容的分离使得ASP+页面可动态编译成可管理的类,从而使性能有很大的提高。

l          ASP+ Web Services           ASP+ Web Services编程模型的主要优点是简化了Web Services的开发,同时,其编程模型也非常类似人们已熟悉的ASPVB开发。开发者用ASP+建立Web服务的方法很简单,通过编写一个扩展名为.ASMX的文件,并且将其配置成Web应用的一部分即可。ASMX文件要么包含一个对已定义的可管理类的引用,要么本身有一个类定义,且类是从ASP+提供的Web Services类中导出来的。





http://www.niftyadmin.cn/n/3657513.html

相关文章

统计分析与数据挖掘所涉及的应用领域探讨

统计分析与数据挖掘涉及的领域统计分析涉及的领域社会统计:社会统计是用统计的方法来描述和分析社会生活与社会发展的状况, 它包括以下几项统计:一、社会人口统计:1、 人口总量统计2、 人口结构统计3、 人口增长与再生产统计二 社会生活…

基于.Net 的工作流驱动平台intelliFlow.Net研制成功

2006年9月12日,由本人主持并研发的基于微软最新技术平台.Net Framework 2.0 的工作流驱动平台————intelliFlow.Net 2.0版障显尊荣、强力推出。据来自中国互联网信息中心的数据表明,目前在国内基于.Net的工作流平台产品并不多见,而我们则率…

基于.Net的SAP Portal开发

基于.Net的SAP Portal开发最近因为项目的需要,必须考虑intelliFlow.Net与SAP的整合问题,于是抽空研究了一下,发现还真是有趣。现整理一下,聊作记忆。一、几个基本术语让我们先了解几个概念,在阅读和查阅任何关于SAP Po…

.Net vs. J2EE-----面对SOA的荒谬与误解

.NET vs. J2EE————面对SOA的荒谬与误解引子n .Net与J2EE在金融行业愈来愈呈势均力敌之势,二者均宣称提供了不同于对方的、听起来很迷人的个性化应用服务。n 理性的IT执行官们已经深刻的认识到这样的一个事实:无论是.Net还是J2EE&…

.Net平台开发的技术规范与实践精华总结

.Net平台开发的技术规范与实践精华总结以下是本人对.Net平台开发实践的一些点滴总结。这里的技术规范主要是开发过程的代码规范、数据库设计规范、Com和.Net互操作规范;实践精华是对技术实践过程中的部分总结。一、代码规范良好的代码风格来自于同一的代码规范。风格…

GNN论文阅读笔记

GNN论文阅读笔记General Idea1. Structure-awareness GNN1.1 GEOM-GCN --- GEOMETRIC GRAPH CONVOLUTIONAL NETWORKS(ICLR 2020)2. Entity Alignment(KG) GNN2.1 AliNet --- Knowledge Graph Alignment Network with Gated Multi-hop Neighborhood Aggregation2.2 MuGNN --- M…

用户体验式UI设计

用户体验式UI设计(1)什么是用户体验式设计产品的业务化和易用性始终是我们追求的目标,随着.Net Framework 3.0的推出,Windows Presentation Foundation(WPF)组件库把用户UI设计带入用户体验的时代。增强用户…

制作github.io学术版个人主页

Reference&Template: https://github.com/academicpages/academicpages.github.io Step: 参照template的instruction,将项目fork到自己这边在setting里边重命名这个项目(要想最后网页名字不奇怪,就得用github u…