Microsoft的.NET 策略
发表时间:2024-02-17 来源:明辉站整理相关软件相关文章人气:
[摘要]Microsoft正在广泛地使用(也有人说是滥用)其.NET 标记,这种情况使不少人被.NET的各种不同的概念搞糊涂了。这里我们可以先把.NET的几个主要的意义分清楚:.NET是软件成为一种服务的转移:.NET在这个方面的意义是最被广泛接受和理解的。“软件就是服务”的历年最初是在1997年左右由O...
Microsoft正在广泛地使用(也有人说是滥用)其.NET 标记,这种情况使不少人被.NET的各种不同的概念搞糊涂了。这里我们可以先把.NET的几个主要的意义分清楚:
.NET是软件成为一种服务的转移:
.NET在这个方面的意义是最被广泛接受和理解的。“软件就是服务”的历年最初是在1997年左右由Oracle 的CEO Larry Ellison 以及SUN的CEO Scott McNealy 在网络计算机的概念大行其道的时候提出的。不过Oracle 和SUN 并没有真正将这个概念变为现实,他们的视角更多的集中于资源集中化方面。不过,当初听到Ellison 和McNealy这番见解的公司——当然包括Microsoft,也认识到了这种见解说出了软件产业面临的一个巨大改变,.NET 则是Microsoft 对这种概念,这种变化作出的自己的反应。
.NET是一个新的编程模型——也就是说是Internet 平台:
Micorsoft 正在趋向于将.NET看作一个系统。在表面下,它包含了两种不同的编程模型:一个是Web服务编程模型,另一个是系统编程模型。
Microsoft 开始把.NET系统编程模型作为.NET整体的一个组成部分。计划最终以此代替现有的组件对象模型(Component Object Model,COM) 以及Windows应用程序编程接口(APIs),这个现在还没有最终正式定名的模型使用一系列新的基础类。
.NET系统编程模型是Microsoft私有的。 .NET 架构(.NET Framework )则包含了Microsft 的通用语言运行时(Common Language Runtime , CLR),CLR实现了这种新的编程模型。它还包含了类以及各种机制可以把一个应用程序包装为一个Web服务,这样可以简化Web服务的开发。另外,Microsoft 还发布了新的语言,C# (发音是“C sharp”)
最终,Microsoft正在计划发布新的集成开发环境(IDE),也就是大家都知道的Visual Studio.NET (VS.NET),来具体实现上述程序开发策略。
.NET 是Microsoft 新的公司战略
在这个意义上,.NET实际上是Microsoft现有的所有产品,技术,策略的共同品牌,不过这个.NET品牌的使用是非常松散的。比如,Microsoft在2000年9月发布了其.NET企业服务器产品(比如Windows 2000 Data Center Server 以及 Application Center) ,这些产品其实对于软件就是服务的理念或者是其新的编程模型没有多大的帮助。
.NET是对抗法院的拆分命令的一个方法
Microsoft 的.NET 策略在很多的领域都还是不明朗的。特别不明朗的就是Microsoft的操作系统打包策略,也许未来支持.NET的Windows版本和“经典”的Windows是分开的。我们相信在这方面缺乏具体信息的情况是Micorsoft 的策略,这样Microsoft 如果未来在司法部的官司中被迫拆分,还有一定的回旋余地。
.NET 的用户体验
关于.NET的很多先期工作都要集中在下层构造以及工具这些方面,这显然是必须的。不过Microsoft也很重视.NET带来的新的用户体验。当初Windows的成功固然是得益与开发者的大力支持,但是用户体验在其成功的过程中也扮演了重要的角色。我们认为相应的模式也会发生在.NET上,其核心焦点则是Microsoft称为"智能客户端(smart clients)" 的概念,智能客户端即不是纯粹的瘦客户端也不是胖客户端——作为用户体验的技术核心,.NET将有多种用户体验方面的“品牌标志”。
两个这样的品牌标志——MSN 和 bCentral 有着共同的特性:它们都是从一个站点开始,使用一个瘦的浏览器客户端进行服务。这些客户端更加智能些,比如MSN Explorer。
VS.NET 以及 Office.NET 也有同样的特征,它们都是功能丰富的客户端程序,可以和Internet和服务进行一些交互。我们期待这些产品发布的时候可以支持更多Microsoft 和其它公司的服务。如果.NET充分发挥了其潜力,我们估计可以看到Microsoft以外的公司发布这样的产品。
.NET 描述了两种编程模型
在技术层面上,.NET平台的基础包括:扩展置标语言,也就是我们熟悉的XML;简单对象操作协议(Simple Object Access Protocol ,SOAP);以及将未来的Internet 视为面向各种设备的服务的观念。这些高层次的描述主要是面向这个新的模型中最明显的方面——也就是实现Web服务的部分。
然而,在内部,.NET平台建筑于.NET架构之上,.NET架构提供了实现这些概念的API的底层机制。.NET架构也经历了.NET本身的问题——就是它被用于描述太多的事情了。特别是,.NET 描述了两种新的不同的编程模型,他们构成了概念的基础:这就是Web服务编程模型(Web services programming model )以及系统编程模型(system programming model)。
企业一定要认识到,组成.NET的是两个相互独立的编程模型。Web服务编程模型与底层的系统编程模型是相互独立的。这些编程模型可以也应该分别使用。
.NET Web服务编程模型
.NETWeb服务编程模型大体上就是通过Internet的各种标准来实现各种接口。这是一组以Internet标准为基础的松散的模型,使用HTTP和其它的协议作为主要的通讯机制,同时,使用了XML,SOAP,Web服务描述语言(Web Services Description Language,WSDL),以及通用描述,发现,集成(Universal Description, Discovery, and Integration , 简称UDDI)。最初,多数这种编程模型的使用将采取请求/应答的模式。
在2003年,Web服务的主要形式将是组件调用以及信息推送,这些在所有Web服务中占到75%以上。更长远的未来,我们认为“协调组织”了的工作流或者服务将成为Web服务的主力,很多这些编程模型已经出现了,比如SOAP和其它一些出现在.NET以前的技术,而且这些技术现在就是可用的,在正式的.NET产品以前就有了。
作为日益增多的Web服务体系的一种,.NET架构提供了与底层的系统API以及组件模型无关的编程模型。这也体现了Microsoft和其它一些公司在上个世纪90年代对分布式计算的看法,并且通过一个简单的方法借助Internet得到了实现。服务以服务器上的程序的方式来实现,这些程序使用标准的协议与调用的程序进行对话。
如果需要在一个系统中的一个进程中进行跨组件通讯,或者是跨越.NET架构系统或多个进程进行跨组件通讯,.NET架构可以使用SOAP或者或者是二进制协议进行通讯。如果进行跨系统环境(比如,和非.NET架构系统)进行组件通讯,.NET架构可以只使用SOAP。在一个系统上运行的程序和服务仍然使用COM,不过以后慢慢将会变成使用.NET中的新类。
理论上,这些程序还可以是在UNIX上实现的Enterprise JavaBeans ,不过Microsoft没有为此提供什么帮助。但是要记住.NET Web服务编程模型是不依赖.NET 系统编程模型的。
.NET 系统编程模型
作为.NET平台的一部分,Microsoft也建立了新的系统编程模型,同样在.NET架构上得到了实现。.NET 系统编程模型在长远看将最终取代COM以及Windows API,这个现在还没有定名的模型使用了新的基础类。
.NET 架构(.NET Framework )包含了Microsft 新的通用语言运行时(Common Language Runtime , CLR),可以支持新的编程模型,并且首次将真正的面向对象的类结构作为了运行时环境的一部分。COM的界面为开发者提供的功能在.NET 架构中也是可用的。
.NET 系统编程模型是Microsoft私有的,虽然有些部分被开放,这要归结于欧洲计算机制造商联合会(European Computer Manufacturers Association , ECMA) 在C#标准化方面的努力。.NET 系统编程模型还包含了一些类和机制,可以将现存的程序转化为Web服务,这样可以简化Web服务的开发,虽然这样的设置并不是十分有必要。
Microsoft的主席Bill Gates 将这种向.NET平台的迁移比作和从DOS到Windows一样意义重大。不过我们觉得更加准确的比较应该是这种迁移类似于Win16向Win32 的迁移。在向Windows的迁移中,DOS下的程序立刻成为了过去,而Win16的应用则在很大程度上和Win32兼容。
另一个比较好的比较是把.NET比作当初Mirosoft实现自己的Java时的情况,当时Microsoft将Java类和组件包装为COM组件,Microsoft了解到了将两种模型相互映射的好处,现在Microsoft开始发展这个还没有名字的新的组件模型,他们再次将新旧模型进行了映射和包装,旧模型就是COM,Microsoft在这里的真正意图之一是去掉对Java的需求。(出处:www.dev-club.com)