将ASP.NET MVC应用程序迁移到Node.js

问题描述:

我们正在考虑将我们的ASP.NET MVC应用程序迁移到Node.js.这是我目前对迁移过程的理解。将ASP.NET MVC应用程序迁移到Node.js

我们的典型动作是这样的:

public ActionResult Something(...) 
{ 
    //1. execute query (for GET) or command (for POST) 

    //2. SignalR notification in case POST request 

    //3. Return query result (for GET) or void (for POST) 
} 

完美,我想将所有网络相关的代码的Node.js(让我们摆脱像SignalR死/乏力的依赖性)但保持C#上的逻辑(查询,命令)(无需重写现有代码,比JS更容易维护)。所以我最好的解决方案是从Node.js通过Edge.js调用我们的C#命令/查询(理论上,没有尝试它)。我想这种方式存在缺陷,所以我想知道你对它的看法。

+1

你为什么要迁移到nodejs呢? –

+0

@VsevolodGoloviznin,好吧... ASP.NET MVC有点死了。尤其是它的开源社区,尤其是与Node.js相比。这是一个例子。我们在SignalR中发现了一个错误。关键之一。这个错误在SignalR中已经有一年多的时间了,它被不同的人反复报告了几次,没有任何代码被提交到SignalR存储库近一年,几十个问题没有被回答,主要的SignalR提交者正在提交给Node .js存储库(所以即使微软也愿意投资Node.js)。 – SiberianGuy

+0

我真的很想知道这个错误,你介意链接到细节?我在我的网站上使用SignalR – Luke

您可以将现有的c#代码作为restful api服务并从您的nodejs应用程序使用它。

我认为在一件事物中混合不同的东西会使事情变得更加复杂,依赖于事物的混合而不是长期保持,单一事物在一个地方不止一件事。

相反,我会单独我现有的东西,一个简单的RESTful的API,让你可以在任何地方使用它,交付和维护它在其边界,可扩展的,以服务为导向,喇嘛喇嘛..

虽然我@Coulton & @VsevolodGoloviznin同意,但我打算把答案对这个问题的:)

看,只要你想在那里介绍了这两种技术的混合物Using Node.js in an ASP.NET MVC application with iisnode

要使用代理,有一个node-http-proxy。而IIS可以为你做到这一点。

更新

Edge.js提供了一个解决方案通过使其能够从Node.js的调用.NET函数结合使用.NET平台的Node.js

阅读hanselman's blog其中包含围绕此的好主题。 Tomasz Janczuk(他的工作对Edge.js)说:

Edge.js提供了一个异步进程机制的Node.js和.NET之间的互操作性 。使用ADO.NET更多

  • 访问MS SQL从Node.js的...
  • 使用CLR从Node.js的多线程的CPU密集型工作更多:

    您可以使用此机制。 ..

  • C#编写的,而不是C/C++
  • 栅间现有的.NET组件Node.js的本地扩展到应用程序的Node.js