Grow up

生活とプログラミング

.Net Core MVC を使った初めてのWebアプリ開発 #1

はじめに

私はRailsからWebアプリの基礎を学び、現在は.Net Coreで開発をしています。

Webアプリを学ぶ機会を得たのは社外の勉強会に参加した事がきっかけでした。
liberal-arts-beginners.connpass.com

Webアプリ開発が未経験で.Net Core MVC を使ってもよく分からなかったので、
未経験の人でも分かり易いようにWebアプリ開発について解説します。

1つの記事では開発まで収まらなかったため#1では仕組みについてまとめます。
#2からソースコードを用いて開発について解説をしていきます。

Webアプリケーションの仕組み

f:id:knkomko:20190907002020p:plain:w550

Webアプリケーションはクライアント(要求する側)とWebサーバ(要求に応える側)によって構成されています。

● ブラウザ
Webサーバにリクエストを送り、処理結果となるHTMLを表示します。
例:Microsoft Edge, GoogleChrome, FireFox など

● Webサーバソフトウェア
HTML, CSS, 画像をネットワーク上に公開する事ができます。
例:IIS, Nginx, Apach など

● Webアプリケーションサーバ
アプリケーションの実行環境です。開発言語によって変わります。
例:Kestrel (.Net Core), Tomcat (Java), Unicorn (Ruby) など
  ※括弧内には開発言語を表記しています。

● Webアプリケーション
Webアプリケーションには"静的なWebページ"と"動的なWebページ"があります。
静的なWebページでは、URLに登録されている内容をそのまま返します。
動的なWebページでは、ブラウザの入力内容を処理した結果を返します。
例: .Net Core, Java, Ruby など

● データベース
SQL言語でアクセス可能なデータをハードディスクに保存します。
例:SQL Server, Oracle, MySQL など

Model-View-Controller (MVC)

f:id:knkomko:20190907030801p:plain:w350

.Net Core MVC ではMVCの設計に基づいて開発を行います。
MVCを使用すると データを扱う処理 データを表示する処理 を分離できます。
処理を分離して独立性を高めることで修正による他への影響を最小限に抑え、ソフトウェアの品質や生産性を向上させています。
Java, PHP, Ruby, Python などでフレームワークを使った開発でもMVCの設計は利用されています。

● Model
Webアプリケーションのデータを保存します。

● View
WebアプリケーションのUI(ユーザーインターフェース)になります。

● Controller
モデルからデータの取得や、モデルのデータをビューに提供して表示します。
コントローラーではユーザーがブラウザに入力した内容や操作を処理します。

まとめ

Webアプリケーションの仕組みとMVCの設計について説明しました。
#2 ではMVCの設計に基づいてWebアプリケーションの開発について説明していきます。
ASP.NET Core MVC の概要 | Microsoft Docsを参考に説明を行います。

参考資料

インフラエンジニアの教科書2 スキルアップに効く技術と知識

インフラエンジニアの教科書2 スキルアップに効く技術と知識

改訂3版 これからはじめるプログラミング 基礎の基礎

改訂3版 これからはじめるプログラミング 基礎の基礎

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

docs.microsoft.com