Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有C#后端的电子GUI_Javascript_C#_Node.js_Electron_Ipc - Fatal编程技术网

Javascript 带有C#后端的电子GUI

Javascript 带有C#后端的电子GUI,javascript,c#,node.js,electron,ipc,Javascript,C#,Node.js,Electron,Ipc,用例 我有一个用C#开发的现有项目,使用WinForms和GUI的自定义控件。我们对使用HTML/CSS/JS编写GUI的方法感到惊讶,我们正在寻找使用上述语言为桌面应用程序编写GUI的最佳方法。我们只需要支持Windows设备 我的担忧: 使用electron edge的建议不需要很长时间。虽然我并不担心一切都能正常工作,但我担心的是: 调试我的C#代码(我仍然希望能够从VS启动整个应用程序并调试它,看起来我已经习惯了)。我读到我需要附加到node.js应用程序,以便在事后调试我的C#代码。因

用例

我有一个用C#开发的现有项目,使用WinForms和GUI的自定义控件。我们对使用HTML/CSS/JS编写GUI的方法感到惊讶,我们正在寻找使用上述语言为桌面应用程序编写GUI的最佳方法。我们只需要支持Windows设备

我的担忧:

使用electron edge的建议不需要很长时间。虽然我并不担心一切都能正常工作,但我担心的是:

  • 调试我的C#代码(我仍然希望能够从VS启动整个应用程序并调试它,看起来我已经习惯了)。我读到我需要附加到node.js应用程序,以便在事后调试我的C#代码。因为整个程序语言都是用C语言编写的,这听起来很痛苦
  • 就我所知,edge将让它作为一个进程运行。我能把电子应用看作是一个自己的线程,当我的C代码被困在某个地方时,它仍然会运行吗? 我的选择:

    我仍然肯定我想用HTML/CSS/JS编写我的桌面GUI。我考虑的不是使用electron edge,而是编写一个自己的electron应用程序,它使用命名管道与我的C#后端进行通信。我想知道是否有更大的障碍,为什么我不想这样做,而是使用electron edge

    我的问题:


    我想就上面提到的两个问题获得反馈,我还想获得关于我选择将GUI创建为自己的electron进程的信息,这样当有人运行我的应用程序时,我就有两个进程(GUI+后端)。

    你可以通过多种方式来实现

    1) COM。创建C#COM动态链接库。使用N-API(本机节点模块)或使用FFI为DLL创建包装函数。您可以从JS访问函数

    2) 创建一个.NETWeb服务器,并将您的函数作为REST端点包括在内。从UI发出http请求以进行通信(UI和BEnd的明确分离)


    您可以选择一些电子替代品。

    可能是您的选择。你可以用electron编写c代码。

    我认为一个最重要的问题是你的前端如何与后端交互?是否有需要推送到前端的通知


    WebSocket可能是一个很好的两端通信选择。

    您关心的问题之一是能否在Visual Studio中正确启动整个应用程序?您认为通过命令行启动Node.js,然后在VS中按CTRL+ALT+P以连接到进程需要多长时间?我从未尝试过,但如果每次我(重新)编译应用程序时都必须这样做,我相信这对我和同事来说确实非常烦人。这个链接可能会帮助您:您甚至需要电子吗?Windows支持JavaScript(和HTML/CSS)作为本机Windows应用程序(品牌为)的一流语言。我相信UWP仅限于Windows应用商店发行版。