連載
» 2015年02月20日 13時41分 公開

第1回 ASP.NET 5をOS X/Linuxで使うための準備連載:OS X/LinuxによるASP.NET 5アプリ開発ガイド(4/5 ページ)

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

サンプルコードを動かしてみる

 OS X/UbuntuへのXREのインストールが済んだら、「aspnet/Home」でサンプルコードが配布されているので、まずはこれを実行してみよう。「git clone」コマンドを使ってもよいし、ZIPファイルをダウンロードしてもよいので、適当なディレクトリにアーカイブを展開しておく(ここでは、OS X/Ubuntuの両者で「~/work/aspnet5/Home-master」ディレクトリ以下に取得したサンプルコードを展開した)。

 サンプルコードを実行する手順は主に以下のようになる。

  1. プロジェクト/ソリューションのルートディレクトリに移動する
  2. 「kpm restore」コマンドを実行して、プロジェクトが依存しているアセンブリを取得する
  3. 「k run」「k kestrel」などのコマンドでプログラムを実行する

 具体的に説明していこう。

コンソールアプリを実行してみる

 「Home-master/samples/ConsoleApp」ディレクトリにはいわゆる「Hello World」アプリが保存されている(以下のコード)。

using System;

public class Program
{
  public static void Main()
  {
    Console.WriteLine("Hello World");
  }
}

「Hello World」を出力するコンソールアプリ

 このアプリを実行するには、以下のようなコマンドラインを実行する。

 1: $ source kvm.sh  # まだ、「source kvm.sh」コマンドを実行していない場合
 2: $ cd ~/work/aspnet5/Home-master/samples/ConsoleApp
 3: $ kpm restore
 4: $ k run
 5: Hello World


コンソールアプリの実行
1行目: まだ「source kvm.sh」コマンドを実行していない場合は実行しておく(Ubuntuの場合は「source ~/.kre/kvm/kvm.sh」を実行する)
2行目: プロジェクトのルートディレクトリに移動。
3行目: 「kpm restore」コマンドを実行して、NuGetを利用してプロジェクトが依存しているアセンブリを取得。
4行目: 「k run」コマンドでプログラムを実行。
5行目: おめでとう!

 kpmコマンドは、ASP.NET 5のパッケージに関連する各種操作を行うためのコマンドで、上記のように「restore」を指定してこのコマンドを実行すると、プロジェクトのルートディレクトリにあるproject.jsonファイルをチェックして、アプリの実行に必要なアセンブリをNuGet(やMyGet)経由で取得してくれる。そこで、ConsoleAppディレクトリにあるこのファイルの内容を見てみよう。

{
  "dependencies": {
  },
  "frameworks": {
    "aspnet50": {},
    "aspnetcore50": {
      "dependencies": {
        "System.Console": "4.0.0-beta-*"
      }
    }
  }
}

project.jsonファイルの内容

 このファイルには依存関係の他に、ビルドターゲット、構成情報などを記述する。

  • "dependencies": プロジェクトが依存するアセンブリを記述
  • "frameworks": ビルドのターゲットフレームワーク。上の例では、ターゲットとして「"aspnet50"」(デスクトップ版CLR)と「"aspnetcore50"」(Core CLR)の二つが定義されていて、後者の場合はこれがSystem.Consoleアセンブリにも依存していることが分かる(Core CLRはデスクトップ版のCLRよりもモジュール化が進んでいる分、依存関係の記述は細かくなる)
  • "configurations": 構成情報を記述("Debug"、"Release"など)
  • "commands": kコマンドに渡すコマンド名とそのコマンド名で実行されるコマンドを記述(後述)

 この他にも「"sources"」(コンパイル対象のファイルを指定)、「"WebRoot"」(Webアプリのルートディレクトリを指定)などの設定を記述可能だ。詳細についてはaspnet/Home以下の「Project.json file」(英語)を参照のこと。

 なお、取得したアセンブリは「~/.k/packages」ディレクトリ(OS X)あるいは「~/.kpm/〜」ディレクトリ(Ubuntu)に格納される。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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