2012-03-11 16 views
1

何らかの目的でデスクトップWPF C#アプリケーションを構築しました。 C#アプリケーションは別のC++アプリケーションで関数を呼び出し、C++アプリケーションの結果はC#アプリケーションに公開されました。アプリケーションは正常に動作していますが、Web(ASP.NET)と同じ機能を使用するつもりですWebへのC#デスクトップアプリケーションの移植

デスクトップソリューションで使用したのと同じ種類のものを使用できますか? ASP.NETアプリケーションが関数をC++プロジェクトに呼び出すことができ、C++アプリケーションから結果を取得できますか? DllImport[CallingConvention = CDecl, CharEncoding=Ansi]

EDIT--
私の最大の関心事は、私はC++アプリケーションへの関数呼び出しを発行したとき、それはその処理を行うためにC++の機能のために5秒かかるということです。この間、C#アプリケーションはGUIを持っていると見なすことができます。同様のケースでASP.NETのWebサイトではどうなりますか?それはマルチスレッドとすべてのために台無しになるだろうか?

答えて

2

はい、ASP.NETアプリケーションはDllImportメカニズムを使用できます。

+0

これは異なるものでも同じでもかまいませんか?私の主な関心事は、C++アプリケーションへの関数呼び出しを発行したときに、C++関数がその処理を行うのに5秒かかりました。この間、C#アプリケーションはGUIを持っていると見なすことができます。同様のケースでASP.NETのWebサイトではどうなりますか?それはマルチスレッドとすべてのために台無しになるだろうか? – Cipher

+0

計算に5秒かかる場合、サーバー上の要求処理は同じ5秒(送信応答の場合は+時間ですが、ミリ秒単位)になります。クライアント側はサーバーからの応答を待ちます。 AJAXを使用する場合、Webページはフリーズされません。さもなければ、ユーザーは全体のページデータを待ちます(前の/空のページを参照し、ブラウザーでアニメーションを読み込みます)。 – TcKs

+0

要求を処理する最大時間は、Webサーバー(IISを適切に使用する)で構成できます。安定性/スケーラビリティ/などに使用される多くの構成可能な値があります。 – TcKs

1

ASP.NETアプリケーション内からCOMまたはピン方式を呼び出す際に問題はありません。通話が完了するまでに5秒間かかっても、クライアントのブラウザはただ応答を待つだけです。その結果、アプリケーションのユーザーエクスペリエンスはちょっと遅いです。

通常、このように長続きするサーバーコールはAJAXリクエストでラップされ、少なくとも「待ってください」などの回転円のような情報をユーザーに表示することができます。

0

基本的に同じです! wpfはaps.netと同じclrを使用します 違いは、Webアプリケーションは主にマルチユーザ環境であることです。 .com/C++コンポーネントはコンカレント・ユーザーと連携する必要があります。

関連する問題