web-dev-qa-db-ja.com

Webブラウザ内でのWinFormsアプリケーションの実行

私はwinフォームアプリケーションを持っていて、それをWebブラウザー内で実行しようとしていますが、Webを介して調べて、いくつかのリンクを見つけました。

私はこのリンクを試しました: WPFを使用してインターネットブラウザに.NET WinFormsアプリケーションを埋め込む 、これは正常に機能しますが、問題は、エンドユーザーがアプリケーションを実行するためにdot net frame workをインストールする必要があることです。

Webブラウザ内でWinFormsアプリケーションを実行する 、Visual WebGui 開発フレームワークの別のリンクをここで見つけました。

WebGuiを使った経験はありますか?

9
KF2

winformsはWebではありません。 WebはWebです。

Webとは、HTML +何か(通常はJavaScript、CSS、そしておそらくjQueryなど)を意味します。

1-Webアプリケーションが必要で、.Netでそれを実行したい場合は、ASP.Netアプリケーションを作成します。

2-Windowsアプリケーション(デスクトップ)が必要な場合は、WPFアプリケーションを作成します。

3-Windows 8の「Metro」スタイルのアプリケーション(別名Windowsストアアプリ)が必要な場合は、WinRTXAMLアプリケーションを作成します。

4-winformsは完全に役に立たない。やっぱりなんでもないや。

顧客が.NetFrameworkのどのバージョンもインストールしたくない場合、唯一の選択肢は#1です。

Winformsアプリケーションは、Webブラウザー内で実行するために行ったハッキン​​グに関係なく、Webアプリケーションになることはありません。

xBAP(WPFブラウザーアプリケーション)もWebアプリケーションではありません。これは、独自のウィンドウを持たない通常のWPFクライアントアプリケーションです。

編集:

rightの方法(つまり、関心の分離を維持し、ほとんどのWinForms開発者が一般的に慣れている慣行の背後にある恐ろしいコードの代わりにアプリケーションロジックをControllersまたはViewModelsに配置する)を行った場合、そうすべきではありませんデータアクセス層とビジネスロジック層をそのまま維持しながら、アプリケーションロジックを再利用して、新しいアプリケーション(Webまたはその他)を作成するのは困難です。

そうですね、Visual WebGui is web overASP.NET。その開発エクスペリエンスは、VisualStudioに統合されたVisualWebGuiデザイナーを使用したWindowsフォームの開発エクスペリエンスと同じ/類似しています。コードはWindowsフォームの場合とまったく同じように実行し、WebGuiランタイムはそれをHTML5/CSS/JSに変換します。

Windowsフォームアプリケーションを同等のビジュアルWebGuiWebアプリケーションに変換するために必要な作業は、Windowsフォームアプリケーションで使用される(サードパーティ/ .NET)コンポーネントによって異なります。 Visual WebGuiAPIはWindowsフォームのAPIとほとんど同じであるため、場合によっては、WebGui固有のアセンブリへの参照をいくつか追加してから、いくつかの名前空間の検索/置換を行うことができます。もちろん、これらは2つの異なるプラットフォームであるため、いくつかの違いがありますが、開発エクスペリエンスはWindowsフォームと非常によく似ています。

11
Palli

Visual WebGui での私の限られた経験では、それはかなりクールなテクノロジーです。簡単に言えば、私が理解しているように、Windowsフォーム開発IDEを使用して、HTML5準拠のASP.NETクライアント/サーバーWebapplication... Webサイトやページだけでなく、Windowsフォームデスクトップアプリケーションに非常によく似たルックアンドフィールを備えています。これは、クライアント側でWinformsコントロールをjqueryコードに変換し、保存します。サーバー側の実行可能なコードのほとんど。

私はこれを使用して、テスト目的の単純なアプリケーションを作成しましたが、いくつかの注意点があります。まず、「きれいな」Webサイトを作成するには、Winformsレイアウトを再考して、ヘッダーやサイドバーなどを備えたWebのようなものにする必要があります。これは別のパラダイムであり、ユーザーはWebサイトに特定のことを期待します。幸いなことに、この調整は、コントロールを操作するだけでかなり簡単に実行できることがよくあります。つまり、Panelコントロールは、サイドバーまたはヘッダーのコンテナーになることができます。コントロールのスキンのような「テーマ」を作成して、外観を変更することもできます。

もう1つの考慮事項は、ポップアップダイアログボックスなどのイベントは、Web環境では異なる動作をすることです。 Winformsでは、ユーザーが「OK」ボタンなどをクリックするまで、プログラムの実行は停止します。 Visual WebGui内では、すべての実行はサーバー側で行われます。したがって、プログラムの実行は、ユーザーの入力を待たずに続行されます。ただし、これはポップアップボックスのForm.Closeハンドラーを作成することで処理できます。しかし、これらの種類の違いを覚えておく必要があります。

また、オブジェクトのレイアウトの異常も考慮する必要があります。 Visual WebGuiは、一般的にWinforms WYSIWYGの利点を模倣するのに適しています。オブジェクトは通常、Webページ上で環境内に配置した場所のかなり近くに表示されます。しかし、これが常に当てはまるとは限りません。正しいレイアウトを得るには、オブジェクトのパディングやマージンなどをいじくり回す必要がある場合があります。それでも、CSSまたはdivオブジェクトで面倒な間隔を変更するよりもはるかに簡単なことがよくあります。

0
MQuiggGeorgia

この質問はこれと非常に似ていると思います。

。NETでWinFormをWebFormに変換することは可能ですか?

前述のように、ブラウザ内でアプリケーションを「現状のまま」実行する唯一の方法は、ActiveXコントロールを使用することであり、これにはIE + .NETFrameworkが必要です。次のようなツールがあります。を使用してアプリケーションをWebに自動的に移行できますが、常に手動での作業が必要であり、Webアプリとしてアプリケーションを最初から作成することと同じではありません。

0
willvv