Share via


Windows フォームと Web フォーム間の選択

更新 : 2007 年 11 月

ユーザー インターフェイスを使用してアプリケーションを開発する場合、Windows フォームまたは Web フォームを使用できます。どちらのフォームでデザインする場合も、開発環境でのサポートは万全で、機能的なユーザー インターフェイスと高度な機能を使用してビジネス ソリューションを作成できます。このように機能が同等であるため、どちらのテクノロジが特定のアプリケーションに適しているかを判断することが困難な場合があります。

アプリケーションの用途によっては、どちらを選択したらよいかを簡単に判断できる場合があります。たとえば、電子商取引用の Web サイトを作成してインターネットで公開する場合は、Web フォーム ページを使用してアプリケーションを開発します。一方、オフィスの生産性向上を目的とするアプリケーションのように、大量のデータを高速で処理するためにクライアント コンピュータの機能を最大限に活用する必要のあるアプリケーションを作成する場合は、Windows フォームを使用します。しかし、このように簡単に判断できる場合ばかりとは限りません。

ここでは、どちらのフォームがアプリケーションに最適であるかを判断する上で役立つ各テクノロジの機能と特徴について説明します。

Windows フォームを使用する場合

アプリケーション内のほとんどの負荷をクライアント アプリケーションに負わせる場合は、Windows フォームを使用してアプリケーションを開発します。このようなクライアント アプリケーションには、これまでの Visual Basic や Visual C++ で開発されていた Win32 デスクトップ アプリケーションが該当します。実例としては、描画アプリケーション、グラフィックス アプリケーション、データ入力システム、POS システム、ゲームなどがあります。

これらのアプリケーションはすべて、データを処理し、高度なコンテンツ表示するために、デスクトップ コンピュータの処理能力に依存しています。Windows フォームを使用したアプリケーションの中には、完全に独立し、ユーザーのコンピュータ上ですべての処理を行うアプリケーションもあります。ゲームの多くはこの形式で作成されています。比較的規模の大きいシステムの一部として機能し、デスクトップ コンピュータを主にユーザー入力に使用するアプリケーションもあります。たとえば、POS システムの場合、デスクトップ コンピュータには処理速度が速く使いやすいユーザー インターフェイスが必要ですが、実際のバックエンド処理はデスクトップ コンピュータに接続されたほかのコンポーネントが実行します。

Windows フォームを使用した Windows アプリケーションは Windows フレームワークに基づいて作成されるため、クライアント コンピュータ上のシステム リソース (ローカル ファイル、Windows レジストリ、プリンタなど) にアクセスできます。予想外のアクセスによって生じるセキュリティ上のリスクや問題をなくすため、このようなシステム リソースへのアクセスは制限できます。また、Windows フォームでは、.NET Framework の GDI+ グラフィックス クラスを使用し、表現力豊かなインターフェイスを作成することもできます。このように視覚効果の高いインターフェイスは、データ マイニング アプリケーションやゲーム アプリケーションに求められます。

Web フォームを使用する場合

ASP.NET Web フォームは、ユーザー インターフェイスとして主にブラウザを使用するアプリケーションを作成するときに使用します。電子商取引アプリケーションなど、WWW (World Wide Web) に公開するためのアプリケーションを作成するような場合は、当然 Web フォームを使用します。しかし、Web フォームは、単に Web サイトを作成する場合だけでなく、インターネットで従業員に就業規則や諸手当の申請手段を提供するアプリケーションなど、"シン フロントエンド" に徹した多くのアプリケーションを作成する場合にも使用できます。Web フォーム アプリケーションの重要な利点は、配布を行う必要がないことです。ユーザーのコンピュータには、唯一必要なアプリケーションであるブラウザが既にインストールされています。

Web フォーム アプリケーションはプラットフォームに依存しません。つまり、あらゆるプラットフォームで実行できます。ユーザーは、使用するブラウザやコンピュータを気にすることなく、アプリケーションと対話できます。また、Web フォーム アプリケーションは、Microsoft Internet Explorer 6.0 などの最新ブラウザに組み込まれた機能を活用できるように最適化し、性能や処理速度の向上を図ることができます。

5t6z562c.alert_note(ja-jp,VS.90).gifメモ :

多くの場合、使用する Web フォーム コンポーネントには最適化機能が組み込まれています。Web フォーム コンポーネントは、ブラウザのレベルを自動的に検出し、レベルに応じてページを描画できます。

Web フォーム アプリケーションには、Web に関連しない状況でも役に立つ機能がいくつかあります。Web フォーム アプリケーションは HTML に基づいているため、テキスト重視のアプリケーションに適しています。特に、テキストの書式設定が重要なアプリケーションに向いています。通常、ブラウザ ベースのアプリケーションでは、ユーザーのシステム リソースへのアクセスが制限されますが、この制限があることによって、ユーザーからアプリケーションへのアクセスを制限する必要がある場合にも Web フォーム アプリケーションは役立ちます。

Windows フォームと Web フォームの比較

アプリケーションにおけるさまざまな基準別に、Windows フォームと Web フォームの機能の違いを次の表で比較します。

基準

Windows フォーム

Web フォーム

配置

