透过藩篱看微软的Visual Studio.NET

类别:Delphi 点击:0 评论:0 推荐:
 

 

作者:Steve Scott  编译:SnowedForest

能在一本经常被狂热的DELPHI开发者阅读的杂志上发表关于 Microsoft Visual Studio文章,既可以看作是一个天赐的良机,也可以是一杯毒酒。当我写这句话的时候,我也还不知道我自己究竟是何观点。 但作为一名开发者,我一直持这种态度:在工作中我要用最好的开发工具。在过去的六年中,我几乎都在用DELPHI。即使我们在用其尝试实现最新的MicroSoft技术(像COM,MTS,Asp和ISAPI等),我们仍旧可以坦白地说,我们正在使用最棒的工具,这也是我钟爱这个开发工具的明证。随着VS7,也就是现在所说的Visual Studio.NET(VS.NET)清晰地出现在我们的面前时,我们还能保持这种观点吗?

在我们研究VS.NET的细节之际,我想陈述这样一个事实:在VS.NET今年晚些时候发布之前,我几乎能描述出下一个微软开发环境的具体形式。(因为)VS.NET Beta 1早在2000年11月之前就可以免费获得了。在公共新闻组中,开发组成员经常出现,同时任何人都可以报告他们所发现的BUG。

    这与BORLAND对Beta版处理方法相比,区别太明显了。如果你认识的某个人正在测试DELPHI6的Beta版,他们可能都没向你提起过,更别说和你讨论这个产品了。我相信BORLAND公司这种对软件发布方面的处理方式有充分的理由,但我还是不能理解他们。尽管我与微软毫不相干,并且事实上我也从未用过VisualStudio的当前版本,但我真的想为它的下一个版本的发布做点事,在一定程度上能为它锦花添花。现在我觉得自己有点天真了,我虽然有机会让这个版本带有我所建议的特征,但这种希望肯定是非常渺茫的,不过这种参与感使得我很有可能购买这个产品。

    相比之下,我觉得我像是在这里守株待兔,坐等BORLAND来告诉我那些我在DELPHI6中想要的东西。不幸的是,对软件的(预先)感知在其发行成败中占了重要地位,就这一点来看,微软赢了。另外,尽管当VS.NET到来的时候DELPHI6很可能也开始发布了,但现在我却只能作一下VS.NET与DELPHI5的比较。

    那好,VS.NET与当前版本的区别是什么呢?截然不同,这多诱人啊。VS.NET不是对Visual Studio的改进升级。正如它的名字一样,它是为微软新的.NET构架而设计的开发环境。事实上,我认为除非你用Visual C++(顺便说一句,它可视化程序还不是很高),否则不可能开发出标准的以API为基础的应用程序。(我必须把FOXPRO排除在我的结论之外,因为我不知道它适合安放在这个环境的哪个位置)。VS.NET问心无愧地把.NET构架作为其目标,为解决各式问题提供了一条统一的道路,这是事实。最重要的是,你是否愿意把开发.NET框架作为首选。

  作为使用DELPHI的开发者,我们能与.NET构架比较的最接近的东西就是VCL了。微软花了大量时间(3年多)来开发一种语言-中性(间)对象(neutral object)封装Windows API。这种封装,或者说是构架,也拓展到了包括内存管理和异常处理在内的领域,在其它产品中也占了主导。简而言之,任何使用构架设计的语言将获得及时的垃圾回收和异常容错能力等功能,并且它也能充分利用和扩展任何其它.NET兼容的语言。

  首先,构架将作为Windows95,98,NT和2000的附加补丁予以发布,它将成为构成未来微软操作系统的一个完整部分。我们猜想微软在未来的某些时候可能不再公布Windows API,而只允许通过.NET构架访问操作系统。想到这一点,我们上面的疑团也就解除了-现在的问题不是你将来是否要开发.NET的应用软件,而是在你转向.NET之前还能坚持多久。这有点象几年前Windows3.1与windows95Beta版的对峙,我们对此仍记忆犹新。而 现实是,不管有些人以前曾经怎么说,现在几乎没人还在windows3.1下进行开发。

   正如你所看到的,,由于Visual Studio.NET与Delphi 5是针对不同平台的,所以拿来做比较是不尽合理的。当NET发布之时,Delphi 5所要做转变就像如同把Delphi 1变成Windows95的难度一样大。我提到,Borland没有正式宣布过任何关于支持.NET构架的计划,但有来自Borland的消息说Borland将支持.NET构架,并正紧密结合MS进行工作以确保Borland能完成此功能(支持.NET)(And yes, Mr Lawyer, we have permission to say so! Ed),然而,直至现在他们才作了一个正式声明,开始提供Beta版,但现在大家除了测试Visual Studio之外,在 .NET中还有多大的余地预留出来(为测试Delphi)呢?

  我摊牌吧:我说过我认为.NET是未来的希望,那么VS.NET提供了哪些东西以使我们来实现这个希望呢?这些产品包括VB.NET,它完全重新构建,当前的VB和它没有可比性;还有一种叫C#的新语言,以C++语言为基础但去除了其糟粕,又吸取了其它语言如JAVA,PASCAL等语言的大量精华。这两种语言功能都很强大,支持单继承、事件(以代理形式)和属性。我还没发现这两种语言局限之处,尽管我也没有特意去查找(我把这种事留给Dave Jewell吧)。

  所有的.NET 语言,包括VB和C#都要产生微软所谓的中性语言或者叫IL,这是必备条件。然后.NET公共语言运行时间(CLR)使用IL并产生机器码。这导致的结果就是在各种.NET语言执行时间的差异是感觉不到的,因为它们都使用同一个最终的Just-in-time编译器。

   因为语言所有的功能都由构架来提供,所以你究竟要选择哪一种语言(比较好)完全由你对该语言语法的喜好决定。我现在主要使用C#,它也是我们的老朋友-Anders Hjelsberg的杰作,.NET构架也是由C#写的。这里我要说一句令一些人感到不安的话:如果Borland逼我使用Pascal以外的一种语言,我认为用C#感觉不错。

  现在的Visual Studio .NET速度相当慢,又有点怪模怪样。但它还只是Beta版。其集成开发环境(IDE)使用起来也比较方便,但我得说我更喜欢DELPHI的IDE。我不想在这里展开一场关于IDE总的回顾,这只是想说假如我必须使用IDE,那它使用起来一定要方便,并且要比NotePad强得多。

   很显然,VS.NET支持众多的新工程类型,以此来支撑那些搭建在.NET构架上的新特征。以前那个凌乱不堪的ASP改头换面成了ASP.NET。微软一旦找到了某一技术的的替代品,就会把旧的舍弃。我不得不说微软很擅长这一点。ASP曾是微软网络开发的旗舰,而当ASP.NET到来的时候,显而易见,ASP有点笨手笨脚,使用不便了。言归正传,ASP.NET看起来真的不错,它已列入我将来开发工具的必选名单。对你自己服务器端的控制能力是一个值得深入研究的问题。如果你是一个从事网络开发,你必须关注这一技术。网络服务也是.NET重要部分,VS.NET使得对网络服务的开发变得轻而易举。微软认为网络服务是未来分布式应用程序开发的核心,这只有用时间来证明了,但(与此同时)我认为网络服务的应用领域非常广阔。

   直至此时,我主要集中讲述了关于VS.NET中可用到的新特性,这类特性在VS.NET中是很多的。不过,如果认为.NET只与因特网(Internet)有关,那就错了。.NET构架为传统的单层(single-tier)和多层(n-tier)开发提供了一个统一的构件主体。

   如同我们能通过开发自己的控件扩展Delphi的VCL一样,我们现在也能在VS.NET中作同样的事。这真让人动心。你可以继承一个标准.NET类,再用VB来扩充它,最后用C#来继承你的新VB类。当你调试的时候,调试器可单步通过VB和C#代码。在VS.NET中,语言将不再是障碍。迄今为止,唯一令我感到失望的就是没有.NET构架本身的源码。我不清楚将来会不会公布出来,要是能的话就好了。数年来,许多传统的微软工具的使用者对我们Delphi开发者(开发的应用程序)所具有的特色一直胡言乱语,但很显然,最终微软在某些方面将赶上来。

   总之,尽管有这么多的改进,VS.NET看起来仍很象Visual Studio(不过不要忘记这只是Beta版,谁知道最终的发布版本将会有哪些不同呢?)。然而,在当前用Delphi开发的传统Windows应用程序前面,VS.NET产生的应用程序将是一个令人耳目一新的事物和途径。

   我个人认为,在过去的六年中,没有一种通用Windows开发工具比Delphi更有活力,更实用。今天,随着.NET世界对我们的猛烈冲击,我怀疑是否有一种东西比.NET更有生命力。我希望Borland能在这个新的时期猛醒,不要过分被那个令人好奇的、但又带有商业色彩的并且令人怀疑的(我个人观点)Linux之类的玩意儿搅得心猿意马了。

   我将来要开发.NET应用程序,如果我要这样做的话,我将使用VS.NET。但我更愿意看到Delphi.NET。由于微软已将这项技术发布多时,所以在它发布这前,让人感觉就好象它早就来到我们中间。这就比较麻烦。这意味着Borland 必须加快工作进度。我再强调一次:快。我们早已看到,Paradox and dBASE for Windows这样的开发产品就曾被来自微软的竞争者远远抛在后面。

 后记:这是在Delphi6发布之前翻译的,本来不想放上来,一是因为翻译水平有限,让大家见笑;二是我也很喜欢Delphi,不想让DELPHI FUNS看了和我一起有同样的感受。但还是放上来了,希望对大家有点借鉴作用。

本文地址:http://com.8s8s.com/it/it5796.htm