While C# does change periodically, it's more along the lines of 18-24 months than 6 months. Moreover, the C# team is very conscientious around making the changes as backward compatible as possible. (There will always be potential breakage when new conversions are introduced etc, but this is mostly a problem with corner cases such as overloading in the inheritance hierarchy.) You don't have to learn everything to do with the latest version... and in the case of C# 4, if you don't do COM and you don't want to use dynamic typing, there's not very much to learn anyway. The enhancements for C# 2 and 3 were much larger, of course - but then they brought much larger benefits too.
As for whether Mono is used in production - the Mono project itself has a list of companies using Mono.
New C# versions are pushed out at a quite good pace but the underlying VM specification haven't changed since standardization, backwards compatibiltiy between language versions isn't a problem but you need to target the correct Runtime Version but that's the exact same problem you'd have with Java.
The weakest part of the .Net ecosystem is probably that open source haven't progressed as far as in the Java sphere but things seems to slowly be improving, uptake and contributions will only help that. There's much good stuff comming out of the Alt and Progressive .Net camps in that regard.
C# 的 Wikipedia 页面 显示您对新<的频率的感受em>语言版本与事实相去甚远。当然,MS 的方式一直是跟上新技术的流动速度 - 例如参见 Joel 的旧文章 Fire and Motion - 但很少有令人信服的商业理由来跟上最新的闪亮事物。但是 MS 方面的这一策略的存在并没有理由阻止您使用正如您所说的一种非常好的语言,它是独立标准化的。
The Wikipedia page for C# shows that your feelings about frequency of new language versions are far from the truth. Certainly the MS way has always been to keep up the flow rate of new technologies - see for example Joel's old essay Fire and Motion - but there's rarely a compelling business reason to keep up with the latest shiny. But the existence of that strategy on MS's part is no reason to keep you from using what is as you say a very nice language, which is independently standard-ised.
如果您确实想做 Web 开发并将其托管在 Linux 上,.Net / Mono 不是您的最佳选择。
尽管 ASP.Net 似乎可以运行(即 WebForms),但 ASP.Net MVC (2) 却不能运行,至少不能完美运行,因此这取决于您对 Linux 的了解程度,以解决可能出现的错误。
就我个人而言,我发现学习 Ruby 并使用 Ruby on Rails 比使用 Mono 解决有关 ASP.Net MVC 的尴尬错误更容易。
对于桌面客户端,Mono 是一个可行的替代方案。
至于 C#:在我看来,它也是一种不错的语言,并且借助 .Net 框架,它对于 Windows 客户端来说确实非常高效。这些变化并没有那么糟糕,您不必使用每一个闪亮的新功能,但您可以。
If you really want to do web development and host it on linux, .Net / Mono ain't your best choice.
Although ASP.Net seems to run (WebForms that is), ASP.Net MVC (2) does not, at least not flawlessly, so it depends on how well you know Linux to work around bugs that will arise.
Personally, I found it easier to just learn Ruby and use Ruby on Rails than to work around awkward bugs regarding ASP.Net MVC with Mono.
For desktop clients, Mono is a viable alternative.
As for C#: In my opinion it is a nice language too and with the .Net framework it is really productive for windows clients. The changes aren't that bad and you don't have to use every shiny new feature, but you can.
发布评论
评论(4)
虽然 C# 确实会定期更改,但更接近 18-24 个月而不是 6 个月。此外,C# 团队非常致力于使更改尽可能向后兼容。 (当引入新的转换等时,总会有潜在的破坏,但这主要是极端情况的问题,例如继承层次结构中的重载。)您不必学习与最新版本...对于 C# 4,如果您不使用 COM 并且不想使用动态类型,那么无论如何也没有太多需要学习的内容。当然,C# 2 和 3 的增强要大得多 - 但它们也带来了更大的好处。
至于Mono是否在生产中使用——Mono项目本身有一个使用Mono的公司列表。
While C# does change periodically, it's more along the lines of 18-24 months than 6 months. Moreover, the C# team is very conscientious around making the changes as backward compatible as possible. (There will always be potential breakage when new conversions are introduced etc, but this is mostly a problem with corner cases such as overloading in the inheritance hierarchy.) You don't have to learn everything to do with the latest version... and in the case of C# 4, if you don't do COM and you don't want to use dynamic typing, there's not very much to learn anyway. The enhancements for C# 2 and 3 were much larger, of course - but then they brought much larger benefits too.
As for whether Mono is used in production - the Mono project itself has a list of companies using Mono.
在 http://mono-project.com/Software 和 http://mono-project.com/Companies_Using_Mono 一个很好的例子“Electronic Arts 用它来驱动 Sims3”。
新的 C# 版本以相当好的速度推出,但底层 VM 规范自标准化以来没有改变,语言版本之间的向后兼容性不是问题,但您需要定位正确的运行时版本,但这与您的问题完全相同。 d 有Java。
.Net 生态系统最薄弱的部分可能是开源领域的进展不如 Java 领域,但情况似乎正在慢慢改善,吸收和贡献只会对此有所帮助。在这方面,Alt 和 Progressive .Net 阵营提出了很多好东西。
There's a good list to be found at http://mono-project.com/Software and http://mono-project.com/Companies_Using_Mono one good example "Electronic Arts used it to power Sims3."
New C# versions are pushed out at a quite good pace but the underlying VM specification haven't changed since standardization, backwards compatibiltiy between language versions isn't a problem but you need to target the correct Runtime Version but that's the exact same problem you'd have with Java.
The weakest part of the .Net ecosystem is probably that open source haven't progressed as far as in the Java sphere but things seems to slowly be improving, uptake and contributions will only help that. There's much good stuff comming out of the Alt and Progressive .Net camps in that regard.
C# 的 Wikipedia 页面 显示您对新<的频率的感受em>语言版本与事实相去甚远。当然,MS 的方式一直是跟上新技术的流动速度 - 例如参见 Joel 的旧文章 Fire and Motion - 但很少有令人信服的商业理由来跟上最新的闪亮事物。但是 MS 方面的这一策略的存在并没有理由阻止您使用正如您所说的一种非常好的语言,它是独立标准化的。
The Wikipedia page for C# shows that your feelings about frequency of new language versions are far from the truth. Certainly the MS way has always been to keep up the flow rate of new technologies - see for example Joel's old essay Fire and Motion - but there's rarely a compelling business reason to keep up with the latest shiny. But the existence of that strategy on MS's part is no reason to keep you from using what is as you say a very nice language, which is independently standard-ised.
如果您确实想做 Web 开发并将其托管在 Linux 上,.Net / Mono 不是您的最佳选择。
尽管 ASP.Net 似乎可以运行(即 WebForms),但 ASP.Net MVC (2) 却不能运行,至少不能完美运行,因此这取决于您对 Linux 的了解程度,以解决可能出现的错误。
就我个人而言,我发现学习 Ruby 并使用 Ruby on Rails 比使用 Mono 解决有关 ASP.Net MVC 的尴尬错误更容易。
对于桌面客户端,Mono 是一个可行的替代方案。
至于 C#:在我看来,它也是一种不错的语言,并且借助 .Net 框架,它对于 Windows 客户端来说确实非常高效。这些变化并没有那么糟糕,您不必使用每一个闪亮的新功能,但您可以。
If you really want to do web development and host it on linux, .Net / Mono ain't your best choice.
Although ASP.Net seems to run (WebForms that is), ASP.Net MVC (2) does not, at least not flawlessly, so it depends on how well you know Linux to work around bugs that will arise.
Personally, I found it easier to just learn Ruby and use Ruby on Rails than to work around awkward bugs regarding ASP.Net MVC with Mono.
For desktop clients, Mono is a viable alternative.
As for C#: In my opinion it is a nice language too and with the .Net framework it is really productive for windows clients. The changes aren't that bad and you don't have to use every shiny new feature, but you can.