node.js,这有什么好处?

我是一个.net Web开发人员。 我喜欢学习新的语言,并尝试了解他们不同的function。

我已经听说了node.js很长一段时间了。 我终于rest了几天,所以我决定这可能是一个学习的好机会。

快看一下节点的文档,我必须说,我不明白什么是大惊小怪。 作为一名经验丰富的.NET程序员,为什么要学习node.js? 它取代我的C#代码? 节点真的可以和点网(数据库支持,multithreading,面向对象,可读性等)竞争吗? 你真的用node.js开发更快吗?

作为一名经验丰富的.NET程序员,为什么要学习node.js?

例如,如果您对asynchronous编程模型感兴趣,或者想要在客户机/服务器堆栈中使用单一语言,或者想要尝试稍微不同的处理方式等等,请执行以下操作:

它取代我的C#代码?

一般来说,它可以替代和补充现有应用程序(不仅仅是)用C#编写的各个部分,但是它可能取决于场景以及是否适合使用node.js应用的模式和范例。

节点真的可以和点网(数据库支持,multithreading,面向对象,可读性等)竞争吗?

Node.js拥有非常活跃的社区,它至今围绕4.5K软件包生产,涵盖了广泛的领域,function和系统,例如,您应该能够在没有问题的情况下为每个主要(甚至是轻微)数据库系统find几个软件包。

你真的用node.js开发更快吗?

Node.js的代码量比C#less。 它特别擅长的领域是networking编程。 其networking相关的API相当简单,你应该能够快速写这些types的程序。 当然,它不仅限于networking的东西,例如节点广泛用于基于networking(实时)的应用程序。 然而,你应该小心asynchronous/callback的东西,学习或阅读一些关于这个东西的文章,然后再无节制地进入节点。

对我来说,node.js的核心概念是处理高延迟操作,而不需要显式的multithreading。 IMO非CPU绑定应用程序根本不需要任何multithreading。 multithreading增加了很多复杂性,但在处理来自IO的延迟时并不是必须的。

但是我相信这种编程风格也会在.net世界中变得更加stream行。 C#5获得了async语言function,使得这种编程风格变得更加简单。 所以一旦你得到了合适的库,你应该可以很好地在C#中编写asynchronous的非multithreading代码。