.NET开发思想(1)-争辩
    自从J2EE推向市场以来,以其安全性、稳定性和扩展性得到了开发者的青睐,迅速成为了大型Web应用的首选标准。为推广J2EE编程思想和编程技术,Sun在其Java官方站点上提供了一个Demo应用,即Petshop
    微软不甘在大型Web应用开发上的落后,在2000年推出了.NET技术,并展开了猛烈的市场攻势。J2EE.NET的主要对手,也是其攻击的主要目标。于是微软在去年下半年推出了.NET版的Petshop,宣称其在代码量、性能、价格、易用性和拥有/开发/维护成本上与J2EE相比有不可比拟的优势,且完全基于Web Services技术。
    在微软强大的市场攻势的影响下,各大主流IT媒体上,众多有关J2EE.NET优劣比较的文章层出不穷。
    事实上,J2EE不是一种产品,而是一种标准,Java官方站点上的Petshop只是一个展示J2EE基础结构和开放性的Demo,并没有进行性能上的优化(因不同的产品有不同的性能优化的方式)。而.NET不是一种标准,是一种产品。.NETPetshop程序是基于.NET产品而进行
了优化,如其对数据库的访问代码就是写在SQL Server的存储过程中。因此,对其比较是没有参照价值的。
    对此,BEASun不予置评。而IBMOracle则沉不住气,特别是在微软的Petshop文档中,比较的J2EE应用服务器采用的就是IBMWebSphere 4.0IBMOracle分别利用自己的产品(WebSphere 4.0Oracle 9i iAS)实现J2EE方式的Petshop,给出了新的性能数据和比较说明。IBM还指出微软的一个错误:对Petshop实现的比较并不是开发Web Services的性能的比较。
    微软立即进行了反击,并给出了新的说明,并针对IBM给出了.NETWebSphere在实现Web Services上的比较。IBM也有所反应。双方的争辩至今没有停息。
    在去年12月的Web Services杂志上,Robert McGarvey写了一篇文章:Street Fighting Comes to Web Services,分析了当前关于J2EE.NET的争辩,提出了许多有价值的见解。他的文章出来以后,微软立即写了一篇文章对其中的若干点进行了澄清。而针对这两篇文章,又展开了一场白热化的争辩。
    我们的观点是微软的.NET技术和产品确有其独到之处,但绝对不是和J2EE“有我没你”。今后的两年内将会是两者的并存,并相互促进和发展的一个状态。我们推出《.NET开发思想》系列,就是希望能将我们对.NET开发思想的理解与大家共享,在批判和碰撞中不断共同提高。
附加文献:
1vb采用什么的编程机制.NET Pet Store的最新版
.NET开发思想(2).NET的组成
    .NET是什么?这是一个很有趣的问题,但没有一个简单而清楚的定义。这就象OO(面向对象),虽然我们很难下一个清晰的定义,但这并不影响我们对它的理解。就我的认识,.NET是微软的分布式运算技术的软件战略,目标是"Anytime, Anywhere, Anyone, Anydevice"(微软原语)
    既然.NET是微软押宝的一个软件战略,.NET由哪几部分组成呢?自.NET2000年下半年推出以来,微软公司内部的策略专家们对此热烈的讨论就并未停止过,并给出了不同的划分
方法。其中最为经典的,当数微软的平台策略VPSanjay Parthasarathy.NET推出之初写的一篇文章-The Simplest Way to Define .NET中给出的划分。我这里给出的划分主要便是基于他的这篇文章。
    在下面的介绍中,大家可以发现其实.NETJ2EE其实包含的范围很不同,真正意义上的J2EE只对应.NET中的其中一部分。
    .NET包括平台和知识两部分。
    .NET平台包括开发工具、服务器、.NET积木块服务(BBSs)和设备软件。其中,
    开发工具包括.NET FrameworkVisual Studio .NET.NET FrameworkJ2EE相对应,包括.NET CLR(公共语言运行环境,类似于Java虚拟机)和公共类库。Visual Studio .NETVisual Studio开发工具的.NET版本,包括VBVCVBScriptJScript等的新版本,以及一门新的语言C#(完全面向对象,与Java对应),并基于.NET Framework开发。《.NET开发思想》系列后续的专题将围绕.NET FrameworkVS .NET展开。
    服务器包括.NET Enterprise Servers.NET Server。其中.NET Enterprise Servers包括S
