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

时间:2015-10-16 09:08:46

标签: javascript asp.net-mvc node.js signalr edge.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)
}

完全我想将所有与Web相关的代码移动到Node.js(以便我们摆脱死亡/支持不良的依赖关系,如SignalR),但保留C#上的逻辑(查询,命令)(无需重写现有代码,比JS更容易维护。所以我遇到的最佳解决方案(理论上还没有尝试过)是通过Edge.js从Node.js调用我们的C#命令/查询。我想这方面存在陷阱,所以我想知道你对它的看法。

2 个答案:

答案 0 :(得分:5)

虽然我同意@Coulton& @VsevolodGoloviznin,但我会回答这个问题:)

查看Using Node.js in an ASP.NET MVC application with iisnode,其中介绍了两种技术的混合方式。

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

<强>更新

Edge.js提供了将Node.js与.NET平台相结合的解决方案,可以从Node.js调用.NET函数。

阅读其中包含有关此主题的好主题的hanselman's blogTomasz Janczuk(他在Edge.js上工作)曾说:

  

Edge.js为。提供异步的进程内机制   Node.js和.NET之间的互操作性。

     

您可以使用此机制:

     
      
  • 使用ADO.NET更多地从Node.js访问MS SQL ...
  •   
  • 使用来自Node.js的CLR多线程来进行CPU密集型工作......
  •   
  • 在C#中编写Node.js的原生扩展,而不是C / C ++
  •   
  • 将现有的.NET组件插入Node.js应用程序
  •   

答案 1 :(得分:1)

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

我认为将不同的东西混合在一起会使它变得更加复杂,依赖于事物的混合而不是长期的可维护性,在一个地方单一的单一物质。

相反,我会把我现有的东西分开作为一个简单的restful api,这样你就可以在任何地方使用它,在边界提供和维护它,可扩展,面向服务,bla bla ..