我应该将VB.net或C#用于桌面应用程序

即时通讯来自unix / server / c ++ / java背景,没有GUI经验我需要构建Windows GUI应用程序,我需要快速构建它我被告知.net系列是这样的工作的确切事情。 但是有VB.net和c#应该选择哪种更快更好的工作呢? 没有教学用户安装和部署最终产品会更容易

就可用内容而言,它们完全相同。

也就是说,如果你来自C ++ / Java背景,我会推荐使用C#,因为学习曲线要​​小得多,你不需要学习全新的语法。

就部署而言,使用OneClick(如果适用)的.NET应用程序非常容易被非技术用户使用。 它归结为“转到我的网站并单击安装按钮”。 从开发人员的角度来看,它通常也不比那更困难。 Visual Studio还提供了制作传统安装包的选项。

简短的回答是没关系。

在function方面,.NET框架提供基类库,运行时环境等。您可以使用您选择的任何语言。 您可以使用VB.NET,C#或任何其他一流的.NET语言完成相同的操作。

但是,由于您来自C ++ / Java背景,您可能会发现C#语法比VB.NET更熟悉。

Jeremy D. Miller引用了一句话 :

VB.Net和C#基本上是国家和西方。

完美地解释它,不是吗?

VB.NET与C#的问题几乎是一场宗教战争。

它们在允许你做的事情和你能做多快的事情上非常接近。

看到你有C ++背景,C#可能看起来更熟悉,但你仍然需要学习。 您使用VB.NET的学习曲线会更加陡峭。

对于部署问题,您的用户需要安装相应的.NET框架。 它存在于1.0至3.5 SP1的版本中,4.0关闭。

  • Windows Server 2003预安装了.NET 1.1
  • Vista / Windows Server 2008预装了.NET 3.0
  • Windows 7预装了.NET 3.5

这些语言几乎与您想要的相同。 我会说使用C#作为你的C ++背景将允许使用C#比VB.net更浅的学习曲线。

选择C#因为:

  1. 它拥有所有.Net语言中最好的工具支持。
  2. 你是一个C ++人。 你会发现它的语法比VB更容易适应。
  3. 就基于GUI的桌面应用而言,VB与C#没有特别的优势。
  4. 因为它更受欢迎,所以学习C#将certificate你的职业生涯更有成效。

语言几乎相同。 如果您使用Visual Studio(我建议这样做,如果您需要快速构建应用程序),那么两种语言的GUI设计体验将是相同的。 同样,VB.NET和C#的安装和部署过程也没有区别。

因此,除非您需要一些仅由其中一种语言支持的特定function(如C#中的多行lambda或VB中的XML文字 – 您可能不需要一个简单的GUI应用程序),随意选择一个你的语法比较熟悉。 由于你有C ++ / Java背景,我想这意味着C#。

我会说因为你的背景,请使用C#。

真正的两种语言最终会做同样的事情,你最终会随着时间的推移阅读这两种语言。 但是C#是前进的方向,据我所知,我不得不说C#开发人员比只知道vb.net的人有更多的工作机会。

如果你来自纯vb6背景,VB.net可能更容易学习,但我发现大多数具有一点JS经验的Web开发人员可以轻松地获取C#语法。

当您考虑学习.net时,您应该掌握框架,因为了解哪些框架类可以重用以及何时对作为.net开发人员的整体技能非常重要。

就能力而言,两者或多或少相同 – 存在一些差异,但在一般情况下这些差异并不太大。 在向用户部署应用程序方面,它们是相同的 – function在框架中而不是语言。

因此,有两种方法可以看出这一点:1)使用C#,因为语法很熟悉,你不会把自己绑在试图忘记添加a的结上; 在声明的最后或2)使用VB.NET,因为它不同,所以你将更少努力找出你正在工作的环境。

实际上我会使用C# – 在C#中可能有比在VB.NET中更多的样本,如果你已经可以应对C ++和Java之间的交换,那么添加第三种类似的语言可能不会太紧张。

我们在asp.net vb.net中进行编程,但有时我们在C#中找到算法,并且我们没有将它们转换为C#的问题。 C#是专门为.NET创建的,但我还是告诉你为什么更好。 在webforms中,您可以用一种语言编写一些页面,用其他.net语言编写其他页面,我们在一个基于VB.NET的项目中编写了几个C#页面。 如果你必须做一个基于webforms的应用程序,你可以尝试两者,但如果你不需要做webforms我不建议在winforms上使用它们

在上一篇asp.net书中,我们读到他们将代码示例从VB.NET切换到C#,因为现在大多数人都使用C#for .NET。 我们使用VB.NET是出于微不足道的原因,因为任何.NET语言都共享基类库,我们只想避免键入“{”,“;” 和案例敏感性