C++ で書かれた成熟した Windows デスクトップ アプリケーションがあります。アプリケーションの GUI は、GUI のほとんどの作業を行う Windows DLL の上にあります (エンジンのようなものです)。これも C++ で書かれています。さまざまな理由から、Windows アプリを Web ベースのアプリに移行することを検討しています。
私が避けたいのは、この Web ベースのアプリの CGI を C++ で書かなければならないことです。つまり、このアプリの Web ベース バージョンを作成するために、Python や .NET 言語などの 4G 言語の機能が必要です。
質問は、アプリの作業を行うためにバックエンドで C++ DLL を使用する必要がある場合、ユーザーのブラウザーと C++ dll の間にあるテクノロジ スタックを推奨しますか? Web サーバーは Windows であると想定できます。
いくつかのオプション:
- Windows DLL の上に COM レイヤーを記述し、.NET 経由でアクセスして、UI に ASP.NET を使用できます。
- エクスポート DLL インターフェイスに .NET から直接アクセスし、UI に ASP.NET を使用します。
- 残りのコードを記述できるように、Windows DLL をラップするカスタム Python ライブラリを記述します。
- C++ とWtのような C++ ベースの MVC フレームワークを使用して CGI を記述します。
懸念:
- 回避できるのであれば、Web フレームワークに C++ を使用したくありません。Python や C# などの言語は、開発時間の点で単純に強力で効率的だと思います。
- マネージ コードとアンマネージ コードが .NET ソリューションの 1 つと混在していることを懸念しています。デバッグが難しい多くの小さな問題を求めています (純粋に事例証拠です)。
- Python レイヤーを使用する場合も同様です。これが実行可能な長期的な解決策である場合、どちらにしても多くの証拠がないという点で、そのような人里離れた道から少し外れていることは心配です.