选择 .NET 而不是我们 Java、Struts 等开源软件的成本是多少

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3178734/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-03 14:29:15  来源:igfitidea点击:

How much it costs to choose .NET over the open source such us Java, Struts, etc

.netopen-source

提问by Richard77

Two of my colleagues (and very good friends) have worked for years in Java, PHP, MYSQL, Tomcat, Struts, and the list go really on and on. I'm (the only one who chose the .NET framework). Now, our manager has convinced our boss to invest on us and some other who are willing to go through the process. So far, battles (them vs me) to convince other which framework (.Net - other free framework) has been pointless. Now, my friends have a new argument: .NET is not free.

我的两个同事(和非常好的朋友)在 Java、PHP、MYSQL、Tomcat、Struts 方面工作了多年,而且这个名单真的不胜枚举。我是(唯一一个选择了 .NET 框架的人)。现在,我们的经理已经说服我们的老板投资我们和其他愿意经历这个过程的人。到目前为止,说服其他框架(.Net - 其他免费框架)的战斗(他们与我)毫无意义。现在,我的朋友们有了新的论点:.NET 不是免费的

I'd like to know how much it cost to choose .NET over the other (for instance, Java, Struts, TomCat, etc...). I'm not talking about which technology is better, but how much .NET would cost. So far, all the cost of learning was related to the purchase of my books (Visual studio Express is free).

我想知道选择 .NET 而不是其他(例如,Java、Struts、TomCat 等...)的成本。我不是在谈论哪种技术更好,而是在谈论 .NET 的成本。到目前为止,所有的学习费用都与购买我的书有关(Visual Studio Express 是免费的)。

By the way: If .NET is not free why people are still using it. Or, only big companies can use .NET???

顺便说一句:如果 .NET 不是免费的,为什么人们还在使用它。或者,只有大公司才能使用.NET???

Thanks for helping.

谢谢你的帮助。

回答by marc_s

.NET is free- for download, use and anything.

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

What will cost you is the licenses for

您将花费的是许可证

  • your Windows operating system (yes, you could use Linux instead - almost free)
  • your development environment (Visual Studio costs money - except for the freeExpress editions, or you could use the freeSharpDevelop IDE)
  • your database server (possibly, but again: freeSQL Server Express editions are available, as well as a plethora of other freeproducts)
  • 您的 Windows 操作系统(是的,您可以改用 Linux - 几乎免费)
  • 你的开发环境(Visual Studio 需要花钱——除了免费的Express 版本,或者你可以使用免费的SharpDevelop IDE)
  • 您的数据库服务器(可能,但同样:可以使用免费的SQL Server Express 版本,以及大量其他免费产品)

You can absolutely develop 100% with free software for .NET, and using .NET doesn't cost you a thing (except the Windows OS license, maybe)

您绝对可以使用 .NET 的免费软件进行 100% 的开发,并且使用 .NET 不会花费您一分钱(也许 Windows 操作系统许可证除外)

回答by compie

You don't have to pay to use .NET. You do have to pay for the Windows licenses.

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

Note: Java books cost money too.

注意:Java 书籍也要花钱。

回答by Jay Godse

The crux of the question is the meaning of "free". As others have pointed out, the integrated development environment (IDE) for .Net is as free as the IDEs for Java, PHP, etc. That is where the differences end. Furthermore, nothing is really free.

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

  1. Runtime licensesvary in cost. If you go with a LAMP (e.g. Linux-Apache-MySQL-PHP) platform, there are no run-time licenses. i.e. They are free. Microsoft will charge you noticeably for your .Net server licenses and your SQL Server licenses once you deploy your software. If you an Open Source Java implementation, or Mono (open source .Net), deployment will be free of licensing cost. If you use a commercial Java Virtual Machine (JVM), you'll pay a runtime license.
  2. Supportis not free. If you go with LAMP, you'll end up using in-house resources for support, and/or you will buy support from an external organization such as RedHat. Microsoft/IBM/Oracle have some level of support built in for their paid run-time licenses.
  3. Legal indemnificationis not free. When you go with a commercial vendor such as Microsoft (.Net), IBM/Oracle (JVM), and RedHat, you'll be protected against intellectual property claims of any software distributed by these vendors to be deployed by you. This turns out to be a big concern for companies that are big enough to be sued successfully. These costs are usually buried in run-time licenses or support contracts.
  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 等商业供应商合作时,您将受到保护,免受这些供应商分发的由您部署的任何软件的知识产权索赔。事实证明,对于规模大到可以成功起诉的公司来说,这是一个大问题。这些成本通常隐藏在运行时许可证或支持合同中。

Issues 2 & 3 are why big companies usually go with Java or .Net. If you are big enough to be sued successfully, the runtime licenses are a cheap insurance policy. Also, big companies have more to lose if a software deployment fails, and tend to buy better support contracts.

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

Issue 1 is why small startups go with LAMP. Small companies usually prefer to support their own software stacks (mooting issue 2), and are not big enough to be sued (mooting issue 3). Also a software stack built with most infrastructure software released under Apache 2.0/MIT/BSD licenses are usually safe, and the Linux GPL license risk is manageable if you don't muck with the OS or drivers.

问题 1 是小型初创公司选择 LAMP 的原因。小公司通常更喜欢支持自己的软件堆栈(模拟问题 2),而且规模不够大,可以被起诉(模拟问题 3)。此外,使用在 Apache 2.0/MIT/BSD 许可下发布的大多数基础设施软件构建的软件堆栈通常是安全的,如果您不搞砸操作系统或驱动程序,Linux GPL 许可风险是可控的。

