web-dev-qa-db-ja.com

C#バックエンドを備えたElectron GUI

ユースケース

GUIのカスタムコントロールを備えたWinFormsを使用してC#で開発された既存のプロジェクトがあります。 HTML/CSS/JSを使用してGUIを作成するアプローチに驚いています。また、上記の言語を使用してデスクトップアプリケーション用のGUIを作成するための最良の方法を探しています。 Windowsデバイスのみをサポートする必要があります。

私の心配事:

Electronic-Edgeを使用した推奨事項に出くわすのにそれほど時間はかかりません。私はすべてが機能することをそれほど心配していませんが、私は心配しています:

  1. C#コードのデバッグ(アプリケーション全体をVSから直接起動して、慣れているようにデバッグできるようにしたい)。後でC#コードをデバッグするには、node.jsアプリケーションに接続する必要があることを読みました。プログラム言語全体がC#で書かれているので、それは苦痛のように聞こえますか?
  2. 私が入手した限り、Edgeはそれを1つのプロセスとして実行させます。電子アプリケーションを、C#コードがどこかにスタックしている間も実行される独自のスレッドと見なすことができますか?

私のオプション:

デスクトップGUIをHTML/CSS/JSで書きたいと思っています。私がelectron-Edgeを使用する代わりに検討したのは、名前付きパイプを使用してC#バックエンドと通信する独自​​のelectronアプリケーションを作成することです。より大きな障害があるのではないかと思いますが、なぜこれを実行したくないので、代わりにelectron-Edgeを使用するのでしょうか。

私の質問:

上記の2つの懸念事項についてフィードバックを受け取り、GUIを独自の電子プロセスとして作成するオプションについての入力も受け取りたいので、誰かがアプリケーションを実行したときに2つのプロセス(GUI +バックエンド)があります。

11
kentor

あなたは多くの方法でそれを行うことができます

1)COM。 C#COMDLLを作成します。 N-API(ネイティブノードモジュール)を使用してDLLのラッパー関数を作成するか、FFIを使用します。JSから関数にアクセスできます。

2).Net Webサーバーを作成し、関数をRESTエンドポイントとして含めます。UIから通信するhttp要求を行います(UIとBEndの明確な分離)

電子のいくつかの代替手段については、 my github repo をチェックアウトできます。

0
Sudhakar RS