1

ASP.NET MVC プロジェクトのセットアップ方法について私が見つけたほとんどの (ほぼすべて?) 例は、コントローラーで直接データベース コンテキストにアクセスしています。

たとえば、次のようにします。

public class MoviesController : Controller
{
    private MovieDBContext db = new MovieDBContext();

    //
    // GET: /Movies/

    public ViewResult Index()
    {
        return View(db.Movies.ToList());
    }

また、データベース内のテーブルにデータ ソースとして直接バインドできるコントロール (少なくとも aspx ビュー エンジンの場合) が多数あることも知っています。これにより、データが自動的に表示されます。

私にはこれは奇妙に感じられ、プレゼンテーション層とデータベースの間に何らかの分離が必要です。ビューで使用する前に、データベースからビュー モデルにデータをマップする、ある種のビジネス レイヤーやデータ レイヤー。それは私だけですか、それとも簡単に実行できるので、すべてこのような例ですか? 私が見逃している大きな利益はありますか?少し速いと思いますが、ビューと同じモデルをデータベースで使用するべきではないように感じます。最終的に、データベース モデルがビュー モデルから分離されている、より適切な例を見つけました。しかし、これは 100 のうちの 1 つの例です。

これについてどう思いますか?

4

3 に答える 3

3

私も同じようにあなたの懸念を理解しています。そこにある例のほとんどがビューモデルを使用していないのは本当に残念です。このため、これらの記事で見られる最も些細な例とは異なる実際のアプリケーションの実装を開始するとき、人々は多くの苦労をしています。

コントローラからデータベースに直接アクセスする限り、これはそれほど大きな問題ではないと思います。抽象化レイヤーが必要なく、アプリケーションに付加価値をもたらさない場合は、実際には多くの抽象化レイヤーを実装する必要はありません。ジミー・ボガードは、抽象化を制限することをテーマにした優れたブログ投稿を書きました。

于 2012-09-26T09:02:17.567 に答える
1

ほとんどの MVC チュートリアルでは、単に実行できるという理由だけでその方法を教えており、通常はコントローラーの説明がモデルの説明の前に行われます。

たとえば、ムービー アプリのチュートリアルを見てみましょう - http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3

これらのチュートリアルの大部分では、最初にビューを使用してデータを表示する方法を説明し、次にコントローラーを使用してビューに表示し、モデルにデータを入力してビューに指示します。コントローラー。

于 2012-09-26T09:02:20.863 に答える
1

例をシンプルに保ち、目の前の主題に焦点を当てるためです。

于 2012-09-26T09:23:12.680 に答える