私はASP.NETページにプロパティを追加することを躊躇しがちです。それは私にとって素晴らしいアイデアのようには思えませんでした。しかし、最近私はいくつかのサンプルアプリケーションで採用されている手法を見てきました。ページにカスタムプロパティを追加することに対する私の嫌悪感は否認されているのか、それとも「それは依存している」状況ですか?ASP.NETページプロパティ良い考え方または悪い考え方
答えて
覚えておく必要があるプロパティについては、ページのライフサイクル全体で最後になることが重要です。これは、それらを非常に便利なものにして(ライフサイクルの早い時期にプロパティを設定し、それは後で有効です)、危険です(プロパティが設定される前にアクセスしたり、別のライフサイクルフェーズが変更されたことを認識しません)。
私は大きな効果があったプロパティを見てきましたが、クエリ文字列とSessionをラップするための型として安全な方法です。予想されるクエリ文字列またはセッション値のそれぞれのプロパティを定義すると、将来の開発者が期待しているものと利用可能なものが非常に明確になります。
もう1つの一般的な使用方法は、ViewStateアイテムをラップすることです。ほとんどのサンプルでは、ViewStateがオンになっていると想定されるため、これはサンプルで見ているところです。
なぜ悪いですか?プロパティは本当に単なるメソッドであり、私はあなたがいつもページにメソッドを追加すると確信しています。
プロパティを使用してサーバーサイドページのコードをクリーンアップすることは何も問題ありません。プロパティを使用してセッション状態またはビュー状態情報にアクセスするのが好きです。この方法でデータにアクセスする方法を変更すると、1つの場所のみが変更されます。
Asp.netはコンストラクタベースの注入をサポートしていません。これは、asp.netのプロパティを使用する明確なシナリオです(プロパティベースの注入を使用できます)。
アップデート1:ここでは同様のシナリオであるが、コントロールのための - How to use Dependency Injection with ASP.NET Web Forms
アップデート2:ビューステートまたはクエリ文字列をラップするためにそれらを使用しても大丈夫です。コードビハインドを乱用したくないので、私は注意深くそれを見るでしょう。コードビハインドで折り返しプロパティの1つを使用していると思われる場合は、コードビハインドに多すぎるコードが含まれている可能性があります。このように見て、それらのプロパティに関連付けることができる繰り返しのキャスト/解析を避けるという副作用があります。
私はasp.netページのプロパティを使用して、Session、Viewstate、およびQueryStringにアクセスします。ただコードを書く必要がなくなり、読みやすさが向上します
ページのプロパティに問題はありません。ページが外部コードによってオブジェクトとして操作されることはめったにありませんが、ページを操作することはほとんどできません。それを考えると、ページ上のほとんどのプロパティはプライベートとマークすることができます。すべてのものと同様、例外もあります。最大の
一つのViewState値ラップされたとき、私は私のページのプロパティを持っている使用しています。この場合
protected string TaskName
{
get { return (string)ViewState["TaskName"] ?? string.Empty; }
set { ViewState["TaskName"] = value; }
}
を私からそれにアクセスすることを可能にする「保護」として、私は、プロパティをマークしました私のマークアップ。
- 1. スマーターセッター?良いか悪い考えですか?
- 2. 誤解された良い考え
- 3. カスタムプレリュードモジュール - 悪い考えですか?
- 4. *これは良い考えですか?
- 5. winformsアプリケーションのASP.NETメンバーシッププロバイダを悪い考えですか?
- 6. Asp.net MVC3フレームワークの考え方の理解
- 7. ネストされたTry/Catchブロックは悪い考えですか?
- 8. '='演算子をモーフィングと考える方が良いですか?
- 9. Solr同じマシン内の複数のノード - 良いか悪い考えですか?
- 10. asp.net mvc 2プレビュー1についての考え方
- 11. Webフレームワークプログラミングの考え方
- 12. を考えると仕方
- 13. Djangoモデル - 考える方法
- 14. UITableView NSFetchedResultsControllerの考え方
- 15. DataTableオブジェクトをasp.netセッションに格納するのは悪い考えです。
- 16. Linqはselect()です。SingleorDefault()は悪い考えですか?
- 17. これはリモート接続には悪い考えですか?
- 18. ASP.Netメンバーシップあなたの考え?
- 19. GCCの-fms-extensionsを使うのは悪い考えですか?
- 20. なぜループの内部は悪い考えですか?
- 21. <body>要素のシャドウDOMは悪い考えですか?
- 22. 水平スクロールバーを隠すのは悪い考えですか?
- 23. ネイティブメソッドをオーバーライドするのはなぜ悪い考えですか?
- 24. プロローグの初心者 - これは悪い考えですか?
- 25. indexeddbコマンドの連鎖は悪い考えですか?
- 26. 深いクラスの継承階層 - 悪い考えですか?
- 27. JavaScriptのネストされたリテラル、良い考えですか?
- 28. 一般的な方法の単一リポジトリ...悪い考えですか?
- 29. cellForItemAtIndexPathにNSTextAttachmentを作成したNSMutableAttributedStringは、悪い考え方(パフォーマンスまたは設計上の問題)ですか?
- 30. は、この方法を考える