手順
ConsoleAppを動かすまで
- Ubuntu 14.04を使用
- https://github.com/aspnet/Home に書いてある通りにインストールする。但し、以下の微修正が必要
- monoのインストールはsource(3.4.1の作りかけ)からになるので、gitでcloneする。
- 今日見たらテストが落ちてて最新のmaster動かなかったので、git checkout d8eaf05 してちょっと戻す
- ビルドに必要なソフトをsudo apt-get install build-essential autoconf libtool checkinstall curl で入れる
- ./autogen.shを実行する
- make get-monolite-latestをして、コンパイルに必要なmonoを入れる
- makeを実行
- checkinstallでパッケージ化しつつインストールする
- mono --versionで3.4.1になっていることを確認
- curl https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh を実行し、kvmをインストール
- kvm install latestで最新のkを入れる
- https://github.com/aspnet/Home をcloneし、samples/ConsoleAppに移動
- kpm restoreでパッケージを戻す
- k runでコンソールアプリを起動
HelloWebを動かすまで
- 上記状態でHelloWebサンプルに行き、k webコマンドを実行するとhttpapi.dllが無いと怒られる
- https://github.com/aspnet/Home/blob/master/samples/HelloWeb/project.json をよく見ると、Microsoft.AspNet.Server.WebListenerをサーバとして使っている。これがどうも現状はLinux未対応らしい(IIS依存なのかな)
- 仕方ないので、これを別のサーバに置き換える作業を行う
- https://github.com/davidfowl/HelloWorldVNext/blob/master/src/helloworldweb/project.json こちらのjsonを見るとサーバとして、KestrelとNowinの2種類が使えることが分かる
- KestrelはNode.jsでも使っているlibuvを使ったサーバで、高性能を期待できるのだが、絶賛開発中でまだMacとWindowsにしか対応していない(Linuxの対応のPRは見つけたが)
- NowinはOWIN向けのピュアC#サーバで、monoが動けば動くHttpListener非依存のサーバである(これも開発中だが)。今回はこれをASP.NET vNext用に調整する
- 調整のやり方は、https://github.com/davidfowl/HelloWorldVNext/tree/master/src/Nowin.vNext このフォルダの中身がNowinをvNextで使う実装なので、このフォルダを丸ごとHelloWebフォルダの隣に置く
- HelloWeb/project.jsonのwebコマンドのところを Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5001 から Microsoft.AspNet.Hosting --server Nowin.vNext に書き換える
- k runでHelloWebを起動(OWINのWelcomeページっぽいのが見えます)