C# Builder VS. VS.NET:如何选择?

动E论坛(http://www.dong-e.com/bbs)lg_netarea翻译

    Borland的C# Builder的出现,意味着VS.NET现在有了一个真正的竞争对手。但对于你来说选择那一个开发工具来说才是最好的呢?
    正如我们所了解到的一样,C#Builder是基于C#语言的、用来开发.NET应用程序的完整的开发环境。它发布的时间仅比微软发布VS.NET晚了几个月。虽然两种产品都是针对相同的客户(即C#一发人员)、都具有相同的开发能力;但是它们又有各自的特点。既然你必须要选择其中一个,那么你想知道:C# Builder能够提供什么功能?与VS.NET相比怎么样?当然还包括为什么选择这一个而不选择另一个?下面我们将要回答这些问题。
    从表面上来看,C# Builder和VS.NET很相似。它们展现给用户的都是一个源代码编辑窗口,可视化窗口,属性菜单,工具栏,项目管理器和docking/sliding windows。C# Bukder给许多开发人员的第一映象就是它跟VS.NET很相似。然而,第一映象常常是一个误导。实际上,在你仔细研究后你会发现C# Builder有很多令人高兴而且有实用价值的地方。
    VS.NET的界面打开时在编辑器和设计器表面有一个标签视图,它能让你把编辑窗口分开以及移向多文档编辑器。然而C# Builder却采用了另一种方法,即不同的界面布局类型。默认的方式很像VS.NET,但是你可民把它改变成一种浮动窗口类型,这有点像Jbuilder和Visual Basic。另外在调试的时候C# Builder也使用一种特殊的窗口。
    从C#开发者的角度出发,这两个IDE工具开发.NET应用程序的开发能力没有什么不同。因为Borland从微软获得了.NET Framework SDK许可。也就是说C# Builder和VS.NET使用了相同的C #编译器和类库。你可以用C# Builder开发任何.NET技术,包括:Windows Forms,ASP.NET和Web Services。
    VS.NET的优点在于它能在多种语言开发,而不像C# Builder仅局限于C#语言,这些语言包括:C#,Visual Basic.NET,Managed C++和J#。C# Builder确实能让你在项目中存在VB.NET源代码,但它仅仅是为那些已经把VB.NET编码到项目中的人提供一种方便的附加的功能。
获取代码

当然,那些具有想象力的设计者和天才使用两个IDE工具来帮助自己更加快速的开发,我就是这么做的。但是代码编辑器是我花时间最多的地方。两个IDE工具都有可配置的语言着色和代码缩进,但是在代码的格式化、注释、定位和代码生成/智能化方面的不同具有关键的作用。
我们在测试一个IDE时,要做的第一件事就是键入代码。VS.NET的代码编辑器有自动缩进的功能,在开始下一条语句时将缩进一个制表符。如果当前的状态是缩进的,在键入一个块结束标记时,VS.NET将按适当的方式重新排列代码。C# Builder却不会这样,你需要使用Tab键来缩进;另外,在键入块结束标记时也不会自动排列。在VS.NET中另一个格式化特点是它能突出一个代码块,而且在你按Ctrl+K+F时能自动格式化整个块。或许我会被这些格式搞糊涂,但是我很喜欢这项功能,它能提高我的工作效率。
C#的一个最大的特点在于它的XML文档注释,这两个IDE工具在提取文件的文档注释方面都有相应的先项。VS.NET提供了对XML文档注释的自动支持。你要做就是在需要的地方标上“///”,VS.NET能自为文档注释生成一个模块。对于一个有多参数,一个返回类型的方法来说这种方式会好很多。VS.NET也提供了一个用来生成XML文档以便制作成HTML页面的文档生成工具。VS.NET的另一个特点是在按Ctrl+K+C时能对选定的行添加注释。相反的按住Ctrl+K+U能取消注释。在C# Builder的代码编辑器中,你必须自己键入所有的注释,而没有自动注释/自动取消注释的功能。
我很高兴能看到C# Builder能让你跳到一个申明,就像VS.NET一样。然而,他们在定位到代码的特定位置的方式不同,VS.NET使用对象察看窗口(Class View window)来查找类型和他们的成员。而C# Builder采用了原型察看窗口(Model View window)实现了相似的功能。成员列表框(在代码编辑时自动出现)这项功能在C# Builder中没有,但在VS.NET中我却经常用到,它能让你直接指向你想要的成员。
C#Builder和VS.NET都在编辑器中包含了一个敏感的与上下文相关的(context-sensitive)帮助功能,但是它们也有细微的差别。在VS.NET中,context-sensitive 帮助被称作IntelliSense,而在C# Builder中叫做Code Completion。当我们从列表中选择一个方法的时候,IntelliSense包含了一个方法描述,而C# Builder仅仅列出了其成员。另外,IntelliSense设计得十分巧妙,以至于以记住你使用最频繁的选项,并在出现时突出显示。虽然Code Completion没有设计得如此巧妙,但也能过滤出相关的选项显示在列表框中。另外的一些功能包括:支持新关键字,界面的自动执行,自动的委托执行和自动的覆盖执行等等在Code Completion中也没有。

具体细节

    C# Builder和VS.NET中的项目管理都能完成相同的目标,但是它们的方式却不同。C# Builder的项目管理窗口让你直接控制编译命令,但是VS.NET的方案管理器有一个各自的对话框,在那儿你可以指定编译命令。在基本原理上的主要不同的在于:如果你在两个项目之间创建了一个项目,VS.NET将自动确定编译命令和从属关系。但是C# Builder会让你自己维持你自己的编译命令。事实上我知道在VS.NET中偶然地糊乱修改编译命令会阻止你的项目开发,那就是你为什么要用项目参考以及让VS.NET来为那些事情分类的原因。由于C# Builder刚出来,所以还需要花时间来看看人们是否有项目管理方面的问题。在这一部分我已经对C# Builder一些考虑,同时也做了一些实验,但是我仍然不得不出现这些问题。
    两个IDE都提供了完事的帮助;你仅仅按F1就可以获得。C# Builder的帮助是从一个单独的窗口弹出的,而VS.NET的帮助则出现在IDE窗口中(其中还包括动态帮助)。幸运的是,如果你不想看到动态帮助你可以关闭它,或者隐藏在其它窗口后。
    对于设计者来说,C# Builder使用了与VS.NET相似的设计界面,因此对于可视化的用户界面设计你有相似的感觉。同样的,C# Builder的对象检查器也是一个经过改进的基于.NET Framework的基类库的属性网格(Property Grid)。
    对于两者来说,设计界面的不同在于C#Builder的工具栏(Tool Palette),它类似于VS.NET的工具箱。工具栏中列出了可配置的分类列表,在这个列表中你可以改变颜色,命令和选项的外观。VS.NET的控件放在一个可能滑动的列表框中,在代码编辑的模式下,工具栏显示列表的一段,这一段通常是经常需要用到的。VS.NET有一个剪贴板环(clipboard ring),其中包含了最普通的复制代码。对于C# Builder来说却不是这样,它是持久不变的,而VS.NET中的内容随着它的关闭将不存在。另外,C# Builder的工具栏有了一个搜索栏,它能根据你键入的控件名过滤控件。
    当打开文件时,VS.NET为每个文件打开一个新的窗口,当你在多文件的情况下工作时你的工作区很快将被占完,这是一件很让人讨厌的事。它的表单和代码也是分开的, 这使你不得不看着界面来找相应的代码。在C# Builder中,表单和代码被组织在了一起,你在工作区的底部使用标签方便的来回切换。另一个好的功能是每一个工作区窗口的关闭按钮仅仅是单一,而VS.NET需要你找标签,选择它,然后点击工作区右上角的关闭按钮。
    除了在.NET Framework中支持的SQK Server,Oracle,OleDb和ODBC之外,C# Builder还支持Borland Data Provider(BDP)。DBP是一个可扩展的数据提供者,它能让你使用相同的代码连接到多种数据库。当前的数据库支持包括:Borland InterBase,IBM DB2,Microsoft SQL Server和Oracle 9i。在完成本文时,Borland正在增加对许多新数据库的支持,在我看来,在可预见的将来,它将继续这样做下去。
    VS.NET和C# Builder都有代码浏览器来用查看个体之间的关系。但是C# Builder的专业版和更高版本还包括了一个叫做Model View的应用程序图表。它是基本标准的UML图表,能够让你查看应用程序各个对象之间的关系,从而进一步查看他们的内容,还可以在模式和代码之间导航。虽然这些仅仅是查看功能,但是它却帮助你怎么样把一个应用程序放在一起才是最好的。而VS.NET却没有这个功能。
    最后,C# Builder中还IDE中引入UML的建模技术,这项技术提供了一个在设计时的功能,即:开发者和建模者可以创建UML模型,同时它的代码也是更新过的。同样的,代码的改变也将立即引起UML模型的改变。没有内部的模型转换和描述就意为着在代码和模型之间有直接的相互作用。
    另一个让人兴奋的是C# Builder建模是企业核心对象,或者是ECO(pronounced eek0)。ECO是一个能在运行时建模功能,它是OMG(Object Management Group)MDA(Model Driver Architecture)所追求的目标。有了ECO,你可以创建新的模型或者导入已经存在的从其它建模工具创建的XML模型。ECO的主要功能包括:数据的持久性,数据处理,安全性和数据绑定等的支持。ECO模型也能适应由数据库计划引起的变化。VS.NET没有提供这一功能。

生命周期的管理

    Borland首先命名了应用程序周期管理(ALM),把这个管理工具包含到我们的项目中,我们能够协调我们的工作。ALM被分成了六个明确的阶段,包括:定义(Define),设计(Design),开发(Develop),测试(Test),配置(Deploy)和管理(Manage)。ALM的重要性在于:在C# Builder的环境下工具集合的整合和相互操作。例如:CaliberRM(在定义阶段需求分析管理的工具)被直接整合到了C# Builder中,以便把用户的需求直接与开发者相联系。ALM没指定一种特定的方法论,但是它描述了一种支持灵活过程的方式。
    VS.NET与其它微软的技术能整合得很好,如果第三方卖主获得了VSIP(Visual Studio.NET Integration Program)那么他们也可以整合。微软规定了MSF(Microsoft Solutions Framework),但是它在VS.NET中没有完事的工具和向导程序来创建像ALM这样的过程。
    在这篇文章中我还涉及到了许多方面,但是我选择了我认为最重要的问题。C# Builder和VS.NET在开你想要开发的各种.NET应用程序方面都是十分出色的工具,不同点仅在于你创建的代码。对于编辑代码,我喜欢VS.NET的源代码编辑器。但是从一个开发团队来看,对于整个开发周期来说,C#Builder在工具的完整性和有效性方面要出色得多。我个人的观点就是欢欣Borland进入.NET舞台,并希望C# Builder在将来的版本中有更多的创新之处。在.NET舞台的竞争中,毫无疑问,C#Builder和VS.NET的后继版本都将有更多令人惊奇之处,而这些方面正是为了提高开发者的开发效率。(完)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值