Windows フォームは、ClickOnce を使用して配置できるため、特別な処理を必要としません。レジストリを変更しなくても、ユーザーのコンピュータ上に直接アプリケーションをダウンロードし、インストールし、実行できます。ClickOnce の詳細については、「ClickOnce の配置の概要」を参照してください。

Web フォームはクライアントには配置しません。クライアントに必要なのはブラウザだけです。ただし、サーバー上で Microsoft .NET Framework が実行されている必要があります。サーバー上のコードを更新することによって、アプリケーションを更新できます。

グラフィックス

Windows フォームには GDI+ が含まれています。このグラフィックス クラスを使用すると、ゲームなどの高度な視覚効果が求められる環境で、洗練されたグラフィックスを扱うことができます。

Web フォームでは、グラフィックスを対話形式で動的に処理するためにサーバーにアクセスしてデータを取得する必要があります。GDI+ は、サーバー上でカスタム グラフィックスを作成するときに使用できます。

処理速度

Windows フォームは完全にクライアント コンピュータ上で実行できます。対話型アプリケーションの場合は、Windows フォームを使用すると、最速の処理速度を実現できます。

ユーザー指向ブラウザが Internet Explorer 5 以降であることが明らかな場合、Web フォーム アプリケーションでは、ブラウザのダイナミック HTML (DHTML) 機能を使用し、機能性と処理速度の優れたユーザー インターフェイス (UI) を提供できます。ユーザーがほかのブラウザを使用している場合は、多くの処理 (正当性チェックなどの UI 関連の処理など) に Web サーバーへのアクセスが必要となるため、処理速度は低下します。

フォームやテキストのフロー制御

Windows フォームのグリッド機能により、コントロールの位置を 2 次元 (x 座標と y 座標) で正確に制御できます。

Windows フォームにテキストを表示するには、テキストをコントロールに挿入します。たとえば、Label コントロール、TextBox コントロール、RichTextBox コントロールなどを使用します。書式設定機能は限られています。

Web フォームは HTML 形式のフロー レイアウトに基づいているため、Web ページ レイアウトの機能をすべてサポートしています。特に、テキストの書式設定機能は充実しています。

コントロールのレイアウトも十分に管理できます (コントロールを重複配置できないなど、多少の制限はあります)。ユーザーが DHTML 対応のブラウザを使用している場合は、レイアウトを 2 次元 (x 座標と y 座標) で正確に指定できます。

プラットフォーム

Windows フォームを使用するには、.NET Framework がクライアント コンピュータ上で実行されている必要があります。

Web フォームに必要なのはブラウザだけです。DHTML に対応したブラウザでは特別な機能を利用できますが、Web フォームはすべてのブラウザで使用できるようにデザインできます。ただし、Web サーバー上で .NET Framework が実行されている必要があります。

ローカル リソース (ファイル システム、Windows レジストリなど) へのアクセス

アプリケーションは、許可されていれば、ローカル コンピュータのリソースにアクセスできます。必要に応じて、アプリケーションによる特定リソースの使用を厳密に制限することもできます。

ブラウザのセキュリティ機能により、アプリケーションからローカル コンピュータのリソースにアクセスすることはできません。

プログラミング モデル

Windows フォームは、クライアント側の Win32 メッセージ ポンプ モードに基づいています。このモードでは、開発者によってコンポーネントのインスタンスの作成、使用、および廃棄が制御されます。

Web フォームは、主として非同期の接続解除モデルに基づいています。このモデルでは、コンポーネントとアプリケーションのフロントエンドと疎結合されます。通常、アプリケーション コンポーネントは HTTP を通じて呼び出されます。このモデルは、ユーザー エンドに高いスループットを要求するアプリケーションや、大量のトランザクションを扱うアプリケーションには適していません。同様に、Web フォーム アプリケーションは、高度な同時実行制御 (排他ロックなど) が求められるデータベース アプリケーションにも適していません。

セキュリティ

Windows フォームは、コード アクセス セキュリティの実装でアクセス制限を指定することにより、コンピュータ リソースや機密情報を保護します。これによって、セキュリティを維持しながら機能を提供できます。たとえば、印刷の場合、既定のプリンタにしか出力できないレベルや、あらゆるプリンタに出力できるレベルなどにアクセスを制限できます。ClickOnce を使用すると、アプリケーションがクライアントに対して要求する必要があるアクセス許可と、要求する必要がないアクセス許可を簡単に構成できます。詳細については、「ClickOnce の配置とセキュリティ」を参照してください。

通常、Web アプリケーションのリソースへのアクセスは、アクセスを要求するクライアントの資格情報 (たとえば、名前/パスワードのペア) を URL ごとに認証することによって承認されます。Web フォームでは、開発者は、サーバー アプリケーションのコードを実行する ID を制御できます。アプリケーションが要求元の ID を取得するとコードを実行できるというこの機能は偽装と呼ばれます。要求元の ID やロールに応じて、アプリケーションが表示するコンテンツを動的に変更することもできます。たとえば、マネージャにサイトへのアクセス権を与えたり、アクセス権の低いユーザーでは閲覧できないコンテンツをマネージャが閲覧できるようにしたりできます。

参照

概念

ClickOnce の配置の概要

参照

Windows フォームの概要