Loading [MathJax]/extensions/tex2jax.js

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#の例)
  1. namespace MVCDemo.Models
  2. {
  3. public class Employee
  4. {
  5. public int EmpId { get; set; }
  6. public string Name { get; set; }
  7. public string Email { get; set; }
  8. public double Salary { get; set; }
  9. }
  10. }

目次にもどる

(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#の例)
  1. @{
  2. Layout = null;
  3. }
  4.  
  5. <!DOCTYPE html>
  6.  
  7. <html>
  8. <head>
  9. <meta name="viewport" content="width=device-width" />
  10. <title></title>
  11. </head>
  12. <body>
  13. <div>
  14. HelloWorld
  15. </div>
  16. </body>
  17. </html>

目次にもどる

(1-2-3) Controllerとは?

コントローラはブラウザから来るユーザーリクエスト(HTTPリクエスト等)を処理する部品です。リクエストの内容をチェックし、適切なアクションメソッド(クライアントからのリクエストに対して、処理を実行するためのpublicメソッド)を選択し、それに沿ったView(画面)を返却する、いわば処理の振り分けを担当します。
 
(C#の例)
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6.  
  7. namespace MVCTest.Controllers
  8. {
  9. public class HomeController : Controller
  10. {
  11. // GET: Home
  12. public ActionResult Index()
  13. {
  14. return View();
  15. }
  16. }
  17. }

目次にもどる

(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

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

関連記事

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

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

ASP.NETの単体テストプロジェクトを新規に作成する方法

<目次> (1) ASP.NETの単体テストプロジェクトを新規に作成する方法  (1-1) ASP.NET MVCにおける単体テスト機能について  (1-2) ASP.NET MVCにおける単体テスト …

C#で配列に特定の値があるか?をチェックする方法を2つご紹介~ContainsとLINQ~

<目次> (1) C#で配列に特定の値があるか?をチェックする方法  (1-1) 方法①:ListクラスのContainsメソッドを使う方法   (1-1-1) 構文   (1-1-2) サンプルプロ …

Xamarin.FormsでHelloworldする手順+Buttonコントロール追加のサンプルコード紹介

<目次> (1) Xamarin.FormsでHelloworldする手順  (1-1) Xamarin.Formsプロジェクト構成の概要  (1-2) MainPage.xamlの修正  (1-3) …

C#のvarとは?型を調べる方法や制約事項についてもご紹介

<目次> (1) C#のvarとは?型を調べる方法や制約事項についてもご紹介  (1-1) C#のvarとは?  (1-2) サンプルプログラム:varの基本動作確認#1  (1-3) サンプルプログ …

  • English (United States)
  • 日本語
S