連載
» 2015年03月20日 12時47分 公開

第2回 Webアプリを手動/自動で作成する連載:OS X/LinuxによるASP.NET 5アプリ開発ガイド(2/4 ページ)

[かわさきしんじ,Insider.NET編集部]

ASP.NET 5アプリのエントリポイント

 今、述べたように、ASP.NET 5のアプリのエントリポイントはいくつかある。

  • StartupクラスのConfigureメソッド: プロダクションコードにおけるASP.NET 5 Webアプリのエントリポイント
  • StartupクラスのConfigureDevelopmentメソッド: 開発時のASP.NET 5 Webアプリのエントリポイント。ConfigureDevelopmentメソッドがない場合にはConfigureメソッドが呼び出される
  • ProgramクラスのMainメソッド: コンソールアプリのエントリポイント

 ConfigureメソッドとConfigureDevelopmentメソッドのどちらが呼び出されるかは、環境変数ASPNET_ENVの値によって決定する。この環境変数が設定されていない、またはその値が「"Development"」の場合、StartupクラスにConfigureDevelopmentメソッドがあればそれが呼び出される(「"Development"」以外には「"Staging"」と「"Production"」を設定可能。だが、筆者が試したところでは「"Development"」以外の値が設定されている場合には、Configureメソッドが呼び出されるようになっているようだ)。

 このようにエントリポイントが二つ用意されているのは、開発時とリリース時に異なるメソッドでアプリの構成をできるようにするためだろう(エラー発生時に開発段階ではデバッグ情報を表示し、プロダクションコードではエラーページのみを表示するとか、開発段階ではConfigureDevelopmentメソッドでモックのセットアップを行うといったことが考えられる)。

 ここでは、GitHubの「aspnet/Home(英語)」にあるサンプルに従い、Configureメソッドをエントリポイントとする。Configureメソッドの引数appはIApplicationBuilder型であり、これを使用するために「using Microsoft.AspNet.Builder;」が必要になる(ただし、これを「kpm install」コマンドでインストールする必要はない。この辺りの名前空間とアセンブリの対応の明確化というか、どのアセンブリに何が含まれているかについてのドキュメントの整理が今後は重要になってくるだろう)。

using Microsoft.AspNet.Builder;

namespace Webapptest
{
  public class Startup
  {
    public void Configure(IApplicationBuilder app)
    {
    }
  }
}

Startup.Configureメソッド

 Configureメソッドを追加し、「k kestrel」コマンドを実行すると以下のようになる。

$ k kestrel
Started


「k kestrel」コマンドの実行
「Started」と表示されれば、取りあえずは成功だ。

 前回Webアプリを実行したときと同様に「Started」とコンソールに表示され、Webアプリが起動した。とはいえ、Configureメソッドは空のため、Webブラウザーで表示をしてみても何も表示されない。

初めてのWebアプリ 初めてのWebアプリ
画面はUbuntuで実行したもの。

 そこで、次にWebブラウザーに何か表示されるようにしてみよう。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。