「フレームワーク」として機能し、Web サーバーで実行されているいくつかのサービスに関する情報を表示する ASP.NET Web サイトを構築しています。サイトが行う必要があることの 1 つは、サービスによって読み込まれたいくつかのモジュールのカスタム構成ページを提供することです。モジュールはすべて共通の API を実装するので、そこに懸念はありません。私の懸念は、共通のフロント エンドによって提供される、各モジュールに固有の構成ページをどのように取得できるかということです。
ページは、ユーザー入力の検証、ボタン クリックの処理などを行う必要があります。そのため、各モジュールにメソッドを用意するほど単純ではありません。
public string getHTMLConfigPage()
これは、モジュールの構成ページがユーザー入力を必要としない場合にのみ機能します。この場合、すべてのモジュールになんらかの構成が必要です。少なくとも、「オン/オフを切り替える」ことを示すチェックボックスが必要です。
理想的な使用例は次のとおりです。
- 実行時に IIS プロセスがバックエンド サービスと通信し、N 個のモジュールが実行されていることを認識します。
- サーバーは、これらの N # 個のモジュールへのリンクをドロップダウン メニューに追加します。
- ユーザーがモジュールのメニュー項目をクリックすると、モジュールの構成ページが表示されます
- ユーザーはモジュールを好きなように構成し、個々のモジュールがそのシーケンス全体を制御します
これは、C# の winforms で既に正常に実装されています。そこで行った方法は、各モジュールにメソッドを実装させることでしたpublic void showConfigDialog(IWin32Window parent);
。これは、通常のデスクトップ アプリではうまく機能しますが、明らかに、Web サーバーで何かを行うのには役に立ちません。
私がこれまでに考えた唯一のことは、各モジュールにも IIS Web サーバーにいくつかのものをインストールさせiFrame
、メインの「フレームワーク」ページがモジュールのページをフレーム (またはポップアップ ウィンドウ) に表示できるようにすることです。 )、しかし、モジュール開発者がIISスペースに何かを入れるためにある種のセットアップスクリプトを含める必要があるという点で、それは面倒に思えます...
それで、これを行うためのより良い方法はありますか、それとも iFrame メソッドが唯一の方法ですか?
システムの詳細:
- ASP.NET 4.0
- C#.NET 4.0
- IIS 7.5 (サーバー 2008 R2)
編集:追加の詳細
また、ASP.NET が実行時にプローブする特別な ASP.NET DLL をモジュールにディレクトリに配置することも考えました。しかし、問題の根源は残っています。モジュールによって提供される DLL を、メインの Web ページ セットに統合するにはどうすればよいでしょうか。Web ページのメイン セットには、Site.Master
いくつかの必要な項目 (CSS、メニュー バー、いくつかの jQuery アドオンなど) を提供するページがあります。モジュールからの DLL は、この情報に加えて、メインの Web ページが、作成した下層の Windows サービスと対話するために使用する名前付きパイプを必要とする可能性があります。