Windows フォームと Web フォーム間の選択
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
ユーザー インターフェイスを使用してアプリケーションを開発する場合、Windows フォームまたは Web フォームを使用できます。 どちらのフォームでデザインする場合も、開発環境でのサポートは万全で、機能的なユーザー インターフェイスと高度な機能を使用してビジネス ソリューションを作成できます。 このように機能が同等であるため、どちらのテクノロジが特定のアプリケーションに適しているかを判断することが困難な場合があります。
アプリケーションの用途によっては、どちらを選択したらよいかを簡単に判断できる場合があります。 たとえば、電子商取引用の Web サイトを作成してインターネットで公開する場合は、Web フォーム ページを使用してアプリケーションを開発します。 一方、オフィスの生産性向上を目的とするアプリケーションのように、大量のデータを高速で処理するためにクライアント コンピューターの機能を最大限に活用する必要のあるアプリケーションを作成する場合は、Windows フォームを使用します。 しかし、このように簡単に判断できる場合ばかりとは限りません。
ここでは、どちらのフォームがアプリケーションに最適であるかを判断する上で役立つ各テクノロジの機能と特徴について説明します。
Windows フォームを使用する場合
アプリケーション内のほとんどの負荷をクライアント アプリケーションに負わせる場合は、Windows フォームを使用してアプリケーションを開発します。 これらのクライアント アプリケーションは以前のバージョンの Visual Basic および Visual C++ で開発された従来な Win32 デスクトップ アプリケーションを含まれません。 実例としては、描画アプリケーション、グラフィックス アプリケーション、データ入力システム、POS システム、ゲームなどがあります。
これらのアプリケーションはすべて、データを処理し、高度なコンテンツ表示するために、デスクトップ コンピューターの処理能力に依存しています。 Windows フォームを使用したアプリケーションの中には、完全に独立し、ユーザーのコンピューター上ですべての処理を行うアプリケーションもあります。 ゲームの多くはこの形式で作成されています。 比較的規模の大きいシステムの一部として機能し、デスクトップ コンピューターを主にユーザー入力に使用するアプリケーションもあります。 たとえば、POS システムの場合、デスクトップ コンピューターには処理速度が速く使いやすいユーザー インターフェイスが必要ですが、実際のバックエンド処理はデスクトップ コンピューターに接続されたほかのコンポーネントが実行します。
Windows フォームを使用した Windows アプリケーションは Windows フレームワークに基づいて作成されるため、クライアント コンピューター上のシステム リソース (ローカル ファイル、Windows レジストリ、プリンターなど) にアクセスできます。 予想外のアクセスによって生じるセキュリティ上のリスクや問題をなくすため、このようなシステム リソースへのアクセスは制限できます。 Additionally, Windows Forms can use the .NET Framework GDI+ graphics classes to create a graphically rich interface, which is often a requirement for data-mining or game applications.
Web フォームを使用する場合
ASP.NET Web フォームを使用するには、主に、ブラウザー ユーザー インターフェイスを持つアプリケーションを作成します。 電子商取引アプリケーションなど、WWW (World Wide Web) に公開するためのアプリケーションを作成するような場合は、当然 Web フォームを使用します。 しかし、Web フォームは、単に Web サイトを作成する場合だけでなく、インターネットで従業員に就業規則や諸手当の申請手段を提供するアプリケーションなど、"シン フロントエンド" に徹した多くのアプリケーションを作成する場合にも使用できます。 Web フォーム アプリケーションの重要な利点は、配布を行う必要がないことです。 ユーザーのコンピューターには、唯一必要なアプリケーションであるブラウザーが既にインストールされています。
Web フォーム アプリケーションはプラットフォームに依存しません。つまり、あらゆるプラットフォームで実行できます。 ユーザーは、使用するブラウザーやコンピューターを気にすることなく、アプリケーションと対話できます。 また、Web フォーム アプリケーションは、Microsoft Internet Explorer 6.0 などの最新ブラウザーに組み込まれた機能を活用できるように最適化し、性能や処理速度の向上を図ることができます。
注意
多くの場合、使用する 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 やロールに応じて、アプリケーションが表示するコンテンツを動的に変更することもできます。 たとえば、マネージャーにサイトへのアクセス権を与えたり、アクセス権の低いユーザーでは閲覧できないコンテンツをマネージャーが閲覧できるようにしたりできます。 |