gpt4 book ai didi

.net - 从VB6到VS 2008(C#或VB)

转载 作者:行者123 更新时间:2023-12-01 06:37:55 25 4
gpt4 key购买 nike

我从事Web的开发已有6/7多年了,在此之前,我在Visual Basic 6上开发了大约一年(当时我对此很满意),在C#上开发了一两个月。 (尽管我忘记了大部分学习内容)。

事情是我对一些小型桌面应用程序有一些想法,我想到用Python开发,但是没有一个可用的GUI框架使我在开发VB时拥有的易用性,所以我将开始在Visual Studio上开发再次。

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

提前致谢

最佳答案

不参与语言圣战,但我与五位从VB6到.Net以及我自己的开发人员一起工作。数量不多,但是我所看到的对我们所有人来说都是正确的。

两种语言都非常好,我个人也没有偏好。我对两者都感到同样舒服,而且我真的认为任何一个都不比另一个优越。

但是仅基于我所见,当移至.Net时,最好仅出于一个原因而从C#开始。 .Net开发更多是关于学习和使用类库,而不是语言语义。 VB6通过将简短版本放入语言规范中来隐藏其中的一些内容。

当您学习与已完成的语言不相似的语言时,您更有可能寻找“正确”的做事方式。

Microsoft为使VB6开发人员更容易使用VB.Net而做了很多工作,因此您可以非常轻松地在VB.Net上进行编码,就像在VB6中所做的一样。这意味着,依靠“快捷方式”并将不良习惯带入您的.Net开发非常容易。因此,您会看到没有真正“得到”诸如ADO.Net中的差异之类的人,因此他们的程序会产生不良的性能和设计问题。

几个小时后根据评论添加了

我只是想澄清一下,我并不是说VB不如C#。如前所述,两种语言都可以编译成相同的MSIL,并且两种语言都不错。我所说的“VB6's养成不良习惯”的含义可以通过一个例子来阐明:

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

Dim FullName AS String = CurrentRow("FirstName").ToString()  + " " + CurrentRow("LastName").ToString()

到(假设ar是数组变量,而i是索引器)
 Dim strFullName AS String = ar(i)(3).ToString()  + " " + ar(i)(4).ToString()

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

因此,我的观点与一种语言比另一种语言“更好”无关。那将是自大,也将是无知的。从功能上讲,您不能在一个中做很多,而在另一个中做不到。我喜欢我前面提到的一些VB.Net“快捷方式”。 (VbNewline与System.Environment.NewLine以及整个My名称空间,InputBox等)。

我的观点是,当您学习完全不熟悉的内容时,您不太可能被自己的先入为主。当我们从VB.Net商店切换到C#商店时,我们看到这样的事情消失了。它有 NOTHING 与语言有关,而 EVERYTHING 与开发人员被迫正确学习而不是采用捷径有关。

因此,出于这个原因,我仍然坚持最初的建议,但无论如何,如果您喜欢VB,请选择它。而且,不必担心有人会“看不起”您使用它。所有这些“我的语言比你的语言更好”是胡说八道。某些语言比其他语言更具优势,但是在.Net世界中,在VB与C#的辩论中,两种语言实际上是如此接近,以至于没有太大区别。这场辩论就像“我的爸爸可以打败你的爸爸”一样毫无意义(而且长大了)。

关于.net - 从VB6到VS 2008(C#或VB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com