3

私はこの質問の情報を読みました:コントロールと標準のHTMLですが、それでもかなり混乱しています。

状況は、私がウィザードを作ったウェブプロジェクトをするように頼まれたということでした。私がプロジェクトを終えたとき、誰もが私がなぜを使用したのかと尋ねました<asp:Wizard...>。これが求められていたものだと思いましたが、明らかにそうではなかったので、その後、サーバーコントロールは単なるプロトタイピングツールであると信じるようになりました。

ただし、次のプロジェクトでは、C#コードビハインドを介してDBクエリを実行し、HTMLを介して結果をロードしました。次に、グリッドビューとデータセットを使用しなかった理由を尋ねられました。

誰かが特定のサーバーコントロールに対して特定のhtmlコントロールを使用することを選択する理由とその理由の長所と短所のリストを持っていますか?私はリストを探していると思います...どのサーバーコントロールを使用しても大丈夫ですか、そしてその理由は何ですか?

編集:この質問は自由形式だと思うので、さらにいくつかの具体的な質問を明確にします...

  1. asp:Labelなどの非常に単純なコントロールを使用しても大丈夫ですか、それともスペースを無駄にするだけですか?そうしないと、背後のコードでhtmlにアクセスするのが難しいようです。

  2. 絶対に使用してはいけないコントロールがいくつかありますか?

  3. 各コントロールの長所と短所を教えてくれる優れたリソースを持っている人はいますか?

4

2 に答える 2

3

サーバーコントロールはViewStateに依存し、柔軟性を制限します

サーバーコントロールは、WinForms開発者にWeb開発を紹介するための強力なツールでした。サーバーコントロールが提供する主な利点は、ステートフル感とイベント駆動型開発モデルです。しかし、WebFormsとサーバーコントロールの導入以来、Web開発の状態は成熟してきており、全体としてますます批判的な見方に挑戦しています。

サーバーコントロールの主な問題は、Webの動作を抽象化しすぎて、その際にViewStateデータとサーバーリソースに依存して魔法を実行することです。ViewStateデータを過度に使用すると、ページのサイズが大幅に肥大化し、パフォーマンスの問題が発生する可能性があります。

これで、ViewStateをオプトアウトすることが可能になりますが、それまでは、通常のHTMLコントロールに頼る方がよいでしょう。

HTMLコントロールを使用すると、Webページのコンテンツを正確に制御でき、Webページで必要な動作をより柔軟に行うことができます。サーバーコントロールは、クライアント側の柔軟性を制限し、サーバー上で多くの作業を強制します。これは、優れたJavaScriptフレームワークを使用してブラウザーで簡単に実行できます。

于 2010-04-13T17:10:22.887 に答える
1
  1. asp:Labelなどの非常に単純なコントロールを使用しても大丈夫ですか、それともスペースを無駄にするだけですか?そうしないと、背後のコードでhtmlにアクセスするのが難しいようです。

サーバー側のコードでコントロールにアクセスする必要がある場合は、サーバーコントロールを使用してください。そうでない場合は、しないでください。

  1. 絶対に使用してはいけないコントロールがいくつかありますか?

私の(中級レベルの)経験ではありません。ウィザードコントロールは、使用方法を理解すると、宣伝どおりに機能します(すべての機能を自分でコーディングすることを想像してから、計算を行います)。私はそれを使用しました、そしてそれはデータの中間の保存でスムーズで機能的な複数ページのサインアップフォームをもたらしました。

  1. 各コントロールの長所と短所を教えてくれる優れたリソースを持っている人はいますか?

私はしませんが、適切な状況に適切なコントロールを使用することをお勧めします。たとえば、RepeaterとGridViewの違いを調べて、ニーズに最適な選択を使用してください。

もちろん、代替手段があります。1つは、MVCが勢いを増していることです。個人的に私はまだそれを学ぶことを約束していません。インタラクティブフォームとAJAXに関する限り、多くの.NET開発者は、サーバー側への転送メカニズムとしてJSONを使用して、検証とAJAX(UpdatePanelsは使いやすく、ひどく非効率的)にJQueryを使用することを選択します。

于 2010-04-13T17:37:53.807 に答える