asp.net-mvcasp.net-mvcを使い始める

備考

MVC(Model-View-Controller)アーキテクチャパターンは、アプリケーションを3つの主要コンポーネント(モデル、ビュー、コントローラ)に分けます。 ASP.NET MVCフレームワークは、Webアプリケーションを作成するためのASP.NET Webフォームパターンの代替手段を提供します。 ASP.NET MVCフレームワークは、(Webフォームベースのアプリケーションと同様に)マスタページやメンバシップベースの認証などの既存のASP.NET機能と統合された、軽量でテスト可能なプレゼンテーションフレームワークです。 MVCフレームワークは、System.Web.Mvcアセンブリで定義されています。

MVCフレームワークには、次のコンポーネントが含まれます。

  • モデル 。モデルオブジェクトは、アプリケーションのデータドメインのロジックを実装するアプリケーションの一部です。多くの場合、モデルオブジェクトは、データベース内のモデル状態を取得して格納します。たとえば、Productオブジェクトはデータベースから情報を取得して操作し、更新された情報をSQL ServerデータベースのProductsテーブルに書き戻すことがあります。小さなアプリケーションでは、モデルは物理的なものではなく、概念的な分離であることがよくあります。たとえば、アプリケーションがデータセットを読み取り、それをビューに送信するだけの場合、アプリケーションには物理モデルレイヤーおよび関連付けられたクラスがありません。その場合、データセットはモデルオブジェクトの役割を担います。
  • ビュー 。ビューは、アプリケーションのユーザーインターフェイス(UI)を表示するコンポーネントです。通常、このUIはモデルデータから作成されます。たとえば、Productオブジェクトの現在の状態に基づいて、テキストボックス、ドロップダウンリスト、およびチェックボックスを表示するProductsテーブルの編集ビューがあります。
  • コントローラ 。コントローラは、ユーザーインタラクションを処理し、モデルを操作し、UIを表示するレンダリングするビューを最終的に選択するコンポーネントです。 MVCアプリケーションでは、ビューは情報のみを表示します。コントローラは、ユーザの入力および対話を処理し、これに応答する。たとえば、コントローラはクエリ文字列の値を処理し、これらの値をモデルに渡します。次に、これらの値を使用してデータベースにクエリを実行します。

バージョン

バージョン .NETバージョン発売日
MVC 1.0 .NET 3.5 2009年3月13日
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011年01月13日
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 2013年10月17日
MVC 5.1 .NET 4.5 2014-01-17
MVC 5.2 .NET 4.5 2014-08-28
MVC 6.0 .NET 4.5 2015-11-18
コアMVC 1.0 .NET 4.5 2016-07-12
コアMVC 1.1 .NET 4.5 2016-11-18

こんにちはMVC!

ASP.NET MVCはオープンソースのWebアプリケーションフレームワークです。 MVC自体は、3つの主要なコンポーネント( モデルビューコントローラ)を中心に構築されたデザインパターンです。

モデル - モデルはビジネスオブジェクトを反映し、コントローラとビュー間でデータを渡す手段です。

ビュー - ビューは、モデルデータをレンダリングしてユーザーに表示するページです。 ASP.NET MVCビューは、通常、Razor構文を使用して記述されます。

コントローラ - コントローラはクライアントからの着信HTTPリクエストを処理し、通常は1つ以上のモデルを適切なビューに返します。

ASP.NET MVCの機能:

  1. 複雑で軽量なアプリケーションを開発するのに理想的
  2. 簡単に置き換えてカスタマイズすることができる、拡張可能でプラグイン可能なフレームワークを提供します。たとえば、内蔵のRazorまたはASPX View Engineを使用したくない場合は、他のサードパーティのビューエンジンを使用することも、既存のビューエンジンをカスタマイズすることもできます。
  3. アプリケーションのコンポーネントベースの設計をModel、View、Controllerコンポーネントに論理的に分割して使用します。これにより、開発者は大規模なプロジェクトの複雑さを管理し、個々のコンポーネントを処理できます。
  4. MVC構造は、すべてのコンポーネントがモックオブジェクトを使用してインタフェースベースでテストされ、テストされるため、アプリケーションのテスト駆動開発とテスト容易性を向上させます。したがって、ASP.NET MVCフレームワークは、大規模なWeb開発者チームのプロジェクトに最適です。
  5. 承認および認証、マスタページ、データバインディング、ユーザーコントロール、メンバーシップ、ASP.NETルーティングなど、既存の広大なASP.NET機能をすべてサポートします。
  6. ビューステート(ASP.NETに存在する)の概念は使用しません。これは、軽量で開発者を完全に制御できるアプリケーションを構築するのに役立ちます。

シンプルなMVCアプリケーション

人の詳細を表示する簡単なMVCアプリケーションを作成します。 Visual Studioを使用して新しいMVCプロジェクトを作成します。次のように、 Person to Modelsという名前の新しいモデルを追加します。

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}

新しいコントローラをControllersフォルダに追加する:

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}

最後に、 Index.cshtmlという名前の/ Views / Home /フォルダにViewを追加します。

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>