能否将VB.Net迁移到C#以在Mac上使用?

3

我刚开始学习编程,接手了别人用VB.Net完成的工作。

从VB.Net迁移开发有多难?我们所有的页面都是用VB编码的,但我想学习C#,然后用它继续开发。

我使用的是Mac,似乎C#在Mac上能更好地运行。


@Grant 是的,就我个人而言,我也这么认为 =),而且一年前我也会说同样的话,但是一个热爱自己所做的事情的VB.NET程序员也可以说同样的话。只是我的个人看法。请参见http://blog.stackoverflow.com/2009/03/stack-overflow-and-bizspark/(引用:“构建酷炫的东西比你用来构建它的螺丝刀品牌更重要”)=) - gideon
我不确定为什么这个问题被关闭了,因为它似乎更多是一个实际的问题,而不是哲学问题。例如,请看https://dev59.com/EHM_5IYBdhLWcg3wrFIt。根据你所使用的架构(例如,如果它很好),使用C#构建实质性的新功能可能非常容易。 - Jamie Treworgy
它之前被关闭了,因为在我编辑之前它是主观的,但现在我已经编辑过了并且使其不再主观,我需要让它重新打开。 - Jamie Taylor
好的。无论如何,您可以轻松创建与现有应用程序完美兼容的新类。实际上,这可能会引入一层复杂性(特别是考虑到您是初学者) ,这将比它值得的麻烦更多。如果您想要的话,我建议只学习VB并将C#用于新项目。在任何情况下,您所学习的.NET框架知识都将适用于两种语言。 - Jamie Treworgy
8个回答

3

这取决于你的个人喜好。许多老的VB开发者更喜欢VB.NET,许多从Java/C背景转过来的人更喜欢C#。尽管存在一些差异,但大多数都是微小的。


1

就 .net 而言,两者都没有更好的。C# 有一些特性,VB.NET 有其他特性。最终编译成相同的 IL,因此没有速度差异。大多数网站都有 C# 和 VB.NET 的示例,所以实际上是苹果或橙子。在您的情况下,我会建议您坚持使用 VB.NET,并保持所有代码库的一致性,这对未来的人们更好。另一方面,如果您使用 C# 进行开发,您将学习到它,也会学习 VB.NET,因为您现有的代码库是用 VB.NET 编写的。这取决于您。


1
我会推荐使用C#。不是因为它在任何实质性方面更好,而是因为在这个商业市场上,它是一项更优秀的技能。了解C#将使您有资格获得比VB.Net更多的工作机会。虽然VB曾经是一个巨大的技术,但C#已经大步领先。
那些可能会对.NET开发整体持怀疑态度的Java和C++专家肯定会欣赏某人选择C#而不是VB.Net。更重要的是,招聘人员和潜在雇主也会这样认为。我还相信,如今网络上的编码示例和解决方案中,使用C#的比例更高,这将使您的生活更加轻松。

回答你的第二个问题,从VB.NET切换到C#,我大约花了一个月才能掌握它,大约6个月才能非常流畅地使用。我不会担心这个转变,这是正确的决定。一旦你完成了这个转变,你将默认了解这两种语言,因为你已经了解VB(而且VB.Net也会对你来说容易阅读)。 - enforge
1
这假设他可以将个人利益作为主要决定因素。但在实践中,这通常是不可能的。 - steinar
他最初提出问题的方式使得它听起来似乎不需要做出技术决策。他甚至说他想用C#来完成它。因此,在权衡利弊后,我认为决定因素将是哪个选项对他而言是更好的长期投资。无论如何,我说“推荐”,因为最好只是一个观点 :) - enforge

0

如果你已经有了可以学习的VB.NET过去工作,我建议你使用它。两种语言本质上都没有更好的一种,所以选择你最熟悉的那个。这两种语言之间的差异曾经很大,但随着每个版本的发布,它们已经趋于融合。


0

当然,有很多事情需要考虑,但在核心上,这两种语言只是同一个东西的不同方面,因此没有哪种语言更好。

如果将来其他人会帮助您维护应用程序,在非常一般的情况下,更容易找到对C#编程感兴趣的人。此外,如果使用任何开放源代码附加组件,大多数都可以在C#中找到它们。语言不会阻止您将它们结合使用,因为它们编译成相同的内容,但您必须处理应用程序的一部分使用一种语言,而另一部分使用另一种语言。

如果这将是独奏演出,因为您刚开始学习编程,我建议您不要承担从VB.NET迁移到C#的负担。这几乎总是非常困难的,并且除此之外,通过维护现有的VB应用程序,您可以学到很多知识。


0

C#语法与许多其他广泛使用的语言(如Java或C++)非常接近,因此可能更容易处理它们。我认为你不能对VB.Net说同样的话。


1
这也是为什么C#在市场上是一项更有市场价值的技能的原因。 - enforge

0

编码的VB页面比C#规范更好。你需要一个更好的理由来转换一些已经工作的东西,而不仅仅是因为它是一种“更好”的语言。如果你刚开始这个项目,或者它是一堆垃圾,那么也许可以考虑。但是如果你还想在这之上学习一门新语言,那就更需要谨慎了。


0

这个问题总是主观的,很难给出一个确定的答案,因为有很多因素在这里起作用。两种语言都相当强大,尽管其中一种可能具备另一种没有的一些特性。如果这是一个大项目,你可能需要考虑你公司或地区可用的具备必要知识的开发人员数量。也许对于一种语言来说,更容易找到开发人员,而对于另一种语言来说则不然,但这可能取决于地点。选择使用哪种语言可能还取决于你或其他开发人员未来想要使用的语言。(我会选择C#,但这只是我的个人意见。)

鉴于应用程序已经用VB.NET编写,我猜继续使用它可能会更划算。请注意,你可以用C#编写新的库,即使主要的Web项目仍然是用VB.NET编写的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接