SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

.NET最新版でASP.NET Core

ASP.NET Coreとは? .NETの全体像から概要や特徴、サブフレームワークの違いを理解する

.NET最新版でASP.NET Core 第1回


ASP.NET Coreとは?

 .NETにおけるWebアプリケーション開発のためのフレームワークが、ASP.NETです。ASP.NETは.NET Frameworkの時代から存在しており、.NET Core登場以降のASP.NETは特にASP.NET Coreとして区別されます。本連載で扱うのは、このASP.NET Coreです。

 ASP.NET Coreには、Webアプリケーションの目的や開発手法に応じて複数のサブフレームワークが用意されています。開発するWebアプリケーションはどのようなものか、アプリケーションをどのように構成したいかによって、サブフレームワークを選択することができます。ここでは、これらについて簡単に紹介していきます。

ASP.NET Coreのサブフレームワーク

ASP.NET Coreのサブフレームワーク

ページ指向Webアプリケーション(Razor Pages)

 ASP.NET Core Razor Pagesは、MVVMパターンによるWebアプリケーション開発を行えるフレームワークです。MVVMパターンとは、アプリケーションをモデル(Model=ビジネスロジック)、ビュー(View=ページレイアウト)、ビューモデル(View Model)から構成する手法のことを言います。後述するMVCパターンに似ていますが、最後のVMはビューとモデルを紐付けるもので、UI操作によるモデルへの処理の要求や、その結果としてのビューの更新などを担います。ページ指向のWebアプリケーションなら、後述するASP.NET Core MVCより簡単に開発に取り組むことができます。

 ASP.NET Coreに慣れるためにとりあえず取り組むとしたら、このRazor Pagesをお勧めします。ちなみにRazor(レイザー)とはカミソリのことです。Razor PagesのビューエンジンであるRazorはASP.NET MVC 3ではじめて導入され、MVCの「View」の部分を担いました。後述のASP.NET Core MVCに取り組むことを予定されているなら、まずはこのRazor Pagesを理解しておくと良いでしょう。

 Razor PagesによるWebアプリケーションの開発については、第2回と第3回で紹介する予定です。

MVCパターンによるWebアプリケーション(ASP.NET Core MVC)

 ASP.NET Core MVCは、MVCパターンによるWebアプリケーションの開発を行えるフレームワークです。MVCパターンとは、アプリケーションをモデル、ビュー、コントローラ(モデルとビューの仲介)から構成する手法のことを言います。MVCパターンによりビジネスロジックと表示系を明確に分離することで、相互の干渉を抑えたスケーラビリティの高い本格的なアプリケーション構築に柔軟に対応できます。

 ASP.NETにおけるASP.NET MVCは2009年にリリースされ、それまでのWebフォームに替わるフレームワークとして、MVCパターンによるWebアプリケーションの開発を可能にしました。ASP.NET MVCは、バージョン5までが提供されました。バージョン6は提供されず、その替わりにASP.NET Core MVCとしてバージョン1が2016年にリリースされ、現在のASP.NET Core MVCに続いています。

 ASP.NET Core MVCによるWebアプリケーションの開発については、第4回と第5回で紹介する予定です。ASP.NET Core MVCはビューエンジンにRazorを用いるため、Razor Pagesについて理解しておくと習得がスムーズになると思われます。

[NOTE]ASP.NET WebFormsについて

 ASP.NET MVCが登場する前に使われていた、Webアプリケーション開発のためのフレームワークであるASP.NET WebForms(Webフォーム)は、.NET Frameworkにおいてのみ提供されるフレームワークであるため、ASP.NET Coreを扱う本連載では割愛しています。

C#によるクライアントサイド開発(Blazor)

 Blazorは、2018年に登場したばかりの新しいWebアプリケーションフレームワークです。Blazorの最大の特徴は、クライアントサイドにおいてC#言語でプログラムを記述できることです。JavaScriptと併用することもでき、C#からJavaScriptの関数を呼び出したりすることが可能になっています。

 Blazorは、サーバーサイドで動作するBlazor Serverとクライアントサイドで動作するBlazor WebAssemblyに分かれています。双方を用いて開発することができますが、どちらか一方のみを使うこともできるようになっています。

 ちなみにBlazor(ブレイザー)とは造語です。コンポーネント自体はRazor構文で記述し、そこにクライアントサイドを象徴するブラウザ(Browser)の要素が加わり、Blazorという名称になったようです。

 C#によってクライアントサイドの開発はどうなるのかということについては、第6回で概要のみを取り上げる予定です。そこまで待てないという読者は、同じくCodeZineの連載「C#でSPAが実現できる、Blazor WebAssemblyのはじめかた」などを参照してください。

