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

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

関連記事

C#のIListとは?Listとの違いや使いどころもご紹介

<目次> (1) C#のIListとは?Listとの違いや使いどころもご紹介  (1-1) IListやIList<T>とは?  (1-2) Listとの違い  (1-3) IListの利 …

ASP.NETでViewに値を渡す方法

  <目次> (1) ASP.NETでViewに値を渡す方法  (1-1) 方法1:アクションメソッドの引数に追加  (1-2) 方法2:ViewBagを使う方法  (1-3) 方法3:ビュ …

Xamarin.Formsで画面遷移を実装する手順について+ソースコードも紹介

<目次> (1) Xamarin.Formsで画面遷移を実装する手順について  (1-1) 遷移先ページの追加  (1-2) 画面遷移ロジック追加   (1-2-1) ボタンコントロールの追加   ( …

C#からDB接続でSQLServerに接続してSELECT文を実行する方法

<目次> (1) C#からDB接続する方法~SQLServerへの接続プログラム例もご紹介~  (1-1) 構文(DB接続)  (1-2) 構文(SELECT文発行)  (1-3) サンプルプログラム …

Xamarin.Formsのプロジェクトの構成について~各ファイルの役割や概要について~

<目次> (1) Xamarin.Formsのプロジェクトの構成について  (1-1) プロジェクト構造の概要  (1-2) プロジェクトの初期ファイルの一覧 (1) Xamarin.Formsのプロ …

  • English (United States)
  • 日本語
Top