At my first startup, we chose .Net because our client-side IDE was .Net. It ended up costing a lot in the back end (e.g. $1500/month for over a year) for the .Net/SQL-Server licenses, even though the server was hardly used because we didn't have many users.

在我第一次创业时,我们选择了 .Net,因为我们的客户端 IDE 是 .Net。.Net/SQL-Server 许可证的后端最终花费了很多(例如,一年多 1500 美元/月),即使服务器几乎没有使用,因为我们没有很多用户。

At other startups I worked for afterwards, they chose a Linux-Apache-MySQL-Ruby stack or a Linux-Nginx-PostgreSQL-Ruby stack. The deployment costs for underused servers was equal to the hosting costs of hosted virtual servers, which was a fraction of what a .Net stack would have cost.

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

Any project I ever saw with a big company or with people with a big-company mindset always chose Java or .Net. As company balance sheets get squeezed in this recession, and as open source software gets better support, big companies are starting to use LAMP and other open-source stacks, but this is coming slowly.

我在大公司或大公司心态的人身上看到的任何项目总是选择 Java 或 .Net。随着公司资产负债表在这次经济衰退中受到挤压,并且随着开源软件得到更好的支持,大公司开始使用 LAMP 和其他开源堆栈,但这进展缓慢。

回答by Adam Houldsworth

It is free, but it is vendor locked to Microsoft. However the specifications for the underlying idea (C#, CLR/CLI) are not controlled entirely by Microsoft.

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

The cost of training is dependant on current skill levels. However, there is a verylarge amount of training and support material on the net and in publications.

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

Another aspect to the cost of ownership of the .NET Framework as it stands (ignoring Mono) is that it locks you on to a Windows platform (which incurs licensing).

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

More ownership costs are in productivity using the framework, however I cannot answer this in comparison to your current frameworks and tools.

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

回答by Jaroslav Jandek

It is free. The OS it runs on isn't. Also, there is Mono: an open source, cross-platformimplementation of the CLR that is binary compatible with Microsoft.NET (you can use your .NET skills on other OSes than Windows).

这是免费的。它运行的操作系统不是。此外,还有Mono:CLR 的开源跨平台实现,与 Microsoft.NET 二进制兼容(您可以在 Windows 以外的其他操作系统上使用您的 .NET 技能)。

Bottom-line: it costs nothing do develop under .NET, it may cost something (win license) to your users.

底线:在 .NET 下开发不需要任何费用,它可能会给您的用户带来一些费用(赢得许可证)。

回答by Puppy

.NET is not any more expensive than Java. You have to pay for - the operating system you run on, books to learn from, etc. But Visual Studio and .NET themselves are free. There's nothing more expensive about .NET.

.NET 并不比 Java 贵。您必须付费 - 您运行的操作系统、要学习的书籍等。但 Visual Studio 和 .NET 本身是免费的。.NET 没有什么比这更昂贵的了。

回答by Marko

The .NET Framework is free - you can download it here.

.NET Framework 是免费的 - 您可以在此处下载。

What isn't free, is Windows - on which you host your application. There are various hosting options, depending on the size and requirements of your project. For small and single server applications, there are shared hosts & virtual servers available. Then there are dedicated servers, clusters and so forth.. As you can imagine, more servers = more licenses and that's where it could get expensive. But typically you can host .NET applications for a pretty cheap price :)

不是免费的是 Windows - 您在其上托管您的应用程序。有多种托管选项,具体取决于项目的大小和要求。对于小型和单服务器应用程序,有可用的共享主机和虚拟服务器。然后是专用服务器、集群等等。你可以想象,更多的服务器=更多的许可证,这就是它可能变得昂贵的地方。但通常您可以以非常便宜的价格托管 .NET 应用程序 :)

回答by JeremyP

When people say .Net is not free, they mean it is not free as in free speech not as in free beer.

当人们说 .Net 不免费时,他们的意思是它不像言论自由那样免费,也不像免费啤酒那样免费。

That may or may not be an issue for you. It depends on how you view being tied to a proprietary development environment. Judging by the amount of .Net based software, it's not an issue for a lot of people, but there is a risk that one day Microsoft will decide to start charging developers to use .Net or impose other conditions that you do not find acceptable.

这对您来说可能是也可能不是问题。这取决于您如何看待绑定到专有开发环境。从基于 .Net 的软件数量来看,这对很多人来说不是问题,但存在着这样的风险,即有朝一日 Microsoft 将决定开始向开发人员收取使用 .Net 的费用或强加其他您认为无法接受的条件。

回答by stoic

Everything can be done for free using .net:

一切都可以使用 .net 免费完成:

  1. IDE - Mono Develop (free) and runs on both windows and Linux
  2. Database - MySQL, SQLLite etc. these are all free and can run on both windows and linux
  3. .NET Framework also free
  1. IDE - Mono Develop(免费)并在 Windows 和 Linux 上运行
  2. 数据库 - MySQL、SQLLite 等。这些都是免费的,可以在 windows 和 linux 上运行
  3. .NET Framework 也是免费的

However, if you want to go the full on freebie route, you will have to make some compromises, as mono develop is great, but not as good as visual studio.

但是,如果您想完全走免费路线,则必须做出一些妥协,因为单声道开发很棒,但不如 Visual Studio。

Ultimately, if you want a seamless integrated solution of framework, IDE, database etc, you will have to fork out some money.

最终,如果你想要一个框架、IDE、数据库等的无缝集成解决方案,你将不得不花一些钱。

回答by Saher Ahwal

just download visual studio with free SQL Server 2005 and you have a free .NET development enviroment

只需下载带有免费 SQL Server 2005 的 Visual Studio 即可获得免费的 .NET 开发环境