Webサービス(ASP.NET Core Web API)

 ASP.NET Core Web APIは、RESTfulなWeb API(Webサービス)を開発するためのフレームワークです。ASP.NETまではASP.NET MVCと別のフレームワークとして提供されていましたが、ASP.NET Core MVCでは共通のフレームワークとして提供されており、扱いやすくなっています。共通ではありますが、実現しようとするものはWebアプリケーションとは異なるため、本稿では別の項目として紹介します。

 ASP.NET Core Web APIでは、ASP.NET Core MVCと同様にコントローラーベースで各APIの実装をやっていきます。Core 6において簡略化されたWebサービス(Minimal API)が利用可能になっており、よりシンプルな手順でWeb APIを開発できるようになっています。Swagger(OpenAPI)対応の実装がSwashbuckleとNSwagとして提供されており、双方ともほぼ同等の機能を利用することができますが、最近は後者が使われることが多くなっているようです。

 ASP.NET Core Web APIによるWeb APIの開発については、第7回で紹介する予定です。

高速リモート・プロシジャー・コール(gRPC)

 ASP.NET Core gRPCは、gRPCによる高速なクライアント・サーバー間の通信を行うためのフレームワークです。gRPCは、Googleの開発したリモート・プロシジャー・コールのためのプロトコルで、プログラミング言語に依存しないのが特徴です。サーバーサイドに実装されたgRPCサービスを、Web APIよりも高速に利用することができます。ですので、たとえばCRUDなどのデータベース操作といった、レスポンスが重要視されるサービスに適しています。

 ASP.NET Core gRPCによるgRPCクライアントとサーバーの開発については、第8回で紹介する予定です。

リアルタイムWeb(SignalR)

 ASP.NET Core SignalRは、SignalRによるリアルタイムWeb開発のためのフレームワークです。SignalRでは、クライアントサイドに実装されたメソッドをサーバーサイドから呼び出せるようにすることで、サーバーサイドからクライアントサイドへのプッシュ通知などが可能になります。これにより、リアルタイムチャットなどの即時性が必要なアプリケーションの開発が可能になります。

 ASP.NET Core SignalRによるリアルタイムWebの開発については、第9回で紹介する予定です。

 なお、フレームワークとは違いますが、シングルページアプリケーション(SPA)のためのテンプレートがASP.NET Core SPAで提供されています。これにより、AngularやReactのようなJavaScriptフレームワークとASP.NET Coreの相互運用が行いやすくなります。この事例は本連載では扱いませんが、Microsoft Docsの下記ページが参考になるでしょう。

.NETのインストール

 ASP.NET Coreによる開発は、Windows、macOS、Linux、Dockerのそれぞれで行うことができます。本連載では基本的にCLIツールとVSCodeを用いて開発を行っていきますので、プラットフォームにかかわらず、.NETの最新版をダウンロードし、インストールしてください。

[NOTE]英語版のページが開く場合

 上記URLで開くダウンロードページが英語になる場合には、開いているページのURL中の「en-us」を「ja-jp」に変更して開き直すと、日本語のページとなります。

 ただし、統合開発環境であるVisual Studioが提供されているWindowsとmacOSの場合は、Visual Studioと.NETが同時にインストールされますので、.NET単独でのインストールは不要です。本連載では、適宜Visual Studioのウィザードによる操作についても取り上げる予定ですので、これを含めてVisual Studioを使用するのが明らかなら、最初からVisual Studioをインストールしてしまった方が簡便です。この場合は、Visual Studioの最新版をダウンロードし、インストールします(この手順は割愛します)。なお、上記のページからVSCodeのインストールも行うことができます。

 .NETのインストール手順は、おおまかに以下のとおりです。.NETのダウンロードページを開き、対象のプラットフォームのタブ(macOSなら[macOS])を選択します。そこで表示される[.NET SDK x64をダウンロードする]をクリックします。その他のリンクは、この連載では不要なので触ることはありません。

.NETのダウンロード(Linux、macOS、Windows)

.NETのダウンロード(Linux、macOS、Windows)

 これで、インストーラ(macOSではパッケージファイル、Windowsでは実行形式ファイル)がダウンロードされます。ダウンロードされたパッケージファイルをダブルクリックするとインストーラが起動し、.NETのインストールが始まります。インストール自体に難しいところはありません。指示どおりに進めましょう。

 最終的には、.NET SDK、.NET Runtime、ASP.NET Core Runtime(Windowsの場合は.NET Windows Desktop Runtimeも)がインストールされます。ターミナル(Windowsの場合はコマンドプロンプト)を開いて「dotnet --version」コマンドを実行し、以下のようにバージョンが表示されれば正常にインストールされています。

% dotnet --version
6.0.100

まとめ

 今回は、.NET 6とASP.NET CoreによるWebアプリケーション開発の導入として、.NETの全体像、ASP.NET Coreの概要とサブフレームワークの紹介、学習環境としての.NETのインストールついて取り上げました。次回は、個別のサブフレームワークによるWebアプリケーション開発の実践として、まずはRazor Pagesを取り上げます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
.NET最新版でASP.NET Core連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15465 2023/05/26 17:04

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー