1

したがって、私の質問は、人々がベストプラクティスであると考えていることとその理由に関連しています。

しばらくの間、リテラルをページとリピーターにドロップし、コード ビハインドにバインドしてきました。これは悪い習慣と見なされますか? すなわち:

ASPX ページ:

<asp: Literal id="litTextToInsert" runat="Server" />

コードビハインド:

litTextToInsert.Text = objData.MyText;

または (リピーター):

protected void rpt_ItemDataBoundVersion(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        RepeaterItem objItem = e.Item;
        Data.MyObject objDataItem = (Data.MyObject) objItem.DataItem;
        Literal litMyText= (Literal)objItem.FindControl("litTextToInsert");
        litMyText = objDataItem.MyText;               
    }
}

MVC と一般的な WebForms に関するほとんどのデモでは、多くの人が単純にバインド コードをフロント エンドに落とし込んでいるのを目にします。

すなわち:

ASPX ページ:

<%#Eval("MyText") %>

個人的には、誰かがフィールド名を変更したか、開発中に入力を間違えたかどうかを知るのが難しくなるため、これを行うのは好きではありません.ページが読み込まれるまでわからない.

DALなどで何かが変更された場合、強く型付けされたバージョンではビルドが壊れます-私がめちゃくちゃになったことを知らせてくれます。

ASP.Net (例、MVC など) で弱く型付けされたコードを使用しているように見える人が多いのはなぜですか? 何か不足していますか?私はばかで、ポイントを逃していますか?これは、デモ コードを単純化しようとしているからでしょうか?

お知らせ下さい。

4

2 に答える 2

1

.aspx ページでバインディング式を使用すると、間違った構文/使用法についてコンパイル時に警告が表示されないということは正しいです。これは、弱点または強みとして見ることができます。

.aspx ページでのバインド式:

  • 再コンパイルおよび再デプロイせずに .aspx を変更できます。
  • その場でバインディング式を追加/変更できます
  • コードビハインドの混乱を減らす
  • 型付けが弱い
  • 表示ロジックを所属する場所に保持する

同様に、背後にあるコードに入札します。

  • コードベースがまとまっていることを確認します (.aspx ページは分岐しません)。
  • 強く型付けされた
  • 静的コード分析がうまく機能します

他の人は、いずれかのオプションに賛成または反対する他の多くの例を考え出すと確信しています.

私の意見では、使い慣れたものを使用する必要があります。大きなオブジェクト グラフがバインドされている .aspx ページだけでバインディング式を使用する人もいます。他の人は、コードビハインドファイルでのみそうするようにし、それは彼らにとってもうまく機能します.

于 2010-02-23T00:19:04.337 に答える
1

「通常の」aspxページでは、バインドは型保存ではなく、Odedが言ったようにコンパイル時のエラーは発生しません. ただし、MVC では、これは別のカップです。ここでは、コンパイル時の警告とエラー、さらにはインテリセンスが表示されます。

「通常の」aspx ページでは、イベントは aspx ページと統合する必要があるコード ビハインド ページで処理されます。MVC では、イベントはコントローラーによって処理され、ビューは従来の ASP と同様に「単なるテンプレート」と見なすことができます。ただし、従来の ASP に対する大きな利点は、デザインとコンパイル時のサポートが拡張されていることです。

于 2010-02-23T00:24:38.370 に答える