开发ASP.NET选用C#还是 VB.NET ,那一个更好

chb950006 2006-12-02 12:32:25
我有VB6.0基础,曾经几时,用VB开发过软件,现在要开发ASP,请问用什么语句更好,各有优势,分别说明!
...全文
1052 59 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanzhiyong 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 chb950006 的回复:]
我有VB6.0基础,曾经几时,用VB开发过软件,现在要开发ASP,请问用什么语句更好,各有优势,分别说明!
[/Quote]


开发ASP你能用C#开发。。无语、、、

貌似你是说开发ASP.net 吧。。那就用C#吧。。这样网上源码也多点。主要是C#简洁的代码,优美的语法。
看起来爽。
i3738393 2010-06-19
  • 打赏
  • 举报
回复
區別不大,個人所愛
qianjiu 2010-06-19
  • 打赏
  • 举报
回复
序:
在网上经常能看到 一些评论和比较C#、VB.net优劣的文章。其中绝大多数都认为:VB.net就没有它存在的必要,VB.net迟早要被C#取代。
确实,计算机语言不是很重要的,也许讨论它有点无聊。所以还希望那些“心中无剑”、“架构、思想至尚”的高手们口下留情。


关于VB.net与C#在功能、能力、面向对象的特性上,实在是难分伯仲。这个已是不争的事实。尤其是VS.net2005中,这两种语言已经达到了惊人地相似!

下面就通过三个大方面对这这两种语言进行比较:

一、语言的人性化区别

C#像傻男人,VB.net像聪明贤惠的女人
从代码的风格就可以看出。

例1. 声明变量时:
C#: int iTest ; //很直接的语气,类似于:擦汗!拿毛巾
VB.net Dim iTest As Integer ‘很委婉的语气,类似于:小王,给我拿条毛巾,我用它擦汗~
实现完全相同的功能,但有着很明显的区别。哪个更人性化、更易懂呢?

例2.语言的关键字上:
C#关键字:
using、this、void、base、abstract、sealed、virtual、switch、internal、static
相应的VB.net关键字:
Imports、Me、Sub、MyBase、MustInherit、NotOverridable、MustOverride、Select 、Friend、Shared

比较一下,C#的关键字比较冰冷,是具有一定“机器味道”的语言。
而VB.net的关键字,都是“人的行为”,“人的称谓”。
相信VB.net的语法更具亲和力,更易于帮助我们理解面向对象的特性。
qianjiu 2010-06-19
  • 打赏
  • 举报
