私はAngularアプリケーションにテーブルがあり、コンソールアプリケーションにユーザーが実行できるC#プログラムの名前を付けることを検討しています。
コンソールアプリケーションを実行するASP.NET WebAPIコントローラーにコンソールアプリケーションの名前またはコードを渡すことを考えていました。
ただし、ASP.NET WebApiのコントローラーが別のコンソールアプリケーションを呼び出すことが「適切な」アーキテクチャであるかどうかはわかりません。または、WebApiと実行可能ファイルの呼び出しの間にレイヤーが必要な場合。
それが正しい方法か、別のアプローチを考えるべきかを教えてください。
Web APIで実行可能ファイルを呼び出すのは良い考えではありません。考慮しなければならない問題がいくつかあります。
1:セキュリティ
基本的に、コマンドラインをWebに公開しています。コンソールアプリケーションの起動方法に問題があると、悪意のあるユーザーが予期しないコマンドを実行できる可能性があります
2:スレッドが不足しています
Webアプリでは、各リクエストに迅速に応答することを期待していますが、コンソールアプリの実行時間はわかりません。リソースが不足する可能性があります
3:権限の問題
デフォルトでは、コンソールアプリは、アプリプールを実行しているのと同じユーザーとして実行されます。十分な権限がありますか?許可が多すぎますか?アプリを実行するときに、別のユーザーに成り代わる必要があるかもしれません。
4:終了しますか?
コンソールアプリにはそれほど問題はありませんが、Excelなどを起動して、メモリが消えるのを確認してください
最善のオプションは、コンソールアプリケーションからビジネスロジックを取り出し、ライブラリとして直接使用することです。しかし、ソースコードがない場合、これは不可能かもしれません。
APIまたはライブラリを提供する代替製品を探す
ただし、コンソールアプリを実際に実行する必要がある場合は、実行できます。要注意