所以,我不希望它在C#和VB.NET开发人员之间陷入激烈的争斗。这纯粹是从开发部门的角度出发。我们多年来一直是VB.NET公司,但这主要归功于我们雇用的人。由于我们吸引了2位专攻C#的人,因此这项要求最近已经不再适用了。在转换为这家公司的VB.NET之前,我曾经是一名C ++ / C#人。
那么,对于每个必须处理这个问题的人来说,无论是在招聘的基础上还是在可维护性的基础上:你如何处理未来选择的标准化语言?我倾向于推动C#,因为这将使3个坚实的C#开发人员在这里。但只是好奇每个人对此的看法。
答案 0 :(得分:15)
作为在混合商店工作的人,使用两者并不难。但它有一个标准,可以更容易地来回移动代码。以下是您的标准的一些想法:
对于VB开发人员:
Convert.To___()
函数,以便于转换到C#和从C#转换。Option Strict
和Option Explicit
。你会放弃一些动态类型的酷炫,因为它是一个强烈的建议要求,但是值得保持代码与C#平价。AndAlso
和OrElse
优先于And
和Or
对于C#开发人员:
SomeType sometype = ...
)基本相同的名称。告诉他们使用_前缀代替(而不是“m_”)。无论如何你应该这样做,但在混合商店中这一点尤其重要,因为在VB中使用该代码将更难。对于两者:
如果你这样做,两组代码之间几乎没有真正的区别,你已经迈出了教导VB开发人员像C#开发人员一样思考的第一步。
答案 1 :(得分:9)
如果您有很多已经用特定语言编写的代码,请选择该语言。
否则,如果你有更多的开发人员精通一种语言而不是另一种语言,那就更喜欢这种语言了。
否则,更喜欢C#(它通常更受欢迎,而且功能方面它们没有足够的差别,只能对功能做出有意义的选择。)
答案 2 :(得分:8)
在之前曾在VB中编写过关键任务应用程序的客户端,他们开始发现找到VB程序员而不是C#更加困难。
所以他们决定开始将他们的应用程序切换到C#。
与大多数IT / Dev问题一样,答案取决于它。如果您的部门中有更多人使用VB,那么请使用VB。我不认为其中一个比另一个好得多。
答案 3 :(得分:5)
您提出的问题实际上非常重要,而且有太多人会告诉您语言选择只是个人偏好。但是你已经知道,从组织的角度来看,这不是真的。选择一套标准的框架,语言,工具等是一项重要的商业决策。
您的程序员应该能够使用任何一种语言,只需要一点时间,鼓励,也许可以进行一些培训。 C#和VB很接近,没有明显的技术理由可以选择其中一个......
所以我的建议是根据业务原因选择您组织的语言。如果雇用C#人员更容易,或者如果你发现他们往往拥有更好的技能组合,你可以为C#获得一分。如果您为客户编写代码,并且这些客户更喜欢C#可交付成果,那么为C#评分另一个。如果VB中有现有代码,则为VB获得一分。
这应该是一个非常简单的细分......只是忽略技术原因,专注于语言选择如何影响您的业务,包括招聘,培训,交付给客户的能力等。
答案 4 :(得分:5)
如果您的公司采用C#有一个理由,那就是lambda运营商。如果没有VB.NET中lambda运算符的完全支持,一些最好的工具就会变成残缺或DOA。例如:Fluent NHibernate,StructureMap等。
答案 5 :(得分:4)
几年前,我们对c#进行了标准化,因为c#似乎在认真的开发人员中有更多的追随者。
让我明确一点,我并没有对VB.NET或使用它的人说任何坏事。
答案 6 :(得分:3)
这完全取决于您拥有的开发者池。
答案 7 :(得分:3)
答案 8 :(得分:2)
在纯粹的功能基础上,它们可以接近两种语言。 VB.NET倾向于获得更多的COM交互性并具有文字XML - 但C#很快就会得到一些。
这实际上只是个人偏好以及您认为团队效率最高的语言。
答案 9 :(得分:1)
听起来你已经有了一个标准 - VB.NET。也许你很想进入C#而不是感兴趣。
将一半的系统用VB编写,一半用C#编写是没有意义的 - 尽管根据组织的性质,这可能不适用。但一般来说,组织不应轻易采取这些改变。
如果我是你(你有兴趣自己转向C#)那么我会推动C#,但如果我是公司,那么我需要一个很好的理由来介绍这种新的复杂性,成本和价格。管理问题。
答案 10 :(得分:1)
我们最近遇到了同样的问题。我们实际上只是根据原始项目的开始编写代码。来回切换非常容易,特别是使用Visual Studio(当我开始输入“bool myvar ...”时,它总是“提醒”我如果我在.vb文件中,那么做错了。
我们的优先事项如下:
答案 11 :(得分:-1)
有充分理由选择一种标准而不是另一种标准应该是指导因素。使用这些: