解析如何选择.net语言
.NET是微软的程序开发框架,能够写单机桌面窗口程序,web网页程序。还可以生成安装程序。特点是编写代码过程中,有很好地编辑环境,纠错提示等等。
.NET就是微软的用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。
在.net中,如何选择VB.net或C#?这似乎已经争论了很久。很多人盲目选择,也产生了许多流言和错误。本文将从以下方面指导你选择正确的开发语言。
功能上的考虑
许多人认为C#的功能比VB.net强大,或者C#更加适合.net等。其实这不是一两句话能比较清楚的。C#的确有VB.net无法完成的功能,但VB.net也有C#无法完成的功能。总的来说,对于.net开发,VB.net和C#没有任何差别,都100%兼容于CLS。下面列出的是他们语言功能上的不同,这些仅仅是语言实现上的问题,不会影响到生成的代码。打*号的内容与CLS不兼容。
C#有而VB.net没有的功能:
1、 运算符重载。
2、 不安全代码(指针和固定内存区)。
3、 无符号整数。
4、 移位运算。
VB.net有而C#没有的功能
1、 即时编译。
2、 静态事件绑定。
3、 条件异常捕获。
4、 COM兼容类。
5、 宽松的类型检查和变量声明。
6、 Visual Basic Runtime库。
7、 可选参数、带参数属性、模块等语言特征。*
8、 动态数组。*
可见,实际上功能更强大的是VB.net而不是C#。不过它们不一样的地方多半是无关紧要的特征。总体上来说,不应从功能上选择VB.net或者C#,因为他们没有什么具体的差别。
性能上的考虑
性能是程序员最关心的问题。VB.net和C#都生成一样的IL,因此理论上说不会有性能的差异。但许多人为什么说C#的性能高于VB.net呢?这是因为VB.net支持即时编译,就是一边书写代码一边编译。这样可立刻发现语法错误,使调试变得更加容易。但是这样一来VB.net就需要随时浏览整个代码文件,并把临时数据储存。这造成VB.net生成的代码中常常具有冗余部分。但也不能就此下结论说VB.net比C#慢,当用户选择打开优化并且以Release方式编译工程,就能得到与C#一样简短快速的代码。
学习上的难度
这部分不仅仅初学者需要考虑,那些从现有开发工具转移到.net的开发人员也需要考虑。首先,VB.net和C#都是非常简单的,对于初学者来说,VB.net提供伸缩性更强的空间,因此比C#更加易于接受。但这只是相对而言,C#对于初学者来说也不会有太多的困难。
对于使用Visual Basic 6或其他版本的程序员来说。VB.net的语法显然要比C#更加接近VB 6,网上流传的VB与VB.net差别被过分夸大,使部分程序员退缩。其实VB.net增加的只是面向对象的思想,许多VB程序员不具备完善的面向对象编程开发经验,因此觉得VB.net难以接受,这是很容易克服的。想想看,即使你要使用C#不也得学习面向对象吗?至于有C/C++/Java经验的人,C#是小菜一碟。刚才说过C#和VB.net实际上都很简单,所以不见得VB程序员学习C#就要比C/C++程序员来的困难,反之亦然,有C/C++经验的人也可以果断的选择VB.net。
移植现有代码
这一部分是程序员最头疼的部分。但对语言选择有决定性的意义。
从VB 6移植代码的程序员,最佳选择就是VB.net,因为其他.net语言没有一种是与VB相似的。而且即使VB 6的工程移植到VB.net非常困难,也有一个移植向导可以帮助你完成大部分工作。如果手工把他移植到C#,需要白白花费大量的时间。而且刚开始使用C#的VB程序员通常都会为C#缺少他们熟悉的函数而头疼。VB.net不会出现这种情况。
从ASP移植到ASP.net,首选语言仍然是VB.net,因为多数程序员使用的ASP语言是VBScript,只有VB.net最大程度地接近这种语言。
C#对于移植代码似乎没有作用,了解C#的人都明白,把现有C/C++代码放到C#中运行几乎是100%不能通过的。所以,如果需要移植C/C++代码,最好使用Visual C++.net。他做到了最好的新旧结合。C#仅仅用于编写新的.net应用程序。
如果需要从Java移植代码,C#可以选择。同时还有J#及其他一些MS提供的转换工具。
文档和资源方面的考虑
在MSDN文档中,C#和VB.net是同等看待的。所有文档和例子都是有VB.net和C#两份的。因此,在寻求资源方面都不用担心。互联网上的资源,C#要多于VB.net,特别是国内,有倾向于C#的潮流。但是ASP.net的资源VB.net较多。国内缺乏VB.net资源是影响VB.net推广的重要原因。但是在国外有很多非常成熟的VB.net技术,如掌上设备的开发技术。
代码风格和杂项问题
C#书写的代码比VB.net平均短小20%,许多人不喜欢VB.net中过长的关键字。当然他们可以选择C#。但在开发环境中,VB.net的自动完成功能比C#更完善,其实30%的代码都是自动补充的。因此,实际上VB程序员不会比C#多打多少字。但VB.net换行比C#麻烦,如果需要书写大量繁杂而长的代码,最好选择C#。VB.net的代码接近完整的英语,比C#更加易读。如果是初学者不妨选择VB.net。
vb.net其实并不比c#差,它们属于同一种级别的语言,主要由于vb.net是作为vb6.0升级版,而对于c家族来说,vb属于入门级语言,所以自然而然的认为vb.net比不上c#;但了解vb历史的人知道,vb从融合.net技术后,已经属于一种新的不次于其他高级语言的语言;
2014-02-09 上午 1:44很多.net程序员都觉得建立在.net框架下才能使用这些语言编译出来的软件带给客户很大困扰,其实微软已经有了明确目标,随着对xp系统的放弃,win7以及之后的系统都内置了相应的.net环境,当新系统普及后.net类语言的优势将会显现出来,但xp毕竟是经典的,可能不会完全被替代,所以,我觉得vb6.0配合vb.net来使用也是个不错的选择。