我是.net网络开发者。我喜欢学习新语言,并尝试了解不同的功能。
我已经听过node.js很长一段时间了。我终于休息了几天,所以我觉得这可能是一个很好的学习机会。
从快速浏览一下节点的文档,我必须说我不明白什么是大惊小怪的。作为一名经验丰富的.net程序员,我为什么要研究node.js?它会取代我的c#代码吗?节点真的可以与dot net(数据库支持,多线程,OOP,可读性等)竞争吗?你是否真的用node.js开发得更快?
答案 0 :(得分:5)
作为一名经验丰富的.net程序员,我为什么要研究node.js?
例如,如果您对异步编程模型感兴趣,或者希望在客户端/服务器堆栈中使用单一语言,或者想要尝试稍微不同的处理方式等等...
它是否取代了我的c#代码?
一般来说,它可以替换和补充现有应用程序的各个部分(不仅仅是)用C#编写,但是它可能取决于场景以及它是否适合使用与node.js一起应用的模式和范例。 / p>
节点真的能与dot net(数据库支持,多线程,OOP,可读性等)竞争吗?
Node.js拥有非常活跃的社区,迄今为止已生成大约4.5K的软件包,涵盖了广泛的领域,功能和系统,例如,您应该能够为每个主要(甚至是次要的)数据库系统找到几个软件包而无需问题。
你真的用node.js开发得更快吗?
Node.js的代码数量比C#更简洁。特别擅长的领域是例如网络编程。它的网络相关API非常简单,您应该能够快速编写这些类型的程序。当然,它不仅限于网络内容,例如节点广泛用于基于Web的(实时)应用程序。但是你应该小心使用异步/回调的东西,然后在无头地潜入节点之前学习或阅读一些关于这些东西的文章。
答案 1 :(得分:1)
对我来说,node.js的核心概念是在没有显式多线程的情况下处理高延迟操作。 IMO非CPU绑定应用程序根本不需要任何多线程。多线程增加了很多复杂性,但在处理IO延迟时并不是必需的。
但我确信这种编程风格也会在.net世界中变得更受欢迎。 C#5获得async
语言功能,使这种编程风格更容易。因此,一旦获得适当的库,您就应该能够很好地在C#中编写异步非多线程代码。