環境づくりメモ。基本はここの通りやるだけ。
前提
- brewを入れておく(brew update, brew upgradeをしておく)
- node.jsを入れておく(できれば最新版をインストールする)
前提知識
実行環境の構築
ASP.NETを実行するには、ランタイムが必要である。それはdnxという。それをインストールするためにdnvm(dot net version manager)というのをインストールする。
ASP.NETのひな形取得環境を作る
ASP.NET(MVC)は0からゴリゴリ書くものではなく、ひな形をベースにする。WindowsならばVisualStudioが作ってくれるが、Macにはそんなものがないので、yeomanというひな形作成ツールをインストールする。
yeomanは、1つのツールではなく、grunt,bower,yoが組み合わさったものである。
開発環境のインストール
MacでASP.NETの開発は、Sublime Textとかでも行えるが、ここでは、Visual Studio Codeを使う。
いろいろインストール
dnvmをインストール
dnvmは、dot net version managerで、vmのバージョンを管理するためのツール。
brew tap aspnet/dnx
brew install dnvm
dnvm list
とすることで、インストールされているバージョンを見ることができる。また、
dnvm upgrade
とするとこで、最新のバージョンが入る(はず)。
yeomanをインストール
sudo npm install -g yo grunt-cli generator-aspnet bower
時が過ぎるとgenerator自体が古くなるが、generatorのupdateは、yoコマンドを実行すればその中のメニューから選べる。
但し、パーミッションエラーが起きる時があるので、その際は、
sudo chown -R /usr/local
sudo chown -R ~/.npm
とする。
せっかくなのでVisual Studio Code (VSC)をインストール
ダウンローどして、展開するだけ。
環境設定
.bash_profileに以下を追加
# for dnvm
export MONO_GAC_PREFIX="/usr/local"
export MONO_MANAGED_WATCHER=false
source dnvm.sh
# for vsc
vsc () {
if [[ $# = 0 ]]
then
open -a "Visual Studio Code"
else
[[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
open -a "Visual Studio Code" --args "$F"
fi
source .bash_profileを実行。
VSCの起動コマンドをcodeとしている人が多いけど、vscとする。
なお、現状、VSCを起動した状態でvsc . 等としても、ファイルを展開してくれないようだ。
ASP.NETのプロジェクトを作って実行
asp.net webapplicationのテンプレートを取得(作成)する。
yo aspnet
とすると、いろいろ聞いてくる。
- 最初の起動時の質問はYを選択。
- いろいろあるテンプレートからWebApplicationを選択する。
- プロジェクト名を聞いてくるので、WebAppとか適当に入れる。
yo aspnetは
yo aspnet:MvcController
等の、サブジェネレーターコマンドもある。詳しくはここ。
dnu restoreでWebAppの実行に必要なものを取ってくる
実行したディレクトリにWebAppフォルダが作られるので、その中に移動し、dnu restoreを実行。
そうすると、いろいろ必要なものを取得してくれる。
cd WebApp
dnu restore
dnu restoreは、project.jsonのdependenciesを見てるみたい。なので、更新したら、再度 dun restore する必要があるのだと思う。
dnuには他にもいろいろと便利コマンドがある。詳しくはここ。
VSCでプロジェクトを開く
vsc .
とすることで、VSCでプロジェクトが開ける(ただ、カレントを開いてるだけですが)。
本当はここでいろいろと編集。
プロジェクトを実行
VSCでshift + command + pでVSCのコンソールを表示させ、kestrelとうつ。それか、普通のコンソールで、
dnx . kestrel
とする。kestrelは、dnx上で動くWebサーバ。チョウゲンボウに馴染みのある私にとってはいい名前。
localhost:5000とかを見ると、APS.NETのテンプレートファイルが表示されるが、このときのURL(ポート)は、プロジェクトの中のhosting.iniファイルの中で設定されている(大元はproject.jsonだが、外部ファイルを参照するようになっている)。
その他の参考
*http://www.dotnetcodegeeks.com/2015/06/develop-and-deploy-asp-net-5-apps-on-mac-os-x.html