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