从VB6到VS 2008(C#或VB)

Ali*_*xel 2 .net visual-studio-2008 visual-studio

我现在已经开发了超过6/7年的网络,在此之前我开发了大约一年的Visual Basic 6(我当时很满意)和C#上一两个月(我忘记了我学到的大部分内容).

问题是我对一些小型桌面应用程序有一些想法,我想用Python开发但没有一个可用的GUI框架让我在开发VB时能够轻松使用,所以我将开始在Visual Studio上开发再次.

我目前对.NET的了解非常有限,什么才能让我重回正轨?我应该在C#和VB之间选择什么语言?我在哪里可以找到参考资料和教程或书籍?

提前致谢

Dav*_*vid 9

不要参与语言圣战,但我和五个开发人员一起工作,他们从VB6到.Net,再加上我自己.这不是很多,但我所看到的对我们所有人来说都是正确的.

这两种语言都非常好,我个人没有偏好.我觉得两者都同样舒服,我真的不认为要么优于另一个.

但是根据我所看到的情况,当转移到.Net时,你最好只从一个原因开始使用C#..Net开发更多的是学习和使用类库,而不是语言语义.VB6通过在语言规范中加入shortcust来隐藏其中一些内容.

当您学习的语言与您已经完成的语言不同时,您更有可能寻找"正确"的方式来做事.

微软做了很多工作,使VB6开发人员可以轻松使用VB.Net,因此您可以在VB.Net上轻松编写代码,与VB6中的代码非常相似.这意味着很容易依赖"快捷方式"并将不良习惯带入您的.Net开发中.因此,您会看到那些没有真正"获得"ADO.Net之间差异的人及其程序因此而导致性能和设计问题.

几个小时后根据评论添加

我只想澄清一点,我并不是说VB不如C#.正如所指出的,两者都编译成相同的MSIL,两种语言都很好.我所说的"VB6'带来了坏习惯"可以用一个例子来澄清:

我工作的五个中的两个在代码中做了同样的事情.他们需要从数据库中获取记录并循环遍历它们,以便对数据执行一些操作.正常的做法是将DataReader DataAdatpter与DataTable一起使用并循环使用.但是,它们都创建了一些数组变量并循环通过DataReader结果并将它们分配给数组数组,然后循环遍历数组进行计算,这意味着它们不仅添加了不必要的计算周期,还采用了项目在一个可以用类似的东西加入的集合中

Dim FullName AS String = CurrentRow("FirstName").ToString()  + " " + CurrentRow("LastName").ToString()
Run Code Online (Sandbox Code Playgroud)

to(假设ar是数组变量而i是索引器)

 Dim strFullName AS String = ar(i)(3).ToString()  + " " + ar(i)(4).ToString()
Run Code Online (Sandbox Code Playgroud)

他们的方法有效,但增加了额外的周期,使代码更难理解.我问他们每个人为什么这样做.其中一个人希望能够在连接关闭后使用数据,这样他们就不会意外地更新某些内容.这是您需要担心的RecordSet,而不是DataReader或DataAdapter.这显然是有人没有理解VB6的做事方式和ADO.Net之间的区别.另一个人对阵列感觉更舒服,因为她熟悉它们.

所以我的观点与一种语言比另一种语言"更好"无关.这将是傲慢的,也是不知情的.从功能上讲,你可以用另一个你不能做的事做.我喜欢前面提到过的一些VB.Net"快捷方式".(VbNewline vs System.Environment.NewLine和整个My命名空间,InputBoxes等).

我的观点是,当学习一些完全不熟悉的东西时,你不太可能被自己的先入之见所抛弃.当我们从VB.Net商店转到C#商店时,我们看到这样的事情就消失了.它有NOTHING做的语言,一切做的开发商被迫正确,而不是学习的走捷径.

所以,出于这个原因,我仍然坚持我的原始建议,但无论如何,如果你喜欢VB,那就去吧.并且不要担心任何人"低头"使用它.所有这些"我的语言比你的语言更好"的东西都是胡说八道.有些语言比其他语言有优势,但在.Net世界中,在VB与C#的争论中,两种语言实际上都非常接近,没有太大区别.这场辩论毫无意义(并且长大了)就像"我的爸爸可以打败你的爸爸"这一论点.