2012-03-13 5 views
-1

多くのクライアント側の機能を包括するCOMコントロールがあります。つまり、入力デバイスを使用して情報を収集し、さまざまなデバイスとの統合、レポートの作成などを行います。これをいくつかの並べ替えの.NETコントロール内にラップし、ASP.NETアプリケーションに追加します。ラッパーは、サーバー上のデータベースと話すことに責任を持ち、少しのビジネスロジックも含んでいます。誰かが良い一般的な、または私が向かうべきであるより良い特定の方向を持っていますか?私は.NETでC#を使用していますが、COMオブジェクトはC++にあります。ASP.NETアプリケーションで.NETコントロールをホストする

ところで、私はWindowsフォームコントロールライブラリを作成し、それをASP Webアプリケーションでホストしようとしましたが、これで成功しませんでした。

+3

これは動作しません。 HTMLやJavascriptで最初から書き直す必要があります。 – SLaks

+0

現時点では、.NET 4.0を使用しています – user1266976

+0

コントロールの書き換えはオプションではありません。 – user1266976

答えて

0

Windows OSでデスクトップ上で実行されるSystem.Windows.Forms(WinForms)と、非常に異なるセキュリティ環境でIISで実行されるSystem.Web.UI(WebForms)の違いを混乱させるようですASP.NET。フォームのプロパティなどの多くが同様に見えるようになっているという理由だけで、内部的にも同様に動作するわけではなく、実際にはそうではありません。 ASP.NET内でWebFormsがどのように機能するかを詳しく見て、SLaksがあなたのために何をしようとしているのかを、あなたが示唆している方法ではうまくいかない理由を理解し始めてください。

2

ウェブページ内にActiveXをホストすることがあります。 ActiveXはCOMですが、ブラウザ内でホストされているときにActiveコントロールが行うことができる制限があります。ブラウザは一般的にサンドボックス化を念頭に置いて開発されているため、セキュリティ設定に関してはの問題が深刻化する可能性があります()。もう1つの側面は、クロスブラウザ機能です。 WinFormsは間違いなく別の世界なので、シンプルなフォームを表示する方法を見つけたとしても、混乱とブームの間のどこかで終わってしまうでしょう。

あなたの質問でお伝えしたことから、あなたの最良の選択肢は、古典的なデスクトップアプリケーションに固執することだと思います。明らかに、これはあなたのために機能し、アプリケーションの振る舞いを変更することは、事実以外の選択肢ではなく、書き換えにはコストがかかります。かなり複雑なアプリケーションをウェブに移行することは、従来のデスクトップアプリケーションと比べて根本的に異なるプログラミングアプローチであり、限られた量のリソース(金銭や人間)には対応しません。

あなたが混乱し、ブームの負担を取るつもり場合、あなたはその情報を見たいかもしれません、言った:

http://codebetter.com/petervanooijen/2007/06/18/including-a-winforms-user-control-in-an-asp-net-web-page/

http://www.codeproject.com/Articles/4953/Simple-way-to-expose-a-NET-WinForm-control-as-an-A

注記事むしろ古いですし、フォームで使用されるActiveX/COMのものがクライアントマシンに登録されなければならないという問題を解決することはできません(同じネットワーク内にあるかもしれないし、そうでないかもしれないサーバーにアクセスするような問題もあります)。そして、あなたはセキュリティ設定について確かめることができません。

関連する問題