【转载】关于Windows.Net和VisualStudio.Net的一些观察
2024-07-10 12:59:45
供稿:网友
转载自【雨声论坛】
原作:software_young
----------------------转载开始----------------------------
本文的目的是希望引发关于windows.net和visualstudio.net的一些讨论,因此,本文的内容和结构如果不能够引人入胜或者贻笑大方,敬请各位高人海涵。
一。微软的.net战略是微软自成立以来最为宏大的项目,也是业界近年来少有的大手笔,其结果对微软和业界都将是决定性的。如果成功的话,微软将建立起对unix和java的巨大优势;而如果失败的话,它将成为微软的天鹅之歌。
二。.net的设计目标:
设计一个基于web,平台独立,包含多个层次的目标的庞大软件服务体系。它以web为中心,组织各种服务,使得微软的以客户机和服务器为中心的com/dcom/com+转化为以web为中心的各种服务,成为庞大的web asp(应用服务供应商);通过将.net与宿主操作系统的相对分离,实现了相对的平台独立性,使其不仅可以应用于传统的windows,而且可以应用于unix系统和嵌入系统、甚至是手持设备;各种用户前端,包括手持设备、嵌入系统、传统的台式机、甚至传统的主机,都将成为其客户;.net包含了对多个层次目标的支持,可以满足从手持设备、嵌入系统到64位的高档服务器等各个市场段的需要。
三。.net的影响:
如果.net成功的话,它将使微软可以入侵传统上各个相对较小的的侧翼市场,通过微软巨大的装机量、大量的现成应用程序、大量的用户群所产生的市场震撼,以多米诺骨牌的方式摧毁对手。从而建立现代高科技市场上的蒙古大帝国。这一点,大家可以从近来palm的失势和pocket pc的胜利,xbox的市场表现以及微软和borland的力量对比的变化看出来。
四。.net的结构的力量:
传统的windows都是在kernel之上密集积累各种service来实现其功能(大家可以通过察看各个版本的windows nt的service来发现其所具有的各种服务功能)。大量的功能进入系统内核,一方面提高了系统的集成度,一方面也使得系统十分庞大,使得系统的性能和稳定性都成为问题,使得进入不同的市场段变得困难,同时限制了对于简单应用的性能表现。linux在某些应用方面的性能优势,其实正是由于它相对简单和功能较少。
.net的设计,将其各种功能从操作系统中分解出来,通过组合不同的功能来对应不同的市场需要,各个版本的windows.net实际上就是不同部件的各种组合。它可以说是世界上第一个完全以部件模型来设计的操作系统。这一点,实际上从windows xp已经开始。
windows xp的力量并不在于它有美丽的用户界面,和各种利于用户体验的各种工具,如mediaplayer,而在于它所提供的服务集和体系结构。关于服务集,大家可以对比windows xp和windows 2000 professional来发现windows xp提供了多少新的服务和这些服务的面向的目标。而在体系结构上,windows xp已经可以去掉其图形用户界面,以嵌入系统的方式工作了。这意味着,它的图形用户界面实际上已经离开了系统的内核,成为一个可装配的部件。这是一个十分重要的变化。
windows.net的结构,实际上应该分为两个部分:微软专有平台部分和可移植部分。前者包括了硬件相关部分和传统的windows市场;后者则构成了windows.net的精华,随着时间的推移,前者将逐渐简化,后者将日趋强化。
目前,运行于unix的.net支持部件正在开发中。如果能够成功的话,.net将可以作为unix的一部分运行在unix上面,unix将成为一个宿主系统,就像unix是java的一个宿主系统一样。
宿主系统下的软件如果足够强大的话,一样可以构成一个操作系统,至少可以构成一个强大的软件层,前者的例子是今天的oracle 9i,大家可以看到它离操作系统还有多远,这既是oracle在市场上的巨大力量所在,也是宿主系统的噩梦,后者的例子是微软的office,office不仅仅在于其易于使用,而且在于其所含的visual basic for application,它使得office成为了一个软件平台,这一点,是ibm的lotus office和corel的perfect office无论如何无法比拟的,他们的失败也就不可避免了。
以这种方式,传统的unix将逐步被淘空,成为一个空壳,最后走向消亡。因此,.net的设计结构,使得它成为现代的特洛伊木马。
五。关于visualstudio.net。
visualstudio.net是windows.net的开发工具。它和前代产品的巨大差异,成为人们争论的目标和担忧的所在。
visualstudio 6.0的设计是基于com/dcom,后来又加入了com+。它是以本机软件为设计目标的。软件开发直接生成平台相关的代码。不同的编程语言的级别和功能大不一样,而都直接生成平台相关的代码。这使得二进制级的移植实际上不可能。
visualstudio.net的设计则完全是基于web的服务和应用。它实际上是以一种虚拟机的模式来设计的,clr(通用语言运行环境)构成了其基础。软件开发生成的是中间码,它在实际运行时转换成对应的机器码,这种设计的好处是和java相似的,一种理论上的无限可移植性。但是微软的唯一性,使得这种理想更加接近于现实。
不同的编程语言所访问的都是那个clr。asp具有了更多的面向目标的特性,visual basic实际上第一次成为真正面向目标的编程语言。各种编程语言面向clr的设计模式,使得clr,而不是各种编程语言成为开发的中心。历史上第一次,编程语言的选择成为了个人的爱好而与目标无关。我在想,这是否敲响了windows.net市场上c++的丧钟?
visualstudio.net实际上为不同的市场段准备了不同的部件。为标准的台式机、服务器市场准备了标准的visualstudio.net;而为嵌入市场准备了embed visualstudio.net,一种小型的visualstudio.net,它很像visual basic和vbscript的关系。
visualstudio.net的工作基础是clr、xml和soap,这些都还是不太确定的东西,它为visualstudio.net的前景增加了一些变数。
visualstudio.net中的各种语言,都和其前代大不相同。visualbasic.net几乎是完全重新设计的;visual c++的变化也十分的巨大,虽然语言级没有多少变化,但是其类库则完全重新设计;c#则是一种全新的编程语言,它和java比较接近,但只是形式上,我认为,它是比java更好的java,而且是最没有包袱、最易于和clr结合的编程语言;至于java.net,除了继续支持原来的visual j++的用户和利于java程序的移植外,我看不出它有多大的用处;谈到java程序的移植,我觉得不太容易,毕竟双方的体系结构的不相容要远远大于其语言的相似性。
无疑,visualstudio.net是windows.net的开发利器,但是其和前代的巨大差异和所导致的开发人员的重新学习,使得人们对它的可接受性产生了一定的怀疑。
说句实话,visualstudio.net使得几乎所有的windows软件编程人员都变成了初学者,当然起点是不会一样的。这就是为什末我强调技术的思想,而不是技术的细节。技术不能够没有细节,但是过份专注于细节,在总是变幻的it市场,将使人们陷入虚无。
顺便说一句,我的爱好是历史(真正的历史,不是随便让人改的政治),而不是软件技术。人应该有些寄托,总不能最后要末是半吊子,要末都出家了。
不好意思,又扯得太远了。谢谢各位。
software_young 编辑于 2002-02-01 13:47
----------------------转载结束----------------------------