
翻訳者から:ここに、ASP.NET MVCアプリケーションを開発するときに使用することを推奨する12の優れた方法があります。 ASP.NET MVCを見て、このフレームワークで最初の一歩を踏み出している人のために、この短いリストを翻訳することにしました。 これらのヒントが、ASP.NET MVCのアーキテクチャをよりよく理解し、プロジェクトを開発する際に適切な決定を下すのに役立つことを願っています。 いくつかのヒントは議論の余地がありますが、著者が自分の意見を述べていることを忘れないでください。
コントローラーのベストプラクティス
1. AccountControllerを削除します決して使用することはありません。アプリケーションにデモコードを残すことは非常に悪い習慣です。
2.外界からコントローラーを隠すHttpContext、データアクセスクラス、構成、ロギング、クロックなどに応じて、テスト(またはまったくテストしない)、さらに開発および変更を行う際に、アプリケーションに問題が生じます。
3. IoCコンテナーを使用するルール2を順守するには、IoCコンテナーを使用してすべての外部依存関係を管理します。
私は Ninject v2 を使用していますが、多くのコンテナがあり、さらに、独自のコンテナを
簡単に構築
できます。
4.魔法のラインにノーと言うViewData ["key"]を使用することはありませんが、常に各ビューに対してViewModelを作成し、厳密に型指定されたViewPageビューを使用してください。
マジックストリングは、それが認められても文法的なエラーについては教えてくれないので悪です。そのため、プレゼンテーションが機能しないため、代わりに厳密に型指定されたモデルを使用すると、コンパイル段階でも問題の原因を特定できます。 また、ボーナスとして、IntelliSenseを入手できます。
5.独自の契約を構築するASP.NET MVCをあなたの(またはあなたの会社の)アーキテクチャの基盤として使用します。 デフォルトのクラスを使用する代わりに、クラスが継承される基本的なコントローラーまたはビューで独自の規則を作成します。
6.クエリタイプ(動詞)に注意するRESTモデル(RESTfullのみ)を使用していない場合でも、アクションごとに特定のHttp要求タイプを使用します。
PRG (Post-Redirect-Get)
パターンを受け入れ
ます :GETリクエストでデータを表示し、POSTリクエストでデータを変更します。
ベストプラクティスモデル
7.ドメインモデル!= ViewModelドメインモデルはドメインを表しますが、ViewModelはプレゼンテーションのニーズを満たしていると想定し、これら2つの世界は異なります(通常は異なります)。 さらに、ドメインモデルはデータと動作の組み合わせであり、複雑な型に基づいて構築された階層ですが、ViewModelは単なるDTO(データ転送オブジェクト)であり、フラットな行ベースのモデルです。
AutoMapperを使用して、退屈でエラーが発生しやすいオブジェクトマッピングコードを回避できます。 また、
ASP.NET MVC View Model Patternsという良いレビューを読むことをお勧めします。
8.共有データにActionFiltersを使用します。これは、ASP.NET MVCの最高のコンポーネントモデルのための私のソリューションであり、今後、このトピックに関する記事をさらにいくつか書く必要があります。 異なるビュー間で共有されるデータを受信するためにコントローラーは必要ありません。 私の解決策は、アクションフィルターを使用して必要なデータを取得し、ビュー間で共有することです。 また、部分ビューを使用して表示します。
パフォーマンスのベストプラクティス
9.コードビハインドを使用しない絶対に。
10.機会があるたびにHTMLを書くWeb開発者にとってHTML(CSSとJavaScriptの両方)を書くのは便利だと思います。 したがって、HTMLを非表示にするためだけにHtmlHelpersを使用しないでください(たとえば、Html.SubmitまたはHtml.Buttonの形式で)。 繰り返しますが、このトピックは将来の記事のためのものです。
11. if write HtmlHelperがある場合ビューは馬鹿げている必要があります(そしてコントローラーは細く、モデルは厚くなければなりません)。 ビューで突然「if」と書いていることに気付いたら、HtmlHelperを作成して条件式を非表示にすることを検討してください。
12.ビューエンジンの選択に注意してくださいデフォルトでは、ASP.NET MVCはWebFormViewEngineを使用しますが、私の意見では、これは最良の選択ではありません。 このツールはMVCにより適していると思われるため、
Spark View Engine を使用する
ことを好みます。 私が気に入っているのは、ストリームがHTMLとforeachループで構築され、ifステートメントがHTML属性を介して定義されていることです。
ダウンロード
スライドと
デモコードの両方をダウンロードできます。 または、
オンラインでスライドを見ることができ
ます 。
