C# ASP.NET Web Api与Node.js

C# ASP.NET Web Api与Node.js,c#,javascript,node.js,web-services,wcf,C#,Javascript,Node.js,Web Services,Wcf,我最近开始将我所使用的web平台连接到其他非常复杂的系统,这些系统大多是用C#编写的。 我的大部分经验是用PHP和JavaScript进行web开发 我也有一些在WCF中编写web服务的经验 遗憾的是,我在为我的PHPWeb平台编写WCF服务时遇到了很多困难,开发速度慢,配置非常(非常)复杂,以便能够在JSON中做出良好响应,并使用RESTful等 自然地,我开始研究其他技术,其中一项特别吸引了我的眼球,Node.js可能非常适合我,因为我在JavaScript方面有很多经验,这样我就不再需要我

我最近开始将我所使用的web平台连接到其他非常复杂的系统,这些系统大多是用C#编写的。 我的大部分经验是用PHP和JavaScript进行web开发 我也有一些在WCF中编写web服务的经验

遗憾的是,我在为我的PHPWeb平台编写WCF服务时遇到了很多困难,开发速度慢,配置非常(非常)复杂,以便能够在JSON中做出良好响应,并使用RESTful等

自然地,我开始研究其他技术,其中一项特别吸引了我的眼球,Node.js可能非常适合我,因为我在JavaScript方面有很多经验,这样我就不再需要我的windows服务器了。 我的另一个选择当然是继续用C#编写服务,但改用ASP.NETWebAPI。 切换可能比从WCF到Node.js要容易得多

对这件事有什么想法或建议吗?
有没有人有在Node.js中编写web服务的经验,并能为我指出一个好教程的方向?还是说我太离谱了,根本不应该在web服务中使用Node.js?

这两种平台都有各自的优缺点,最终,两者都能完成任务

然而,在使用了这两种方法之后,Node.js将以其简单性、开发/部署速度和性能而赢得不折不扣的胜利,而这一切都是开箱即用的——如果它不能开箱即用,那么很可能会出现问题


Node已经存在了几年,但是,它最近才开始变得更加流行,以至于微软已经大大改进了它。

我最近才开始使用express.js。我告诉你,这不是给胆小鬼的。“如果你已经熟悉JS,那就大功告成了”的整个想法真的离事实不远了。也就是说,如果你是像我这样的铁杆德沃斯人

我有一个统一的构建过程,用于所有asp.net应用程序的构建、测试和覆盖报告、部署、配置管理和代码质量分析—所有这些都是设置和自动化的。围绕一个新项目建立一个构建过程需要5分钟,并对其进行测试、分析、阶段化和交付到生产环境。(世界上所有的开发人员都应该这样做。但是,嘿,我在跟谁开玩笑呢。)然后是监控、日志记录、性能分析和评测。同样,所有这些都得到了良好的统一、协调和集中管理

我并不是说node.js/express.js没有这些功能,但您必须开发/学习一套全新的服务和平台,以运行node.js

敲出一堆代码是一回事。在国外技术上运行生产系统完全是另一回事

除非你在找麻烦,我的意思是,挑战:D,坚持使用WebAPI。WebDeploy是上帝派来的


顺便说一句,在WCF端点上使用BasicHttpBinding,并让PHP从WSDL生成客户机类。对Soap是您的答案,而不是“更易于使用的rest”。差不多。从WCF端点归档WSDL还允许您跟踪服务签名和格式更改的精确性。它确保了类型安全,并为您处理ser/de。如果我不必处理它,我不太在乎消息看起来有多难看。是的,我以前用过PHP和python。完美无瑕。

对跨平台可移植性的需求如何? 如果需要同时在Windows和Linux服务器上部署web api/REST服务,该怎么办

WCF-我认为它还不能进入Linux(mongo??) WebAPI-无法进入Linux(我想是??) NodeJS-跨平台运行时可用。代码一旦部署到任何地方。 xyz-我们还有什么可以提供所有这些


至少因为这个原因,我建议使用NodeJS的op

经过10年的.net开发,我希望将NodeJS用于中型应用程序。我只是在分享我的经验

窗口示意图 如今,大多数新应用都部署在云端。对于Asp.net,我们需要windows,尽管它可以在Linux上使用mono,但我对性能没有足够的信心。仅Windows server就需要750mb以上的ram,我想在1GB内存服务器上部署我的应用程序以降低成本。所以我想要微型操作系统。Linux已经证明了这一点。在这种情况下,Linux获胜,因此node js获胜。 不过,我相信Windows Nano Server在不久的将来可以解决这个问题。 现在.Net(核心)在linux上运行

.Net核心 现在.net核心是下一个节点JS。它为C#在Linux和Mac上运行打开了大门。Unity、Xmarin也允许创建移动应用程序和游戏。我们现在可以创建.net标准库,它可以在.net核心、框架、xmarin和Unity上工作

C#开发人员的最佳时间

更快地编码 我可以在C#和js上很好地编写代码。所以这对我来说不是问题

代码清晰度 这是一个重要领域。当代码库增长时,JavaScript中的一切都会变得复杂。一个人的javascript可能无法被另一个人读取。许多.net项目有很大的代码库,但很容易阅读和调试。一个技术普通的团队可以更好地管理C#代码。对于node js,团队必须非常精通js。普通程序员可能无法正确读取JavaScript

简单 nodeJS非常简单,没有dll,没有GAC,没有类。这是一个非常小的代码。但是“代码清晰性”对我来说比我写的行数更重要。对我来说,简单意味着易于阅读,而不是更快地编写代码。当代码库增长时,我觉得C#比JS更简单

演出 这是有争议的。我觉得我可以使用这两种技术编写性能良好的应用程序

开源库 Nodejs在这里获胜。太多的包裹,就像你早餐里有成吨的品种。我很难选择我想要的。我花了一周的时间在NodeJS的ORM库上,环顾了Sequalizer、Sails、Knex,所有这些都很棒。但也有人完全重新编码了他们的应用程序