EF 4.1または別のORMを使用してASP.NET MVC 3 Webサイトを設計するためのベストプラクティスを検索するのに多くの時間を費やしました。私はこれを見つけたtutorial on Implementing the Repository and Unit of Work Patterns in an ASP.NET MVC Application。それは良いチュートリアルだったし、何かを学んだ。だから、これは私に考えさせて、スタック上の人々から知りたかったのは、これがあなたが使うものでしょうか?どうしてあなたのウェブサイトをどのようにデザインしましたか?私は、物事を行う正しい方法を学び、一方の方法がもう一方の方法よりも優れている理由を理解したい。ASP.NET MVC 3ベストプラクティス/デザイン
答えて
最初に、Entity Frameworkは、リポジトリパターンと作業パターンの単位を実装しています。
- は、基礎となるORM
- の可能性が根底ORM に付加価値を提供していません狭くなる:エンティティフレームワークのような近代的なORMの上に作業パターンのリポジトリとユニットを実装する抽象化の追加の層であり、
- はせいぜい無価値であるが、
ような実装の一つの目的は、リポジトリ内のクエリロジックをカプセル化することで、単一責任の原則(SRP)などのない1クエリは示唆している有害かもしれませんしかし、いくつかのクエリはSRPに違反しています。あなたができることは、あなたのORMに依存し、大規模なクエリロジックを単一のクエリクラスにカプセル化することです。
抽象レイヤーに抽象レイヤーを追加するなどして、「SOLID」のようなより一般的なデザインガイドラインを使用して問題を解決しようとすることをお勧めします。
Ayende Rahienは、アプリケーションに適用される、いわゆるベストプラクティスを扱うhis blogでブログの記事(here、here、here、here、here、here、hereとhere)一連のノースウィンドスターターキットアプリケーションをレビュー。これは素晴らしい読書です!
ありがとう私はブログをチェックします。ベストプラクティス/パターンを使用するタイミングとその理由を理解することが本当にあります。 – Cam
-1 "modern ORM"と併用した場合、リポジトリパターンが "無価値"になる – BZink
エンティティの上にRepositoryパターンとUnit of Workパターンを実装する文脈では、文句は「無駄ではあるが有害かもしれない。フレームワーク... – saintedlama
- 1. ASP.NET MVC 3は、Asp.net MVC 3ではデータベース
- 2. ASP.NET MVC 3 - アクション
- 3. ASP.Net MVC 3 Html.TextAreaFor
- 4. ASP.NET MVC 3リアルタイムイベント。
- 5. ASP.NET MVC 3 - カスタムバリデータ
- 6. Asp.net MVC 3キャッシング
- 7. asp.net mvc 3モデルバインドドロップダウン
- 8. ASP.NET MVC 3 ModelState
- 9. ASP.NET MVC 3:EF
- 10. ASP.NET MVC 3カミソリショーダイアログ
- 11. asp.net mvc 3 highchart
- 12. asp.net MVC 3カミソリレイアウトエラー
- 13. ASP.NET MVC 3プリコンパイル
- 14. Asp.Net MVC 3セキュアログイン
- 15. ASP.Net MVC 3 Grid
- 16. ASP.NET MVC 3 RC
- 17. ASP.NET MVC 3
- 18. ASP.Net MVC 3 AutoMapper
- 19. asp.net MVC 3 + EntityFramework
- 20. MVC 3のASP.NET MVC 4テンプレート
- 21. ASP.NET MVC 3 - ViewModelベストプラクティス
- 22. Asp.net MVC 3 - カスタムモデルは
- 23. ASP.NET MVC 3のアップデートパネル
- 24. ASP.Net MVC 3 EditorFor CheckBoxList
- 25. deploying asp.net mvc 3 website
- 26. ASP.NET MVC 3のメンバーシップ
- 27. ASP.NET MVC 3のグリッドコントロール
- 28. はasp.netのMVC 3
- 29. ASP.NET MVC 3とWordpress
- 30. ASP.Net MVC 3のドキュメントビューア
これらの抽象化はすべて、特定の一連の要件に対応するために行われます。そのような抽象化は、あなたの要求に適さないかもしれません。問題はあまりにも一般的です。あなたのドメイン、要件、制約などの詳細を提供してください – Eranga
これは一般的な質問の詳細です。チュートリアルのようなアプローチをいつ、そしていつ、なぜ選択するのか、そしてそこに他のオプションがあるのかを本当に理解したいと思います。 – Cam
コンテキストのない設計の選択については、無用です。 – Eranga