用C#后端实现的Electron图形用户界面

22

使用案例

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

我的担忧:

很快就会遇到使用electron-edge的建议。虽然我不太担心让一切正常工作,但我担心:

  1. 调试我的C#代码(我仍然希望能够从VS开始整个应用程序并像以前一样进行调试)。我读到说我需要附加到node.js应用程序才能在以后调试我的C#代码。由于整个程序语言都是用C#编写的,这听起来很麻烦?
  2. 据我了解,edge将其运行为一个进程。我可以把electron应用程序视为一个自己的线程,而当我的C#代码卡在某个地方时,它仍然会运行吗?

我的选择:

我仍然积极地想使用HTML/CSS/JS编写桌面GUI。与其使用electron-edge,我考虑编写自己的electron应用程序,使用命名管道与我的C#后端通信。我想知道为什么我不想这样做并使用electron-edge呢?

我的问题:

我想了解上述两个担忧的反馈,并且还想了解有关使用自己的electron进程创建GUI选项的建议,以便在运行我的应用程序时有两个进程(GUI+后端)。


你们之中有一个担心是能否在Visual Studio中启动整个应用程序?你认为通过命令行启动Node.js,然后在VS中按下CTRL + ALT + P附加到进程需要多长时间? - Brian Ogden
我从未尝试过这样做,但如果每次我(重新)编译我的应用程序时都必须这样做,我相信这对我和我的同事来说确实非常烦人。 - kentor
也许这个链接可以帮到你:https://github.com/bridgedotnet/Widgetoko - isaeid
你真的需要 Electron 吗?Windows 支持 JavaScript(和 HTML/CSS)作为本机 Windows 应用程序的一流语言(品牌为 UWP 应用程序)。 - arthurakay
1
我相信UWP只能通过Windows Store分发。 - Captain Prinny
请参考以下网址以获取相关程序开发信息:https://github.com/mandrepont/blazetron 和 https://github.com/aspnet/Blazor/issues/74。 - Kalten
3个回答

8

Electron.NET可能是一个适合你的选择,你可以使用Electron编写C#代码。


3

你可以用多种方式实现:

1)COM。创建C#COM DLL。使用N-API(本地节点模块)创建包装器函数或使用FFI。您可以从JS访问这些函数。

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

您可以查看我的github仓库以了解一些替代Electron的方法。


0

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

WebSocket 可以是双向通信的好选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接