带有 C# 后端的电子 GUI

Posted

技术标签:

【中文标题】带有 C# 后端的电子 GUI【英文标题】:Electron GUI with C# backend 【发布时间】:2018-01-16 16:13:10 【问题描述】:

用例

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

我的担心:

很快就会遇到使用电子边缘的建议。虽然我不那么担心让一切正常工作,但我很担心:

    调试我的 C# 代码(我仍然希望能够直接从 VS 启动整个应用程序并对其进行调试,看起来我已经习惯了)。我读到我需要附加到 node.js 应用程序,以便之后调试我的 C# 代码。由于整个程序语言都是用 C# 编写的,这听起来很痛苦? 据我所知,edge 将让它作为一个进程运行。我可以将电子应用程序视为一个自己的线程,当我的 C# 代码卡在某个地方时它仍然可以运行?

我的选择:

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

我的问题:

我想就我上面提到的两个问题得到反馈,我也想获得关于我选择创建 GUI 作为自己的电子进程的输入,这样当有人运行我的时我有两个进程(GUI+后端)应用。

【问题讨论】:

您的担忧之一是能否在 Visual Studio 中直接启动整个应用程序?您认为通过命令行启动 Node.js 并在 VS 中按 CTRL + ALT + P 附加到进程需要多长时间? 我从未尝试过,但如果我每次(重新)编译我的应用程序时都必须这样做,我相信这对我和我的同事来说确实很烦人 也许这个链接可以帮助你:github.com/bridgedotnet/Widgetoko 你还需要 Electron 吗? Windows 支持将 javascript(和 HTML/CSS)作为原生 Windows 应用程序的一流语言(品牌为 UWP Apps) 我相信 UWP 仅限于 Windows 应用商店分发。 【参考方案1】:

Electron.NET 可能是您的选择。你可以用electron写c#代码。

【讨论】:

【参考方案2】:

你可以通过多种方式做到这一点

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

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

您可以查看my github repo 了解电子的一些替代品。

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于带有 C# 后端的电子 GUI的主要内容,如果未能解决你的问题,请参考以下文章

带有本地 smtp 的 Django 电子邮件后端

带有 .NET 后端的 Azure 移动服务 - 数据库中已经存在一个对象

通过带有 Spring Boot 后端的 Google Sign-In 登录 Android

如何使用 Angular 发送带有对象参数的 fetch api 请求?

如何将 Docusign 的电子签名 API 与 .NET 后端和 Angular + Devextreme 前端集成?

带有后端分页的 jQuery 数据表