回复
在过去的一年中,互联网上的各大讨论区或者电子邮件的讨论列表都对微软的VB.NET以及C#的各种优越性做了探讨。这些讨论围绕的主要问题就是,我应该先学哪一个,VB.NET还是C#?
  
    我写这篇文章的目的就是想帮您解决这个问题。我并不是想动摇你倾向哪一种语言而是想解决一些大家在基本问题上的疑惑,以便大家能够作出自己的决定,选择一种自己觉得用起来最舒适的语言。我将尽量避免讨论一些语法上的模棱两可的话,就像“C#的括弧太多了,”“VB.NET句子太冗长,”或者“我讨厌C#(或者VB.NET)因为它能(或者不能)区分大小写。”之类的话。评论语法的好坏是你个人品味的问题。相反,我将着重讨论一些我见到的关于这两种语言的技术方面的讨论。
  
    在C#方面
  
    作为微软公司最新的一种语言,并且由于它又是Java语言的小翻版,C#引起了广大的关注。
  
    人们看上去喜欢一种语言仅仅取决于它是最新的,程序开发者们总是喜欢用最新的工具工作。其它的一些选择使用C#的理由更为具体一些。
  
    领导潮流的东西总是无懈可击的
  
    “如果我正准备学一门新的语言,我还是应该学C#。”这也许也是你经常听到的言论。那些推理总是这样进行的:“VB6转变到VB.NET变化已经非常大了,以至于它基本上就是一门是新的语言。如果我无论如何打算学习新语言,我想还是学C#吧,因为它是特别为.NET类的库设计的。”
  
  这也是我听到过的关于这两方面的最苍白的争论。你也可以同样理直气壮的说,如果我无论如何打算学习新语言,我想还是学VB.NET吧,毕竟它也是一门新的语言。另外,让我们想想为什么VB.NET从其先驱者那里如此激烈地演变到现在的样子:它为了适应.NET类的库而被重新设计了。
  
    对比管理过的和没有管理过的代码
  
    “C#允许我写那些运行在CLS存储器控制之外的非管理代码,我可以直接访问存储器,并且使用指针。让代码自由地运行,包括使用存储器的管理,可以得到更高的效益。”这个观点有3个问题需要考虑:首先,我们不应该在Beta版本的开发环境下讨论性能问题。举个例子:在.NET的Beta1和Beta2版本之间有显著的管理代码运行速度的改善。第二,我们还不能把非管理代码比管理代码能获取多少利益量化,并且是否值得为了这些好处冒险。可以去看看Eric Gunnerson在MSDN上的这篇文章。第三,尽管VB.NET不能建立非管理代码,它能通过System.Runtime.InteropServices 名字空间的使用,来访问并工作于非管理存储器。
  
    C#有内置的XML文件编制器
  
    “C#编译器包括直接被嵌入成为源代码的XML文件编制器在内。如果我使用C#,我同时编写了代码并编制了文件。”使用过JavaDoc的人都知道,把你的文件编制加到你的源代码中是多么的有用。源代码和文件编制可以同时更新,因此至少在理论上讲,你的文档永远都不会过时。不过,以我的经验来看,相对少数的Java开发者还是在使用JavaDoc。这样,问题就变成“你将使用它吗?”如果你的对这问题的解答是“是”,你有足够的理由试试C#。
  
    关于VB.NET又怎么样呢?
  
    在很多真正的开发者看来,VB像玩具语言似的,从某种角度看,也确实是这样的。迄今为止,VB远比我们所知道的那两三个弱点更多。不过VB.NET确实是和C#同样强大的.NET开发语言。有些人说它更强大。
  
    VB.NET有内置的(插入特点)支持;而C#没有
  
    “VB.NET内置了很多东西像字符串操作(Mid, InStr, 等等)和类型转换(例如CInt)。C#缺乏这些内置的支持,所以,我所需要的东西,在C#中很难找到。
  
    如果你抓住这些你应该Mid 或者 CInt功能不放,而最终认为这就是VB.NET强于C#的证据,你最好去看看Microsoft.VisualBasic namespace。你将在那里发现大部分VB.NET内部命令和应用功能。这些功能在namespace中被保存之后,任何CLS兼容的语言都能使用他们,就像列表A中所显示的那样。这些例子削弱了我们的争论,不是吗?
  更好捆绑的支持就是不支持
  
    “VB.NET与COM实体的捆绑支持更好一些。”我也只是看到了一点点而已,并且我决定再也不在支持方面作任何推理。从我迄今为止所观察到的,这不是真的。C#和VB.NET必须采用runtime callable的包装以及等量的源代码来执行一个早期的实体。同样地,执行一个晚期的实体也需要相同数量的代码。
  
    B.NET使用IDE中的后台编译
  
    如果你不能找到其他的认为VB的开发环境好的例子,你至少不得不承认它的源代码编辑是很有特点的。你能一边打字一边字面上排除你的代码的错误。麻烦就是那些很弱智的编译错误信息框总是弹出来,并且如果你把你的喇叭声音开得过大的话,报错的嘀嘀声也许会吓到你。
  
    Visual Studio.NET避免了这种惊吓,直到你修改完成,并且处理了一些消极的错误,提示系统经过了微软的改进:他会在那些错误语句的下面打上弯弯曲曲的下划线。
  
    VB.NET背景编译程序/句法检验器非常复杂,而且很客气地指出你的错误。从某些方面看,它能更准确地告诉你如何修改你源代码中的错误。当C#有它自己的语法检查器,并且可以查出括弧的匹配,计算圆括弧的多少,显示丢失的分号,但是它还是不能像VB.NET那样使用简单。再继续讨论这两种语言的优越性确实会让我心烦的,不过微软的话确实是一个真理,那就是所有的.NET语言都是平等建立的。那些主张C#优于VB.NET的人(反之亦然)和那些攀比工资的开发者们一样错了。
  
    我要强调的是,那些有远见的技术公司不再会去寻找具有某种开发语言经验的程序员,而是去寻找那些有.NET类库开发经验的程序员。因此我劝你不要过分的担心自己的选择到底是什么:随便找一个你觉得有兴趣学的语言,认真地学好他的框架结构就行了。
  
    如果你最终认为我是错的,并且市场也不要求你一定要选择一种语言,那你就尽管嘲笑我吧。
qianjiu 2010-06-19
  • 打赏
  • 举报
