ASP.NET Coreの雛形コードを見てみよう
いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは? 第3回
本稿では、WindowsだけではなくMacやLinuxといったマルチプラットフォームで動作するASP.NET Coreについて紹介します。前編では、ASP.NET Coreの概要、セットアップ、Project.jsonファイルについて、中編では、依存性の解決方法、新しいツール、実行時の挙動について紹介しました。後編にあたる本稿では生成されたASP.NET Coreのコードの概要をご紹介いたします。
エントリポイント「Main」メソッド(Programクラス)
それでは、プロジェクトテンプレートにて生成されたASP.NET Coreのコードについて見ていきましょう。本稿では、従来のASP.NET MVCのコードと異なる箇所を中心に紹介していきたいと思います。
ASP.NET Coreの起動時には、コンソールアプリのように「public static void Main」が最初に呼び出されます(そのため対象DLL内に「staticなMainメソッド」が1つだけあることが条件となります。メソッド名はproject.jsonのentryPoint属性で変更できます)。
public class Program
{
// staticのMainメソッドが開始場所
public static void Main(string[] args)
{
// WebHostBuilderでホスト設定し、WebHostを構築
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
// WebHostの起動
host.Run();
}
}
Webサーバーの設定を行う「WebHostBuilder」
ASP.NET CoreのWebサーバーを起動するには、WebHostBuilderクラスにてWebサーバーの設定を行います。そのため、ここのMainメソッドでは、WebHostBuilderクラスに対してUse~メソッドをつなげていき、Webサーバーの設定を行っています。
ここでは、以下の内容を指定しています。
- Kestrelサーバーの使用
- カレントディレクトリの指定
- IIS統合
- 起動用Sartupクラス
挙動としては、WebHostBuilderクラスのBuildメソッドを呼び出すと、設定に基づいた「WebHost」クラスが生成されます。そしてRunメソッドを呼び出すことでWebサーバーが起動されます。
Webサーバーであるホスト「Host」
ASP.NET Coreアプリケーションでは、Webサーバーである「ホスト(Host)」を必要とします。プログラム中にてホストを起動することで、Webアプリケーションとして動作します。
ホストはIWebHostインターフェイスを実装するクラスで、WebサーバーとしてHTTPリクエストを受信し、そのライフサイクルを制御します。WebHostBuilderの場合、WebHostクラス(Microsoft.AspNetCore.Hosting.Internal名前空間)を返します。
[コラム] GitHubで開発されているASP.NETプロジェクト
ASP.NET Coreの開発はオープンソースで行われています。そのため、GitHub ASP.NETページで、多くのプロジェクトのソースを見ることができます。以下に注目度の高いリポジトリの一例を紹介します。
| リポジトリ名 | 概要 |
|---|---|
| DependencyInjection | DI(IoC)機能 |
| Docs | 説明ドキュメント群 |
| EntityFramework | データアクセス技術Entity Frameworkの.NET Core版 |
| Hosting | Webサーバー(ホスト) |
| Identity | ユーザーとメンバシップ管理 |
| MVC | Webアプリケーションとサービスのためのフレームワーク |
| MusicStore | サンプルコード |
| Razor | cshtmlにて編集するMVCのビュー |
| Routing | ルーティング制御 |
| Templates | Visual Studioのテンプレート |
| Tooling | Visual Studioのツール |
興味を持たれた方はソースコードや開発状況をチェックしてみてはいかがでしょうか。
この記事は参考になりましたか?
- いよいよ登場「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編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
