ASP.NET Coreの概要を理解してセットアップしよう
いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは? 第1回
2016年6月27日、WindowsだけではなくMacやLinuxといったマルチプラットフォームで動作する.NET環境、.NET Core 1.0、ASP.NET Core 1.0、Entity Framework Core 1.0が公開されました。そこで、本稿ではC#を用いてWebアプリケーションを開発できる「ASP.NET Core」について紹介します。
なお、この記事は2014年に公開した『クラウド時代に最適化されるASP.NET vNextとは』を大幅に加筆修正しております。全3回に渡り、既存のASP.NET MVCとの相違点を中心に紹介します。
ASP.NETの歴史
1996年のActive Server Pages、2002年のASP.NET、2009年のASP.NET MVCというように、Microsoft社は約6年に1回のペースで新しいWeb技術を公開してきました。そして、ついに2016年「ASP.NET Core」を公開しました。最新のASP.NET Coreはオープンソースで開発されており、プラットフォームに依存しない柔軟な基盤となりました。本稿では、Visual Studioで生成される基本テンプレートを元に「ASP.NET Core」の概要についてご紹介します。
ASP.NET Coreとは
ASP.NET Coreは、ASP.NET 4.6の後継として「ASP.NET 5.0」という名前で呼ばれていた時もありましたが、最終的には「ASP.NET Core 1.0」という別系統のラインナップとなりました。ASP.NET Coreでの大きな違いは、動作するOS環境がWindowsに加えMacとLinuxに正式に対応したことです。
ASP.NET 4.6とASP.NET Core 1.0の主な相違点を見てみましょう。
| 名前 | ASP.NET4.6 | ASP.NET Core 1.0 |
|---|---|---|
| 正式対応OS | Windowsのみ | Mac/Linux/Windows |
| 対応プラットフォーム | .NET Frameworkのみ | .NET Framework/.NET Core |
| IISへの依存 | 有 | 無 |
| MVC/WebAPI/WebPages機能 | ○(別クラス) | ○(統合済み) |
| WebForm機能 | ○ | × |
| WebService機能(asmxやWCF) | ○ | × |
| オープンソース開発 | × | ○ |
これらの「機能」「プラットフォーム」「Webサーバー」「OS」の関係を整理すると下図のようになります。
これまで個別の機能であった「ASP.NET MVC」「WebAPI」「WebPages」は、ASP.NET Coreで再設計され、1つに統合されました。これらを含め、ASP.NET Coreではオープンソースで開発されていることも大きな特徴と言えるでしょう。
.NET Coreとは
ASP.NET Coreでは、従来の「.NET Framework」だけではなく、マルチプラットフォームで動作する「.NET Core」を使用できるようになりました。.NET Coreと.NET Frameworkの相違点についても見てみましょう。
| 機能 | .NET Framework | .NET Core |
|---|---|---|
| 対応OS | Windowsのみ | Mac/Linux/Windowsなど |
| インストール方式 | インストーラーで導入 | アプリケーション別に取得 |
| 主な特徴 | OSに1つの制約あり | アプリに応じて複数導入可 |
| オープンソース | × | ○ |
| 実行コマンド | EXE実行またはDLL呼び出し | dotnetコマンドから呼び出し |
従来の.NET Frameworkでは、各サーバーにインストールする際、他アプリへの影響を心配してバージョンアップに慎重になる必要がありました。これに対して、.NET Coreでは、各アプリケーションがそれぞれ必要な.NETライブラリを利用できます。
さらに、Linux/Mac/Windows共通で使用できるコマンドラインインターフェース「dotnetコマンド」が用意されています。このコマンドを使用することで、リポジトリから取得してきたソースコードを、環境を意識することなく依存解決を行い、ビルドし、実行できるようになりました。
新しいWebサーバー「Kestrel」
従来のASP.NETアプリケーションではIISと連携して動作していましたが、ASP.NET CoreではIISに依存することなく動作します。libuvベースのKestrelという新しいWebサーバーが提供され、IISやNginxとの連携することもできます。
この記事は参考になりましたか?
- いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは?連載記事一覧
-
- ASP.NET Coreの雛形コードを見てみよう
- ASP.NET Coreアプリケーションをビルドして起動してみよう
- ASP.NET Coreの概要を理解してセットアップしよう
- この記事の著者
-
WINGSプロジェクト 青木 淳夫(アオキ アツオ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