QL ServerISA ServerBiztalk Server等系统服务平台,与J2EE体系中的数据库服务器、目录服务器、工作流服务器、应用服务器等系统服务平台相对应。.NET ServerWindows.NET版本。这两部分不在本系列的讨论范围内。技术研究处今年将推出.NET平台技术推广系列,将围绕这两部分展开。
    .NET积木块服务(.NET Building Block Services)是指基于.NET技术构建的基于XML的基础性的Web服务,如文件存储、用户性能管理、日历管理等。这些基础性的Web服务将极大地扩展.NET服务的功能性。本系列也将探讨Web Services的基本知识。
    设备软件是指应用在Smart Devices上的软件,使这些设备可以象PC一样享受.NET的强大功能。
    .NET知识包括.NET开发思想、开发方法和用户开发经验,主要体现在MSDN中。
    虽然.NET已推出一年多了,但以上这些内容现在并未完全正式推出。按微软的.NET愿景规划,将按.NET Enterprise Servers.NET FrameworkVisual Studio .NETWindow .NET.NET积木块服务的顺序依次推出。
    从下一个专题开始,我们将开始探讨.NET的基础技术-Web Services
.NET开发思想(3)Web services(1):概述
    Web services似乎在一夜之间就成了一个很热的名词。各大IT产商,IBMMicrosoftBEASunHPOracle等都不断宣称自己的“Web services策略”,并推出“Web services-based”的产品。
    但是Web services究竟指的是什么呢?几乎每个公司和团体都有自己的定义。W3C(制订HTMLXML等标准的行业标准组织)在20021月成立了Web Services Architecture工作组(WSA-WG),定义Web services的公共基础架构,我订阅了其的Maillist。在215日的时候,某公司的一位同志提出Web services的定义是什么的问题,立即引发了一场旷日持久的大辩论。数十位不同公司的专家据理力争,“殊死搏斗”(一位专家用"Desperate"来形容这场大辩论)。到今天(37日)为止,我的邮箱中关于这场辩论的邮件已近200封(个人认为,这些邮件是锻炼英语辩论能力的绝妙教材,:-)。
    我们印象中Web services是在2000年底由IBMMicrosoft共同提出的,伴随着这个概念的,
XML,还有SOAPWSDLUDDI等名词。其实,早在1998年,SunCEO Scott McNealyOracleCEO Larry Ellison就提出了使用Web上的services替代应用的愿景(但他们并没有立即强力推行这一概念)。另一点需要说明的是,WSA-WGChairman不是IBM的,也不是Microsoft的,而是SunChristopher Ferris
    200111月的Web Services Journal上有一篇文章Web Services Fundamentals: From Whence it Came,谈到我们不要从纯技术的角度谈论Web services,而要看促使Web services产生的业务问题。那促使Web services产生的业务问题究竟是什么呢?
    众所周知,WebInternet技术的出现,促进了企业业务模式的变革。从B2CB2B,直到E2EEnterprise to Enterprise),关键在于实现流程集成(BPI)和应用集成(EAI)。
    先看EAI。我们知道,要实现EAI,最理想的解决方法是标准化一个企业中的体系结构和框架,但这往往不现实—因为不可避免需要采用不同公司的软件包。因此,需要有这样一个机制,使得内部和外部的系统可以用一种松散耦合的模式集成。个人认为,采用Adapter的方式(这是目前众多EAI产品所采用的方式)并不是真正的解决之道:因为应用的框架不断在演变。解决方法应是:将接口和实现相分离,公共的接口不变,实现变了以后,只要维护接
口和实现之间的映射即可。
    BPI的真正实现,需要实现无缝的工作流,能无缝地调用各种不同应用的公共资源。而要实现无缝地调用这些资源,不仅要有统一的资源描述方式,还需要有公共的登记机制,以进行有效的发布、查询和管理-这样才能真正实现BPI
    Web services的出现,正是为了解决这些问题。我们可以将Web services想象为附加在现有应用或资源上的一个“包装”,通过这个包装,可以将应用或别的资源封装为一个服务。而Web services能确保这个服务有与技术无关的、通用的接口描述,并有统一的方式进行登记,便于访问和使用。
    这里要注意的是,Web services的根本目的就是“与技术无关”。所以所谓.NETJ2EE谁更适合实现Web services的辩论是毫无意义的,因为Web services只是包裹在.NETJ2EE或其它不同技术编写的应用上的一个“一致的”包装,目的就是为了“屏蔽”后台所采用的技术。
    其实,在Web services之前已有很多不同技术领域的efforts以“实现与技术无关的统一的接口描述”为目标,如CORBAEDI等。但WebXML技术的出现才真正带来了这一愿景实现
的技术基础,于是有了由联合国贸易促进组织和OASIS共同发起的ebXML提案。可以说ebXML是一个相当不错的标准,但其和CORBA一样,没有得到各IT产商的全面支持,特别是Microsoft。而Web services的迅速“窜红”,则与各主要IT供应商的支持有极大的关系。当然,各IT产商对Web services的“支持”各有其力度和目的,Gartner的一篇分析报告Web Services: Evaluating the Major Vendors' StrategiesMicrosoftHPSunIBMOracle等五家IT产商的Web services策略,大家有兴趣的话可以看一看。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。