我最近从Linux开发转向Windows开发。和我一样多的Linux爱好者,我不得不说 - C#是一种美丽的语言,Visual Studio非常棒,现在我已经给自己买了trackball我的手腕已经不再使用鼠标了这么多。
但有一点我无法理解:成本。 Windows 7,Visual Studio,SQL Server,Expression Blend,ViEmu,Telerik,MSDN - 我们为项目的每个开发人员讲了数千个!你肯定会得到一些钱 - 我的问题是,它值得吗? [并非每个开发人员都需要上述所有工具 - 但您是否听说过任何人在没有Visual Studio的情况下编写C#代码?我已经在Linux上从事过大型软件项目,无需为任何开发工具付费。]
现在很明显,如果您已经是Windows商店,重新培训所有开发人员都不会付出代价。如果您正在寻找开发Windows桌面应用程序,那么您无法在Linux中执行此操作。但是,如果您正在开始一个新的Web应用程序项目,并且可以雇用您想要的任何语言专家的开发人员,您是否仍会选择Windows作为您的开发平台,尽管成本高昂?如果有,为什么?
更新:我不打算开始任何争论。我从答案/评论中获得了一些有价值的见解:
答案 0 :(得分:21)
Microsoft提供了许多免费的Visual Studio和SQL Server快速版本,甚至可以在商业上使用。在DreamSpark等程序中,学生可以下载例如DreamSpark。 Visual Studio 2010 Professional(完整版!)是免费的,因此不需要花费数十万来开发Windows应用程序。
SharpDevelop等其他IDE也是免费提供的,但它们并不像Visual Studio那样出色。但是,即使使用快速版本,也可以非常高效。
MSDN库也是免费的。我不能说Telerik控制是否证明他们的成本合理,因为我从未觉得有必要使用它们。
答案 1 :(得分:20)
与您在开发人员身上花费的相比,这些工具的成本很小。例如,您提到的大多数工具都包含在Visual Studio Professional with MSDN中,每年约800美元。
真正的问题是,您是否从这笔费用中获益。这很难回答,我怀疑这取决于您的开发人员以及您开发的软件类型。因此,不可能给出一个全面的答案。尽管如此,从雇主的角度来看,两者之间几乎没有足够的差异需要注意。
答案 2 :(得分:7)
成本可能没有您想象的那么高(取决于很多因素)。有BizSpark程序,还有Visual Studio,SQL Server等“快速”版本。
答案 3 :(得分:4)
以Windows 7为代价,您可以使用Visual Studio Express,SQL Server Express来创建应用程序。当然,这个版本的功能比“更大”版本要少,但它有编译器,IntelliSense和其他许多可以选择的东西。
既然你提到了Blend,我觉得你有兴趣使用WPF,我认为Mono替代方案并不完全成熟。
答案 4 :(得分:4)
自2002年以来,我一直是桌面和Web应用程序的全职.NET / C#开发人员,而且您列出的昂贵项目,我作为专业开发人员付出的唯一一个是Visual Studio。
当前版本的Windows的成本实际上与新PC的成本密不可分。 SQL Server Express是免费的,几乎可以满足所有与开发相关的数据库需求。不需要或使用Expression Blend。 ViEmu?我不会为像vi那样可怕的东西买单。没有使用Telerik的任何东西,我已经能够顺利通过。
当考虑到生产力的提高时,购买Visual Studio的副本远非对工具的非凡投资。
答案 5 :(得分:4)
它总是取决于您的项目细节,但在某种程度上它不是没有,可能不适用于Web应用程序。有很多人可以编写HTML / CSS,Javascript,SQL以及PHP,Python或Perl中的至少一个,因此开发人员应该相当丰富。每个都有一大堆框架,库和免费代码,您可以将它们全部以您喜欢的任何组合方式使用,而不是每月没有美元。
就IDE来说,如果您正在考虑聘请在IDE外工作的网站和网络应用程序开发人员,那么您可能会在开发人员的错误位置找工作。如果你不能在没有IDE的情况下生活,那么Eclipse就可以了,假设你有一些非常好的dev boxen但是我必须说我遇到的最好的代码忍者都使用emacs或者vim!
在具有无限虚拟桌面和适当命令行的系统上编码也很不错。话虽如此,我听说MS在最近几个版本中已经取得了一些进展,所以现在它们可能更加一致。我不愿意开始在Windows上编写一个大项目而不确定是否有良好的构建或等效的tail,grep,systemtap / dtrace等。
有趣的是,虽然我不得不做的最后一个网络应用程序主要是在Windows中,因为它是基于Flash的。 Flash IDE是纯粹的痛苦,但谢天谢地,大部分的驴工作都在课堂上,所以我大部分时间都使用了可爱的Notepad ++,无论如何这与我们关于MS工具链价值的讨论并不相关,所以我会搬家沿着!...
如果您在使用Linux后在Windows上进行开发,请确保安装Kat-Mouse和像Deskpins这样的“Always-on-top”程序,或者您可能很快就会破坏您的开发机器!
答案 6 :(得分:3)
你在这里混合了两个问题。
如果我指的是一个新项目(我自己),我会使用Windows平台吗?
作为目标?是。作为开发平台?否。
如果我指的是一个新项目(我自己),我会选择C#作为我的语言吗?
是。明确地。 Mono项目有一组很好的工具,可用于构建桌面,Silverlight和Web应用程序。 Web应用程序在Apache内部运行,因此您可以使用所有常见的开源工具。
如果你做得对,你甚至可以在Linux上使用Mono来定位桌面应用程序的Windows客户端(使用Mono包含的Windows.Forms的可用子集)。
如果我指定一个新项目(针对公司),我会选择Windows平台吗?
是。获得的生产力是值得的额外费用。微软还有几个程序,如BizSpark,旨在降低Windows平台上的开发入门成本。
答案 7 :(得分:2)
我认为这是一个很好的问题!主要是因为你没有评判就问过它。以下是我的一些想法:
Visual Studio和所有工具都非常好。这是非常昂贵的,但有微软的程序可以帮助这些成本。例如,在较小的商店中,您可能会考虑TechNet订阅。或者是微软的许多小型企业帮助程序之一,如BizSpark。
您雇用的许多.Net开发人员会要求或要求Visual Studio,这是有充分理由的!他们已经使用了多年,他们对此很满意。所以要做好准备。不是每个人都会这样,但大多数人都会这样。他们知道他们的工具并使用他们的工具。
据说c#和.Net开发仍然只是文本:)我个人使用VIM进行.Net开发,因为我觉得Visual Studio中的很多工具都妨碍了我。我遇到了一些问题,我仍然在某些时候使用Visual Studio,因为它有我需要的东西。这是我使用的一个很好的资源:c# with Vim Blog posts
所以我会说尝试两种方式并且心胸开阔:)这是一种很棒的语言,很有趣。
答案 8 :(得分:2)
为了回答这个问题,这对我来说是一个值得的+1,近年来,随着Visual Studio 2003以来Express版本的出现,微软开发人员堆栈的成本已经降低,我们谈论的是Visual Studio 2005,这是Express版本开始出现以增加Visual Studio对更广泛受众的渗透的地方,使用一个简单的版本,让更广泛的受众更加欣赏学习Visual Studio环境并反映在专业交易中。
现在,如果您是学生,您可以订阅Dreamspark,并且只要您的学生ID检出,您就可以使用专业版。对于那些希望将微软平台推广到互联网的企业而言,使用BizSpark计划的企业同样如此。
您的问题或多或少侧重于Visual Studio之外的其他内容,注意,我不是在谈论MSDN (实际上,这是一个非常重要的部分,因为它是一个知识雷霆的宝石,知道如何 - 现在可以免费获得)归结为这个 - 只使用工具来完成工作 !没有必要让专业开发人员开始使用这些额外内容,因为他们几乎没有真正的区别,不仅仅是这样,他们的钱包和银行账户非常难以接受,这更是徒劳无功!
你在这里谈论的那些额外内容,像Telerik这样的额外内容,让我们直截了当,确定它可能为你的应用添加一个漂亮的面孔,但是谁在乎呢?只要您使用Visual工具绘制界面,添加事件处理程序,添加逻辑,测试并调试它,您就会发现那些额外的东西并不值得,即使最终用户也不会关心只要最终用户能够简单有效地完成工作,它就会非常吸引眼球。
现在,在过去的几年里,我们看到Mono的实力增长并符合.NET 2标准,我不是Mono的传教士,看过它并试过它,确定你可以拼凑一个应用程序来使用Mono在Linux上运行,也许是与MySQL通信的后端,将结果转发到简单的Windows表单,让我强调一下,你作为开发人员会有 选择和自由 < / strong>这样做。也许,在工作时间之外做兼职工作,调查和学习。当然,WinForms在Linux上有点合理,但是不要依赖于Win API调用,因为它会在GUI应用程序的上下文中产生未定义和意外的行为,如果它是一个没有DllImports的纯WinForms,那么它的机会很好在Mono下工作。
当然,当您使用SharpDevelop,MonoDevelop,Mono for Windows时,您不一定与Visual Studio平台绑定,您需要仔细思考并在最后查看它是否值得,使用Visual Studio Express版本,甚至使用SharpDevelop都没有坏处。
简单地说,只要 只使用工具完成工作 ,就可以调查您的选择!
答案 9 :(得分:2)
我会尽力在这里做到客观。让我们从一些背景开始吧。我偶尔会做一些VBA和VB脚本工作,但这种情况非常罕见。我没有使用过最新的MS dev堆栈,但几年前就用它了。从那时起,我主要转向使用PHP和Ruby on Rails。我是从Windows做的,因为这是我熟悉的。在过去的几年里,我和一些正在使用Ruby on Rails和PHP做过一些事情的人进行了交谈,有一件事让我感到震惊的是我很少遇到C#或VB(.net) )街上的开发商。当我这样做时,通常是一个不那么好的人。也许这是一个区域性的事情。也许.NET人住在9-5开发人员的洞穴里,而且只在一年中的某些时候出现。我不知道为什么会这样,但确实如此。 .NET人员,特别是好人,很难找到的事实是这个线程中没有人讨论过的成本。有人确实提到过这样一个事实:那些依赖IDE进行开发的人可能不是支持这种有点随机假设的最好的人。
不要误解我的意思 - 我不支持PHP或Ruby on Rails作为最终目的。我在这里所说的是人民的代价是一个很大的代价。如果您正在使用那些可能并不总是最敏感的工具的工具,那么工具的好处一般来说可能不那么重要。如果你有一个更大的团队,那么工具集的额外成本可能会更好地花在团队成员的更具竞争力的奖金或薪水上。同样,这支持了您希望获得最佳团队的想法。
所有这一切都假设您可以选择从一开始就在做什么。如果你不这样做,那么MS dev社区就会发现一些非常有用的非常好的工具。还有像VMWare Server这样的工具可以平衡Windows / Linux的差异。拥有良好工具的聪明团队将很好地完成工作。
答案 10 :(得分:1)
除了关于结果质量的争论之外,你可以更轻松地在一个新创业公司中填补开发人员职位,这些人习惯于与VS合作,而不是开发人员在Linux中工作。
答案 11 :(得分:1)
在宏伟的计划中,获得Windows开发计算机设置的成本并不高。假设它花费10,000美元(可能太高)(将所有软件与开源设置的0美元相比(假设硬件的成本相同)。我想你的选择将更多地取决于开发者你如果您的项目经理熟悉并喜欢Windows,那么您是否愿意花费额外的四五万美元(假设一个四到五人的团队)来获得他/她感到满意的东西?与他们的工资相比和其他人的就业成本,5万美元并不是很多。显然,如果你没有钱投资,那就会改变。
答案 12 :(得分:1)
- 在Windows中设置开发环境的成本没有 太棒了。
- 开发环境的成本实际上只是一滴水 当与成本相比时 开发者自己。 (这没有 帮助一个小型创业公司或自由职业者 程序员,虽然)。
醇>
你到了那里,但我认为你还没有拍照:
* 1 Visual Studio Express版本可免费用于商业开发。 VS Express可能被称为“Express”,但它们比我在开源社区中找到的任何东西都更好(至少对我的需求而言)。还有很多其他免费工具,所以你可以解决快速版本的几个限制(例如,源代码控制没有集成,但在项目的文件夹中设置Git仓库同样容易)
如果你想在Windows上继续使用C#的开源IDE,你可以使用SharpDevelop或MonoDevelop(有一个Windows版本),但我发现它们都不如VS Express版本。 (暂时没有检查过,事情可能已经改变了。)
所以实际上,设置一个基本的Windows开发环境并不便宜,它是免费的。
我是C#小型项目的常客。 Express版本很好地满足了我的需求,我现在正在考虑使用BizSpark的完整版本https://www.microsoft.com/BizSpark/Startup/Signup.aspx
* 2这里缺少的是BizSpark。 BizSpark是微软的初创企业。如果您的启动时间少于3年,产生的收入少于100万美元并且私下持有,Microsoft将为您提供完整Windows开发环境的下载,包括几乎所有内容(VS Pro,所有SQL版本,MSDN premium,Vista ,XP,Windows Server,Ms office,SDKs ......他们甚至提供一些免费技术支持)。这将持续3年。退出程序时,您必须支付100美元,并且除了订阅之外,您可以保留所有内容。 (此外,非开发产品的许可仅允许用作开发过程的一部分,而不是用于常规用途)
换句话说,如果你是一个小型初创企业,那么你可以获得所有东西,当你退出该计划时,你将花费100美元。
开发Windows并不是一个昂贵的主张,而且工具非常出色。微软可能是很多东西,但愚蠢并不是其中之一。他们知道他们的业务主要取决于开发的生态系统,他们使人们很容易为Windows开发。