2015-10-16 28 views
-1

我們正在考慮將我們的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

回答

1

您可以將現有的c#代碼作爲restful api服務並從您的nodejs應用程序使用它。

我認爲在一件事物中混合不同的東西會使事情變得更加複雜,依賴於事物的混合而不是長期保持,單一事物在一個地方不止一件事。

相反,我會單獨我現有的東西,一個簡單的RESTful的API,讓你可以在任何地方使用它,交付和維護它在其邊界,可擴展的,以服務爲導向,喇嘛喇嘛..

5

雖然我@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
相關問題