本文发表在 rolia.net 枫下论坛仙人掌工作室
2002-4-17
本文转摘自《计算机世界》
--------------------------------------------------------------------------------
随着VS.NET的正式发布,Microsoft的.NET梦想终于如实展现在人们面前,对几乎所有以Microsoft技术为核心的开发组织来说,它带来了不容忽视的变革。就像以前对Windows寄予厚望一样,Microsoft现在把自己未来的重注下在了.NET的成功上。同样与以前Windows出现时相似的是,绝大多数Microsoft技术的开发者不可避免地要转移到.NET上。认清这些简单但关键的事实,这是评估.NET将在你的组织中扮演什么角色时首先要解决的重要问题。
除非你准备彻底放弃或背离Microsoft的软件战略,否则,对于最终迁移到以.NET为基础的产品和体系,你只拥有很少的选择权:这是一个何时进行的问题,而不是一个是否要进行的问题。实际上,你真正拥有的实际控制权仅仅是迁移工作的进度安排。然而,在深入分析.NET可能在你的组织中起到哪些作用之前,首先要澄清一下本文所指的.NET具有哪些含义。
一、澄清一些事实
Microsoft使用的“.NET”术语在不同的场合有着许多含义:它是一种展望,一种远期战略,一种商标,同时也不可否认地带有市场策略的成分。从最简单直接的角度来看,.NET是Microsoft对“软件即服务”或“服务式软件”(Software as Services)这一IT战略和技术体系的设想。从最长远的观点来看,.NET是一种占领市场的战略,在此基础上Microsoft将支持下一代以Internet为中心的应用,这些应用将充分利用当前正在浮现的新技术的优势,例如Web服务和移动设备、无线设备等。虽然完整的、全面的.NET图像仍被市场宣传的迷云笼罩,但在这迷云之下,一个真实坚固的新平台确实存在,这就是.NET框架。本文的讨论正是以.NET的这一概念为基础。
对于几乎所有以Microsoft技术为基础的开发者来说,转移到.NET是不可避免的趋势。在这种情况下,评估迁移工作的时间安排之前应该先回答这样一个问题:“我是一个积极的新技术采用者,还是一个保守的新技术采用者?”积极的新技术采用者会把.NET视为自DOS升级到Windows之后最重要的机遇,很自然地,他很可能把注意力集中到.NET带来的优势,而忽略其缺点。这类最早采用新技术的人往往以积极甚至激进的策略为基础,选择最前沿的、正在浮现之中的新技术,看重竞争优势带来的希望,轻视随之出现的风险。
.NET技术早期采用者的第一个机遇在于它具有抵御竞争威胁的能力。正如Windows曾经抵御了因为Apple Macintosh日益流行而带来的威胁,抵御了OS/2的出现带来的重大威胁,.NET计划在很大程度上针对的是Java带来的威胁。著名的技术市场研究公司Gartner预测,接下来的五年中,百分之八十或更多的新电子商务应用将建立在Microsoft或Java平台技术的基础上。很自然地,.NET的目标很大程度上是在这个百分比中尽可能地扩大Microsoft的份额,降低Java技术在主流IT企业之间日益广泛的影响。
Microsoft通过推出一个全新的技术平台回应Java的威胁,这个新的平台在许多方面填补了原来的空白,在一些领域(例如Web服务)甚至有所超越。对于Microsoft来说,这一举措正当其时,因为旧的Win32/COM体系正显示出严重的时代局限性。Java威胁的出现是由于,几年之前WWW刚刚出现时,Microsoft犯下了重大的估计错误,它仍旧坚持着以PC为中心的计算理念,对Internet日益增长的重要性视而不见。在很大程度上,推出.NET新平台这一重大举措的驱动力量来自甩下旧包袱的需要,因为旧包袱拖了Microsoft与Java展开全面竞争的后腿。
二、评估.NET vs. Java
旧的分布式Internet体系(DNA,Distributed Internet Architecture)建立在Win32和COM等技术的基础上,它就象是一条橡皮筋,在过去的十多年里,从最初的以PC为中心的计算模式不断拉伸和扭曲。今天,这条橡皮筋已经拉伸到了极限,该是来一次大变革的时候了。与DNA不同,Java出现在人们面前只有六年之久,既得天时也得地利,紧紧抓住了Internet大潮的机遇。Java带来了许多革命性的编程概念,它们与新兴的Internet和Web编程模式紧密结合,例如内建的安全沙箱(Security Sandbox)、可移植的代码,以及直接构造到语言和库里面的强大的Web、TCP/IP编程支持。另一方面,Microsoft只给出了一些充满缺陷的答案,例如意图作为Internet组件使用的ActiveX控件。然而,.NET不再是以PC为中心的计算技术的简单扩展,它代表着一种长远意义上的划时代的飞跃,成功地为人们带来一条全新的橡皮筋——具有足够的灵活性和伸缩能力,足够用上好几年。
令人欣慰的是,.NET的价值取向并不完全集中在与Java的对抗上。Microsoft充分利用了.NET作为一个全新基础平台的优势,在许多领域有超越Java之势。特别是在对Web服务技术的支持上,这一点尤其突出。在这一领域,Microsoft已经引起人们的密切关注,对于简单对象访问协议(SOAP,Simple Object Access Protocol)和统一描述、发现和集成协议(UDDI,Universal Description、Discovery and Integration)之类的下一代技术平台,Microsoft已摘取到预言家的桂冠。据Gartner估计,在下一年中,人们可以看到.NET比大多数与之竞争的Java厂商提供更好的Web服务支持;然而,在两年之内,这些竞争者中的大多数也将以自己更健壮的功能提供对Web服务开发更有效的支持。
如果你有可能成为.NET技术的早期采用者,请仔细审视.NET框架的新特色,既要了解类似的Java方案带来的竞争风险,也要了解超越“传统的”COM实现方案所带来的竞争优势。此外,应当深入地分析应用开发项目的时间因素。你正在启动的开发项目是否会在2002年上半年正式发布?或者,你是否正在启动一个直到本年或下一年末才能完成的项目?正式推出产品之前的时间越长,今天你追随.NET的必要性就越大。
三、认清风险
正如积极的新技术采用者在做技术决策时很大程度上倾向于高风险、高回报的机遇,也有一些新技术采用者以保守的眼光看待.NET。这些新技术的采用者总是在看到新技术带来的机遇的同时,对随之而来的风险作大量的研究,他们眼中的.NET不仅代表着一次重要的机遇,同时也伴随着一些重大的风险。
首先,对于所有使用Microsoft技术的开发者来说,转移到.NET意味着面临一个重大的技术断层,因为.NET要求有全新的技能、工具、体系和从头开始实践。此外,目前的.NET几乎完全是来自单一厂商的1.0版本的软件,而这个厂商的1.0版软件有着可怕的历史记录,甚至同一句话中提到“Microsoft”和“1.0版本”这两个词都会让全世界的程序员感到脊梁骨上的寒意。然而,在Micrsooft的技术世界中,接受这些风险的挑战并非没有先例;当开发者从DOS转到Windows,从16位Windows转到32位Windows时,也曾面临类似的挑战。转换到.NET只是在同一条路上再走一遍,而这条路对于使用Microsoft技术的开发者来说并不陌生——转移到.NET确实是一个挑战,但对于大部分开发者来说存在的障碍不是不可克服的。
虽然.NET带来的机遇促使人们尽快采用.NET,但你还是应该深入严肃地检查一下是否已经为潜在的挑战做好了准备,因为.NET毕竟是一个全新的、尚未充分发展和成熟的平台。例如,.NET引入了一些新的特色,包括所有语言之间统一的类库和一个经过整理的组件模型,但这些特色付出了向后兼容的代价。应该做好最坏的打算,因为如果要把现有的应用改造成真正的.NET实现,可能有大量的代码需要重新编写。
四、结束语
.NET为人们提供了一个拥抱下一代Internet、电子商务、移动和无线IT方案的机遇。然而,不可否认的是,它是对现有体系的一次根本性的变革,要求重新编写大量的应用代码,要求重新对开发人员进行培训以及面对一种尚未充分发展和成熟的技术所带来的风险。好在.NET迁移之路并非一个非有即无的选择,Microsoft提供了紧密连接传统COM+体系和.NET平台的桥梁,允许开发者按照渐进的方式逐步引入.NET技术。实际上,至少在.NET推出之后的前两年,在主流开发中占据统治地位的必然是.NET和现有技术共存的混合开发模式。
因此,当你考虑.NET迁移的时间安排时,应该先回答本文开头提出的问题,“我是一个积极的新技术采用者,还是一个保守的新技术采用者?”,确定是否有直接的、令人信服的、经得起推敲的理由要求立即转到.NET平台上。如果不是这样的话,在接下来的几个月时间中,选择更稳健、谨慎的策略对你来说也许更理想。
对于我们之中的大多数人来说,答案在于这两个极端之间。正如Gartner对其客户的忠告,为了在风险和回报之间取得平衡,应当避免在VS.NET正式发布后的六到九个月之内让运行关键任务的系统过分地依赖于.NET框架技术;当然,如果你今天启动了一个持续八个月左右的开发项目,在采用.NET技术的策略上也许应该更积极一些。不管你实际采用了哪种策略,都应当立即开始借助原型工程和规模较小的、非关键任务的工程熟悉和研究.NET,了解.NET的哪些特色对于你的组织来说最有意义。对于大多数开发者来说,最现实的迁移规划不是一个非有即无的选择,而应该是一个渐进的过程,应该随着时间的推移按照一种与现有COM服务混合应用的模式引入.NET框架技术。更多精彩文章及讨论,请光临枫下论坛 rolia.net
2002-4-17
本文转摘自《计算机世界》
--------------------------------------------------------------------------------
随着VS.NET的正式发布,Microsoft的.NET梦想终于如实展现在人们面前,对几乎所有以Microsoft技术为核心的开发组织来说,它带来了不容忽视的变革。就像以前对Windows寄予厚望一样,Microsoft现在把自己未来的重注下在了.NET的成功上。同样与以前Windows出现时相似的是,绝大多数Microsoft技术的开发者不可避免地要转移到.NET上。认清这些简单但关键的事实,这是评估.NET将在你的组织中扮演什么角色时首先要解决的重要问题。
除非你准备彻底放弃或背离Microsoft的软件战略,否则,对于最终迁移到以.NET为基础的产品和体系,你只拥有很少的选择权:这是一个何时进行的问题,而不是一个是否要进行的问题。实际上,你真正拥有的实际控制权仅仅是迁移工作的进度安排。然而,在深入分析.NET可能在你的组织中起到哪些作用之前,首先要澄清一下本文所指的.NET具有哪些含义。
一、澄清一些事实
Microsoft使用的“.NET”术语在不同的场合有着许多含义:它是一种展望,一种远期战略,一种商标,同时也不可否认地带有市场策略的成分。从最简单直接的角度来看,.NET是Microsoft对“软件即服务”或“服务式软件”(Software as Services)这一IT战略和技术体系的设想。从最长远的观点来看,.NET是一种占领市场的战略,在此基础上Microsoft将支持下一代以Internet为中心的应用,这些应用将充分利用当前正在浮现的新技术的优势,例如Web服务和移动设备、无线设备等。虽然完整的、全面的.NET图像仍被市场宣传的迷云笼罩,但在这迷云之下,一个真实坚固的新平台确实存在,这就是.NET框架。本文的讨论正是以.NET的这一概念为基础。
对于几乎所有以Microsoft技术为基础的开发者来说,转移到.NET是不可避免的趋势。在这种情况下,评估迁移工作的时间安排之前应该先回答这样一个问题:“我是一个积极的新技术采用者,还是一个保守的新技术采用者?”积极的新技术采用者会把.NET视为自DOS升级到Windows之后最重要的机遇,很自然地,他很可能把注意力集中到.NET带来的优势,而忽略其缺点。这类最早采用新技术的人往往以积极甚至激进的策略为基础,选择最前沿的、正在浮现之中的新技术,看重竞争优势带来的希望,轻视随之出现的风险。
.NET技术早期采用者的第一个机遇在于它具有抵御竞争威胁的能力。正如Windows曾经抵御了因为Apple Macintosh日益流行而带来的威胁,抵御了OS/2的出现带来的重大威胁,.NET计划在很大程度上针对的是Java带来的威胁。著名的技术市场研究公司Gartner预测,接下来的五年中,百分之八十或更多的新电子商务应用将建立在Microsoft或Java平台技术的基础上。很自然地,.NET的目标很大程度上是在这个百分比中尽可能地扩大Microsoft的份额,降低Java技术在主流IT企业之间日益广泛的影响。
Microsoft通过推出一个全新的技术平台回应Java的威胁,这个新的平台在许多方面填补了原来的空白,在一些领域(例如Web服务)甚至有所超越。对于Microsoft来说,这一举措正当其时,因为旧的Win32/COM体系正显示出严重的时代局限性。Java威胁的出现是由于,几年之前WWW刚刚出现时,Microsoft犯下了重大的估计错误,它仍旧坚持着以PC为中心的计算理念,对Internet日益增长的重要性视而不见。在很大程度上,推出.NET新平台这一重大举措的驱动力量来自甩下旧包袱的需要,因为旧包袱拖了Microsoft与Java展开全面竞争的后腿。
二、评估.NET vs. Java
旧的分布式Internet体系(DNA,Distributed Internet Architecture)建立在Win32和COM等技术的基础上,它就象是一条橡皮筋,在过去的十多年里,从最初的以PC为中心的计算模式不断拉伸和扭曲。今天,这条橡皮筋已经拉伸到了极限,该是来一次大变革的时候了。与DNA不同,Java出现在人们面前只有六年之久,既得天时也得地利,紧紧抓住了Internet大潮的机遇。Java带来了许多革命性的编程概念,它们与新兴的Internet和Web编程模式紧密结合,例如内建的安全沙箱(Security Sandbox)、可移植的代码,以及直接构造到语言和库里面的强大的Web、TCP/IP编程支持。另一方面,Microsoft只给出了一些充满缺陷的答案,例如意图作为Internet组件使用的ActiveX控件。然而,.NET不再是以PC为中心的计算技术的简单扩展,它代表着一种长远意义上的划时代的飞跃,成功地为人们带来一条全新的橡皮筋——具有足够的灵活性和伸缩能力,足够用上好几年。
令人欣慰的是,.NET的价值取向并不完全集中在与Java的对抗上。Microsoft充分利用了.NET作为一个全新基础平台的优势,在许多领域有超越Java之势。特别是在对Web服务技术的支持上,这一点尤其突出。在这一领域,Microsoft已经引起人们的密切关注,对于简单对象访问协议(SOAP,Simple Object Access Protocol)和统一描述、发现和集成协议(UDDI,Universal Description、Discovery and Integration)之类的下一代技术平台,Microsoft已摘取到预言家的桂冠。据Gartner估计,在下一年中,人们可以看到.NET比大多数与之竞争的Java厂商提供更好的Web服务支持;然而,在两年之内,这些竞争者中的大多数也将以自己更健壮的功能提供对Web服务开发更有效的支持。
如果你有可能成为.NET技术的早期采用者,请仔细审视.NET框架的新特色,既要了解类似的Java方案带来的竞争风险,也要了解超越“传统的”COM实现方案所带来的竞争优势。此外,应当深入地分析应用开发项目的时间因素。你正在启动的开发项目是否会在2002年上半年正式发布?或者,你是否正在启动一个直到本年或下一年末才能完成的项目?正式推出产品之前的时间越长,今天你追随.NET的必要性就越大。
三、认清风险
正如积极的新技术采用者在做技术决策时很大程度上倾向于高风险、高回报的机遇,也有一些新技术采用者以保守的眼光看待.NET。这些新技术的采用者总是在看到新技术带来的机遇的同时,对随之而来的风险作大量的研究,他们眼中的.NET不仅代表着一次重要的机遇,同时也伴随着一些重大的风险。
首先,对于所有使用Microsoft技术的开发者来说,转移到.NET意味着面临一个重大的技术断层,因为.NET要求有全新的技能、工具、体系和从头开始实践。此外,目前的.NET几乎完全是来自单一厂商的1.0版本的软件,而这个厂商的1.0版软件有着可怕的历史记录,甚至同一句话中提到“Microsoft”和“1.0版本”这两个词都会让全世界的程序员感到脊梁骨上的寒意。然而,在Micrsooft的技术世界中,接受这些风险的挑战并非没有先例;当开发者从DOS转到Windows,从16位Windows转到32位Windows时,也曾面临类似的挑战。转换到.NET只是在同一条路上再走一遍,而这条路对于使用Microsoft技术的开发者来说并不陌生——转移到.NET确实是一个挑战,但对于大部分开发者来说存在的障碍不是不可克服的。
虽然.NET带来的机遇促使人们尽快采用.NET,但你还是应该深入严肃地检查一下是否已经为潜在的挑战做好了准备,因为.NET毕竟是一个全新的、尚未充分发展和成熟的平台。例如,.NET引入了一些新的特色,包括所有语言之间统一的类库和一个经过整理的组件模型,但这些特色付出了向后兼容的代价。应该做好最坏的打算,因为如果要把现有的应用改造成真正的.NET实现,可能有大量的代码需要重新编写。
四、结束语
.NET为人们提供了一个拥抱下一代Internet、电子商务、移动和无线IT方案的机遇。然而,不可否认的是,它是对现有体系的一次根本性的变革,要求重新编写大量的应用代码,要求重新对开发人员进行培训以及面对一种尚未充分发展和成熟的技术所带来的风险。好在.NET迁移之路并非一个非有即无的选择,Microsoft提供了紧密连接传统COM+体系和.NET平台的桥梁,允许开发者按照渐进的方式逐步引入.NET技术。实际上,至少在.NET推出之后的前两年,在主流开发中占据统治地位的必然是.NET和现有技术共存的混合开发模式。
因此,当你考虑.NET迁移的时间安排时,应该先回答本文开头提出的问题,“我是一个积极的新技术采用者,还是一个保守的新技术采用者?”,确定是否有直接的、令人信服的、经得起推敲的理由要求立即转到.NET平台上。如果不是这样的话,在接下来的几个月时间中,选择更稳健、谨慎的策略对你来说也许更理想。
对于我们之中的大多数人来说,答案在于这两个极端之间。正如Gartner对其客户的忠告,为了在风险和回报之间取得平衡,应当避免在VS.NET正式发布后的六到九个月之内让运行关键任务的系统过分地依赖于.NET框架技术;当然,如果你今天启动了一个持续八个月左右的开发项目,在采用.NET技术的策略上也许应该更积极一些。不管你实际采用了哪种策略,都应当立即开始借助原型工程和规模较小的、非关键任务的工程熟悉和研究.NET,了解.NET的哪些特色对于你的组织来说最有意义。对于大多数开发者来说,最现实的迁移规划不是一个非有即无的选择,而应该是一个渐进的过程,应该随着时间的推移按照一种与现有COM服务混合应用的模式引入.NET框架技术。更多精彩文章及讨论,请光临枫下论坛 rolia.net