在开源上选择.NET需要花多少钱,比如Java,Struts等

Ric*_*d77 13 .net open-source

我的两位同事(以及非常好的朋友)已经在Java,PHP,MYSQL,Tomcat,Struts工作了多年,而且这个列表依旧不断.我是(唯一选择.NET框架的人).现在,我们的经理已经说服我们的老板投资我们和其他一些愿意经历这个过程的人.到目前为止,战斗(他们对我)说服其他框架(.Net - 其他免费框架)毫无意义.现在,我的朋友们有了一个新论点:.NET不是免费的.

我想知道选择.NET比另一个花费多少(例如,Java,Struts,TomCat等等).我不是在谈论哪种技术更好,而是.NET要花多少钱.到目前为止,所有学习成本都与购买我的书有关(Visual Studio Express是免费的).

顺便说一下:如果.NET不自由,为什么人们还在使用它.或者,只有大公司可以使用.NET ???

谢谢你的帮助.

mar*_*c_s 22

.NET是免费的 - 可供下载,使用和任何东西.

您将获得的许可证是什么

  • 你的Windows操作系统(是的,你可以使用Linux - 几乎免费)
  • 您的开发环境(Visual Studio需要花钱 - 除了免费的 Express版本,或者您可以使用免费的 SharpDevelop IDE)
  • 您的数据库服务器(可能,但同样:免费的 SQL Server Express版本,以及许多其他免费产品)

您绝对可以使用.NET免费软件100%开发,使用.NET不需要花费任何费用(可能除了Windows操作系统许可证)

  • @pete OP显然正在谈论所涉及的货币成本. (10认同)
  • 免费!= libere(.net在啤酒中是免费的,在演讲中不是免费的) (3认同)
  • 成本也等于预期风险时间损失业务连续性.大型公司使用源代码托管等机制来降低非自由软件的成本 - 如果供应商无法修复错误,他们就有权使用关键任务系统的源代码.因此,大公司具有使用非自由软件的合法杠杆,因此大公司可以使用.net的OP评论,而没有大型法律部门的公司.不能. (2认同)

com*_*pie 12

您无需为使用.NET付费.您必须为Windows许可证付费.

注意:Java书也要花钱.


Jay*_*dse 7

问题的关键是"自由"的含义.正如其他人所指出的那样,.Net的集成开发环境(IDE)与Java,PHP等IDE一样免费.差异就此结束.此外,没有什么是真正自由的.

  1. 运行时许可证的成本各不相同.如果你使用LAMP(例如Linux-Apache-MySQL-PHP)平台,则没有运行时许可证.即他们是免费的.部署软件后,Microsoft将向您收取明显的.Net服务器许可证和SQL Server许可证.如果您是开源Java实现或Mono(开源.Net),则部署将免除许可成本.如果使用商业Java虚拟机(JVM),则需要支付运行时许可证.
  2. 支持不是免费的.如果您使用LAMP,您最终将使用内部资源获得支持,并且/或者您将从外部组织(如RedHat)购买支持.Microsoft/IBM/Oracle对其付费运行时许可证内置了一定程度的支持.
  3. 法律赔偿不是免费的.当您与Microsoft(.Net),IBM/Oracle(JVM)和RedHat等商业供应商合作时,您将受到保护,免受您由这些供应商分发的任何软件的知识产权声明.对于那些足以被成功起诉的公司来说,这是一个很大的问题.这些成本通常隐藏在运行时许可证或支持合同中.

问题2和3是大公司通常使用Java或.Net的原因.如果您足够大,可以成功起诉,运行时许可证是一种廉价的保险单.此外,如果软件部署失败,大公司会有更多损失,并倾向于购买更好的支持合同.

问题1是小型创业公司采用LAMP的原因.小公司通常更愿意支持自己的软件堆栈(议案问题2),并且不足以被起诉(议案问题3).使用在Apache 2.0/MIT/BSD许可下发布的大多数基础架构软件构建的软件堆栈通常也是安全的,如果您不使用操作系统或驱动程序,则可以管理Linux GPL许可证风险.

在我第一次启动时,我们选择了.Net,因为我们的客户端IDE是.Net.它的后端成本很高(例如,每月1500美元,一年以上).Net/SQL-Server许可证,即使服务器很少使用,因为我们没有很多用户.

在我之后工作的其他初创公司中,他们选择了Linux-Apache-MySQL-Ruby堆栈或Linux-Nginx-PostgreSQL-Ruby堆栈.未充分利用的服务器的部署成本等于托管虚拟服务器的托管成本,这只是.Net堆栈成本的一小部分.

我曾与大公司或拥有大公司思想的人一起看过的任何项目总是选择Java或.Net.随着公司资产负债表在这次经济衰退中受到挤压,随着开源软件得到更好的支持,大公司开始使用LAMP和其他开源堆栈,但这种情况正在缓慢进行.


Ada*_*rth 5

它是免费的,但它是由 Microsoft 锁定的供应商。然而,底层思想(C#、CLR/CLI)的规范并不完全由 Microsoft 控制。

培训费用取决于当前的技能水平。然而,有一个非常大量的在网上和出版物的培训和支持材料。

.NET Framework 拥有成本的另一个方面(忽略 Mono)是它将您锁定在 Windows 平台上(这会产生许可)。

使用该框架的生产力更高,但与您当前的框架和工具相比,我无法回答这个问题。

  • 我不明白为什么有人应该“忽略 Mono”。为什么 Mono 会比其他开源工具更糟糕?如果不是,那为什么不使用它呢?如果它不如Visual Studio + .NET,那么并不意味着开源工具总体上较差,因此您应该选择.NET。 (5认同)
  • @Stilgar 是把话放在嘴里的好例子。我说忽略 Mono,因为我直接谈论的是 Windows 上的 .NET Framework。我只是先发制人,告诉我它不是平台锁定的。我知道它不是,但我目前与针对“.NET”的人的经验是他们没有考虑 Mono 方面。并回答您的一些问题:我没有暗示;我不知道,我没有说它更糟......; 太多的概括...... - 完成了。 (2认同)