ASP.NET Coreアプリケーションをビルドして起動してみよう
いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは? 第2回
(5)RazorのTagヘルパー
project.jsonの中では「Microsoft.AspNetCore.Razor.Tools」というツールも設定されています。このツールを使用すると、Razor用のTagヘルパーにてインテリセンスを有効にできます。
ASP.NET MVCのビュー「Razor」では、新しいTag Helpers(タグヘルパー)という機能が使用できるようになりました。これまでは主にHTMLヘルパーを用いていました
@HTML.LabelFor(m => m.Email, new {@class = "col-md-2"})
Tagヘルパーでは、同じ内容を以下の書き方で書けるようになりました。
<label asp-for="Email" class="col-md2"></label>
Tagヘルパーはモデルのマッピング対象を「asp-for」等の属性で指定するだけで良いため、HTMLのまま直感的に書けるメリットがあります。Labelに限らず、Form、Input、Image、Link、Scriptなど数多くの要素にてTagヘルパーを使用できます。独自のTagヘルパーを作ることもできるので、ぜひ活用してみると良いでしょう。
(6)ASP.NET Coreと連携するIISモジュール「AspNetCoreModule」
前編にてご紹介した通り、ASP.NET Coreでは、Kestrelという新しいWebサーバーが提供されています。Visual Studioのテンプレートでは、project.jsonにてIIS統合機能(Microsoft.AspNetCore.Server.IISIntegration)を使用するようになっており、IISとKestrelを連携することができます。
IISとASP.NET Core(Kestrel)の関係
従来のASP.NETではIISのアプリケーションプール(w3wp.exe)のプロセスに、アプリケーションのDLLを読み込んで動作していました。これに対して、ASP.NET Coreでは、IISとASP.NET Coreはそれぞれ別のプロセスとして動作します。この場合、ブラウザからのリクエストをIISが受け取り、ASP.NET Core(Kestrel)に渡します。
上図のように、IISがリクエストを中継するリバースプロキシの役割を果たし、dotnetコマンドで起動されたASP.NET Coreアプリケーションがメインの処理を行います。
IIS設定「Web.config」
ASP.NET Coreでは「project.json」を使うようになりました。そのため「Web.config」ではプロジェクト設定に関する記載は無くなりましたが、IISに関する設定は引き続き記載します。ここでは、IISで受信したリクエストをAspNetCoreに連携するハンドラ「AspNetCoreモジュール」の設定が記載されています。
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
前編のproject.jsonで見たように発行後イベントとして「dotnet publish-iis」コマンドが設定されています。これにより、発行が終わると次のようにWeb.configが変更されます。
- 置換前:processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
- 置換後:processPath="dotnet" arguments=".¥AspNetCoreSample.dll
これによってアプリの「dllパス」を引数とした「dotnetコマンド」が生成され、IISによってKestrelが起動されます。
この記事は参考になりましたか?
- いよいよ登場「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編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
