CodeZine(コードジン)

特集ページ一覧

ASP.NET Coreの雛形コードを見てみよう

いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは? 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/12/12 13:00

目次

Webリクエストの挙動とミドルウェアの仕組み

(3)個々のリクエスト処理を設定するConfigureメソッド(Startupクラス)

 3番目に呼び出されるConfigureメソッドでは、個々のHTTPリクエストで処理する流れ(パイプライン)を登録します。IApplicationBuilder引数に対してUse~メソッドで実行順に登録します。またILoggerFactory引数に対してログの設定を行います。

リスト StartupクラスのConfigureメソッド
public void Configure(IApplicationBuilder app,
      IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    // ログ設定を設定ファイルから読み込みコンソール表示
    loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();

    if (env.IsDevelopment())
    {
        // 開発環境では開発用例外ページとブラウザリンク機能を使用
        app.UseDeveloperExceptionPage();
        app.UseBrowserLink();
    }
    else
    {
        // 開発環境以外では「/Home/Error」の例外ページを使用
        app.UseExceptionHandler("/Home/Error");
    }

    // 静的ファイルを使用
    app.UseStaticFiles();

    // MVCを使用
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

 このコードでは「app.UseExceptionHandler(例外処理)」「app.UseStaticFiles(静的ページ)」「app.UseMvc(MVC処理)」の順で処理を登録しています。

 従来のASP.NETでは、HttpModule(イベントに応じた特定の処理)やHttpHandler(拡張子に応じた挙動)にて処理を制御していましたが、ASP.NET Coreでは、「ミドルウェア」という仕組みにてWebアプリケーションを制御します。

ASP.NET Coreのリクエストを制御するミドルウェアの仕組み
ASP.NET Coreのリクエストを制御するミドルウェアの仕組み

 この図にあるように、それぞれのミドルウェアは、登録された順に処理を行い、次のミドルウェアに制御を渡していきます。最後まで行けば、逆順で処理が戻ってきます。認証エラーなど、途中で中断することが必要な場合は、そこで中断することも可能です。

 標準で、次のようなミドルウェアが用意されています。これらのミドルウェアは必要に応じて追加したり、削除したりできます。

ASP.NET Coreの標準で提供されているミドルウェア
組み込みのミドルウェア 説明
Authentication 認可に関するミドルウェア
CORS CORS(Cross-Origin Resource Sharing)設定に関するミドルウェア
Routing リクエストのルーティングを設定するミドルウェア
Session ユーザーセッションを管理するミドルウェア
Static Files 静的ファイルを扱うミドルウェア

 例えば、静的ファイルが不要であれば、UseStaticFilesメソッドを削除すれば良く、セッションを使いたければUseSessionメソッドを追加します。ミドルウェアの詳細はMiddlewareのページを御覧ください。

 以上、Webアプリケーションの挙動を指定できました。中編にて紹介した通り、デバッグ実行すれば、Webサーバーが起動し、ブラウザにて結果を確認することができます。

ASP.NET MVCの基本を理解するには

 MVCの処理の部分は以前のMVC5の挙動と大きくは変わりませんので、こちらのASP.NET MVC解説記事などを参考にしてプログラムを書いてみると良いでしょう。

[コラム]ASP.NET Coreで採用されているテスティングフレームワーク「xUnit.NET」

 MacやLinuxでのテストも想定されるため、ASP.NET CoreではxUnit.NETが標準のユニットテストフレームワークとして採用されています。xUnit.NETはNUnitとMsTestの開発に携わったBrad Wilson氏とJames Newkirk氏が関わった新しいテストツールです。TestやFitxureではなく、Factという属性を付与することが特徴的です。

連載のまとめ

 これまで全3回にわたって、ASP.NET Coreについてご紹介してきました。新たに登場したASP.NET Coreは、オープンで柔軟な基盤として生まれ変わりました。Windowsデベロッパー向けという印象が強かったASP.NETとC#ですが、LinuxやLL言語の開発者に対しても認知される機会が増えようとしています。本稿で紹介した内容は、簡単に試せますので一度試してみてはいかがでしょうか。

参考資料



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは?

著者プロフィール

  • WINGSプロジェクト 青木 淳夫(アオキ アツオ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きた...

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5