回复
用过VB.NET 的人一般都会喜欢上他,用C#的人,基本是出于盲目的跟风!
不是我说VB.NET 和C# 谁要谁不好。只是用C#的程序员为什么老是说C#是战略核心呢?什么C#专为.NET 设计的 ?C#的出现只是为了对抗Java!
VB的对微软来说就像是祖宗一样,VB作为一个元老级人物,现在又是一个风云人物!在微软的分量怎么样,自己去看。
VB的发展历程可以看出,一次次更新,微软对其一次次升级,到今天看不出C#有比VB.NET 优越的地方,竟然还有人说VB.NET 会被抛弃?可以说C#被抛弃了,VB.NET还是依然存在的!只要微软在VB就在!一些跟风者并没有拿出事实来说明C#比VB.NET优越多少,只是一味的说C#是主流!你们不感觉这是很苍白的回答吗?
个人觉得不喜欢C#的地方
老是切换大小写
到处是{}
比如C#
}}
}
不想VB.NET 是
endif
endwhile
endsub
这让人明白谁是谁的,这才是有始有终!
还有就是一行代码结束以后都要加上分号; 一个字,麻烦! 我说这三点只是个人习惯。习惯用大小写或者加分号的,你们照用!
还有就是VB.NET的with语句 简直是太爽了
比如vb。net
with ds .tables("table1").row(0)
str = .item("ziduan")
str &=.item("ziduan2")
str &=.item("ziduan3")
end with
如果是C#那么只能这样写
str = ds .tables("table1").row(0).item("ziduan")
str &=ds .tables("table1").row(0).item("ziduan2")
str &=ds .tables("table1").row(0).item("ziduan3")
ZHUKY 2010-06-19
  • 打赏
  • 举报
回复
顶起 asp.net C# ,asp.net 比 vb 强大
ZHUKY 2010-06-19
  • 打赏
  • 举报
回复
顶起 asp.net C# ,asp.net 比 vb 强大
gxnnyzr 2010-06-19
  • 打赏
  • 举报
回复
.net里两者是一样的,没有什么区别
lcomplete 2010-06-19
  • 打赏
  • 举报
回复
看习惯 、、、、、、、、

新群 DotNet Programmer 群号 112850311
本群新开,欢迎dotnet程序员加入,我们致力于营造一个好的学习交流氛围,不管你是高手还是菜鸟,只要你虚心好学,我们都诚挚的欢迎您。
bwangel 2007-04-18
  • 打赏
  • 举报
回复
c#->vb只是把 counter++ 写成 counter=counter+1
把counter+=3写成counter=counter+3
把 int i 写成 dim i as integer
再把{}换成function end function之类的
zhuawang 2007-04-17
  • 打赏
  • 举报
回复
不为别的,C#的资料好找,用的人多,你用vb.net的话以后当你遇到问题要找资料的时候,找出来的都是C#的代码,那时你就晕了
xiaoliangwh 2007-04-17
  • 打赏
  • 举报
回复
帮顶
  • 打赏
  • 举报
回复
公司的BOSS说用什么就用什么!
如果没要求的话,用哪个开发快就选哪个,虽然我是用C#的,但是要说一句,VB.NET在美国用的人多了去了!
#########################
我们做外包的.国外的项目基本都要求vb.net,不让c#做
guohua2208 2007-04-17
  • 打赏
  • 举报
回复

公司的BOSS说用什么就用什么!
如果没要求的话,用哪个开发快就选哪个,虽然我是用C#的,但是要说一句,VB.NET在美国用的人多了去了!
liu_ff123 2007-04-17
  • 打赏
  • 举报
回复
用C#好
gui0605 2007-04-17
  • 打赏
  • 举报
回复
谁说VB淘汰哦???
我跟他急。。。


------------------------------
LZ,选一个你熟悉的就行了
效率方面,鉴于.NET的运行机制,都差不多的
没必要刻意让一些不成熟的言论而左右自己
  • 打赏
  • 举报
回复
- -;
VB6.0 和 VB.net 基本上完全不同了...
C# 和 VB.net 我感觉上没什么的不同 ...
####################################################33
同意,鄙视不懂装懂,说vb.net不行的
bwangel 2007-04-17
  • 打赏
  • 举报
回复
在.net框架下什么语言实现的功能都是一样的,表达方法不同而已. 但是我认为C#的表达方法更适合于面向对象,因为它是全新设计的, 就好象一家新开的公司, 有很硬的后台老板,什么东西都可以换全新的. 这个和VB不同, VB是一家老字号,也很有后台.但里面的东西过于陈旧了.
remymartin 2007-04-17
  • 打赏
  • 举报
回复
各位,别说VB比不C#,
VB可以用REDIM重新定义数组长度
可以用ISNUMERIC()判断一个值是否是数字,
可以用ISDATE判断一个值是否是有效日期
但C#里没有

其实无所谓,我两种都会用
喜欢什么用什么,习惯什么用什么 但别说别人用的比不上自己的
tor_sun 2007-04-17
  • 打赏
  • 举报
回复
谁说不会C就不能学C#了 ,直接学也可以啊,建议学c#,因为。net里类库都是c#写的
加载更多回复(39)

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