Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

ASP.NET C#

ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld

投稿日:2021年4月4日 更新日:

<目次>

(1) ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld
 (1-1) ASP.NET MVC5とは?
 (1-2) MVCのアーキテクチャ概要
 (1-3) ASP.NET MVCを使う利点

(1) ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld

(1-1) ASP.NET MVC5とは?

「MVC」はアーキテクチャのデザインパターン(問題の解決策)の1つで、ユーザーインターフェイス(画面とか)を作るために使います。

一般的にMVCのアーキテクチャを使うと、保守性が高い&再利用可能&テストも容易に行えるアプリケーション開発を行う事ができます。

「ASP.NET MVC」はMicrosoft社が提供するウェブアプリを開発するためのフレームワークで、名前の通り「MVC」のアーキテクチャに基いています。
 

(1-2) MVCのアーキテクチャ概要

MVCは「Model」「View」「Controller」の頭文字を取った単語で、MVCではアプリケーションをこの3つの部品に分解していきます。

(図111)

(1-2-1) モデル(Model)とは?

「モデル」の実態はC#のクラスですが、役割として「データ」を扱いと「ビジネスロジック」の処理を担っています。ビジネスロジックというのは、UI(画面)とDB(データベース)との間のデータやり取りを行うためのロジックの事です。基本的にデータベースの更新処理はModelを通じて行います。
 
例えば「従業員」というModelがあったとすると、そこには「従業員ID」「従業員名」「お給料」「上司」「入社年度」などの様々な情報を含んでいます。
 
(C#の例)
namespace MVCDemo.Models  
{  
    public class Employee  
    {  
        public int EmpId { get; set; }  
        public string Name { get; set; }  
        public string Email { get; set; }  
        public double Salary { get; set; }  
    }  
}

目次にもどる

(1-2-2) Viewとは?

「ビュー」はUI(画面表示)を担当しており、モデルから受け取ったデータを表示する役割を担っています。ビューはHTMLの形式で表現されており、HTML要素(ボタンやプルダウンやテキストボックス等)をレンダリングします。
 
「ASP.NET MVC」の場合、ビューの拡張子には以下の種類があります。
「.aspx」
「.asp」
「.html」
「.cshtml」
「.vbhtml」
 
(※言語によって種類は異なり、Java(JSP/Servlet)の場合は「.jsp」がメインです)
 
「.cshtml」と「.vbhtml」の特徴は「MVCエンジン」(Viewエンジン)をロードするための「ハンドラマッピング」を提供している点です。
 
「ハンドラマッピング」はクライアントからの「リクエスト」と「ハンドラオブジェクト」の対応関係を定義するインターフェイスです。
 
「Viewエンジン」というのはViewの中に埋め込まれているコードをコンパイルして、有効なHTMLとして完成させる役割を果たします。Viewエンジンの具体例として、例えば「ASPX」や「Razor」や「Spark」や「NDJango」などがあります。
 
(C#の例)
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <div>
 HelloWorld
    </div>
</body>
</html>

目次にもどる

(1-2-3) Controllerとは?

コントローラはブラウザから来るユーザーリクエスト(HTTPリクエスト等)を処理する部品です。リクエストの内容をチェックし、適切なアクションメソッド(クライアントからのリクエストに対して、処理を実行するためのpublicメソッド)を選択し、それに沿ったView(画面)を返却する、いわば処理の振り分けを担当します。
 
(C#の例)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVCTest.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
    }
}

目次にもどる

(1-3) ASP.NET MVCを使う利点

①コードの分離
プレゼンテーションロジック(≒ユーザに直接触れる部分)とデータベースに関するロジックとを分離する事ができます。これにより保守や開発がしやすくなります。MVCではModelとViewとControllerの3種類に分けます。

②疎結合である
モジュール間の依存性が低く、ViewはModelには余り依存しないといった特徴があります。

③分業可能
ModelやViewは依存性が低いので、並行で開発する事が出来ます。それにより複数人での分業なども可能となります。

④テストの容易性
ASP.NETのプロジェクトを新規に作成する際など、一緒にセットでテスト用のプロジェクトを作成する事が出来、単体テスト用のソースを簡単に準備する事ができます。
(参考)ASP.NETの単体テストプロジェクトを新規に作成する方法

目次にもどる

(1-4) ASP.NET MVCを使ってHelloWorld(サンプルサイト作成)

(参考)ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-ASP.NET, C#

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

VisualStudioで文字列の検索をソリューション内やプロジェクト内で行う方法

<目次> (1) VisualStudioで文字列の検索をソリューション内やプロジェクト内で行う方法  (1-1) 検索方法   (1-1-1) 「検索と置換」画面を開く   (1-1-2) 検索条件 …

C#でファイルを1行ずつ読み込み処理を行うサンプルプログラム

<目次> (1) C#でファイルを読み込み処理を行うサンプルプログラム  (1-1) 構文  (1-2) サンプルプログラム  (1-3) サンプルプログラムの補足 (1) C#でファイルを読み込み処 …

C#で見るgetやsetとは?プロパティの基礎についてご紹介

<目次> (1) C#で見るgetやsetとは?プロパティの基礎についてご紹介  (1-1) プロパティとは?  (1-2) プロパティの構文  (1-3) サンプルプログラム  (1-4) プロパテ …

C#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説

<目次> (1) C#のIEnumerableとは?使い方(foreachでの要素取り出し)を順を追って解説  (1-1) IEnumerableとは?  (1-2) IEnumerableの実装の流 …

C#のabstract(抽象クラス)とは?継承やoverrideの手順や使い方をご紹介

<目次> (1) C#の抽象クラスやabstractとは?意味や使い方をご紹介  (1-1) 抽象クラスとは?  (1-2) 抽象クラスの使い方   (1-2-1) 抽象クラスの定義   (1-2-2 …

  • English (United States)
  • 日本語
Top