1.21 jigowatts

Great Scott!

ASP.NET MVCはじめました~悩める初心者の入門編

概要

以下の書籍を読んでASP.NET Web Formsだけではダメだと思い知りASP.NET MVCを始めることにしました*1

.NET開発テクノロジ入門 2014年版 VisualStudio2013対応版 (MSDNプログラミングシリーズ)

.NET開発テクノロジ入門 2014年版 VisualStudio2013対応版 (MSDNプログラミングシリーズ)

本当はMVC5がよかったけど、職場の環境に合わせてMVC2です。
まずは基本的なMVCというデザインパターンの理解ができればいいかなと。いずれRoRで開発とかしてみたい。

環境

チュートリアル

まず何からやったらいいのかわからなかったのでこちらから写経してみました。
Getting Started with ASP.NET MVC 5 | The ASP.NET Site

MVC5のチュートリアルなのでいろいろ違う!
Razor構文すてきやん!せめてMVC3にすべきか。

そして一通り書いてみて見えてきたぞ、MVC

Model ⇒ Viewに渡すコンテナクラスのようなもの?
View ⇒ 見た目
Controller ⇒ ビジネスロジックとかメインの処理はここに書くのか?

そしてあらためてMVCを調べてみると全然違った!

model: アプリケーションデータ、ビジネスルール、ロジック、関数
view: グラフや図などの任意の情報表現
controller: 入力を受け取りmodelとviewへの命令に変換する


ビジネスロジックはモデルに書くのか。
Entity Frameworkがいろいろやってくれるから、これ含めModelということなのかな?ControllerからEntity Framework経由でデータを処理するのはビジネスロジックではないということか。

//チュートリアルより編集処理のアクションメソッド
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include="ID,Title,ReleaseDate,Genre,Price")] Movie movie)
{
    if (ModelState.IsValid)
    {
        db.Entry(movie).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(movie);
}

チュートリアルではこの辺の書きっぷりがよく理解できませんでした。

現実はもっと複雑なはずですよね?
実際の開発レベルでどこに何を書くか、正解が知りたいです。

ということで、ASP.NET MVCはじめの一歩。

*1:職場では依然Web Formsのみです。業務系アプリ開発なのでMVCを選択しないのかな?