Visual Studio Code+ASP.NET 5をMacOSXで試してみた

Visual Studio Code+ASP.NET 5をMacOSXで試してみた
===

MacOSXで、出たばかりのVisual Studio CodeでASP.NETを動かすところまで試してみました。その手順を共有します。

[Visual Studio Code](https://code.visualstudio.com)から、MacOSXのVisual Studio Codeをダウンロードします。

ダウンロードしたら、“Visual Studio Code”を、Applicationsにぶち込みましょう！そしたら、lancherからVisual Studio Codeが見れるはず。

1. 標準のチュートリアルをやってみる
---

ここに、ついていたチュートリアルをやってみます。

[Building ASP.NET 5 Applications with Visual Studio Code](https://code.visualstudio.com/docs/ASPnet5)しかし、人生はそこまで甘くありません。ここと、ここから辿れるGitHubの手順をやっただけではうまくいきませんでしたので、その手順を書いてみます。

### 1.1. ASP.NET 5とDNXを入れる

書かれている手順に従って、homebrewから、ASP.NET 5とDNXを入れます。Macで動くなんて不思議な感じ。

```
$ brew tap aspnet/dnx
$ brew update
$ brew install dnvm
```

そして、手順通り、yomanをぶち込みます。ただし、npmはインストール済みの前提です。

```
$ npm install -g yo grunt-cli generator-aspnet bower
```

早速、yomanを使って、アプリケーションのテンプレートを生成してみます。

```
$ yo aspnet
? ==========================================================================
We're constantly looking for ways to make yo better! 
May we anonymously report usage statistics to improve the tool over time? 
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== Yes
 Y
     _-----_
    |       |    .--------------------------.
    |--(o)--|    |      Welcome to the      |
   `---------´   |   marvellous ASP.NET 5   |
    ( _´U`_ )    |        generator!        |
    /___A___\    '--------------------------'
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y ` 

? What type of application do you want to create? Web Application
? What's the name of your ASP.NET application? WebApplication
```

うむ。ロンドン好きの私としては悪くないデザインです。
さて、手順通り続きも行きます！

```
$ dnu restore
-bash: dnu: command not found
$ dnvm upgrade
-bash: dnvm: command not found
```

Oh!なんすかこれ、.NET全く知らんわしからしたら謎ですなぁ。普通や、homebrewでインストールすると、コマンドつかえそうですが、若干工夫が必要なようです。.bash_profileなどに、次の記述を追加しましょう。下記のを.bash_profileに書いて、`source ~/.bash_profile`を実行してください。

```
# For Mono/ASP.NET 5
export MONO_GAC_PREFIX="/usr/local"
source dnvm.sh
export MONO_MANAGED_WATCHER=false
```

ちなみに、最後のMONO_MANAGED_WATCHER=falseという記述ですが、これは、Monoのよく知られているバグらしく、後の手順で、ASP.NETを立ち上げると、

```
kqueue() FileSystemWatcher has reached the maximum nunmber of files to watch.
```

とかいう謎のエラーに出会います。これを回避するために、上記の環境変数をセットする必要があるようです。

これを入れて、あげると、次のコマンドが使えるようになります。これにより、nugetでなにやらライブラリを取ってくるみたいです。

```
$ dnu restore
$ dnvm upgrade
```

### 1.2. Visual Studio Codeの設定

さて、次ですが、Viusal Studio Codeをせっかくなので、コマンドラインから起動できるようにしましょう。.bash_profileにこれを追加しましょう。

```
code () {
	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`を実行すればコマンドラインからVisual Studio Codeを実行できます。

```
$ cd aspnet
$ cd WebApplication
$ code .
```

これで、Visual Studio Codeが起動します。するとこんな感じで起動します。

![Screen Shot 2015-05-01 at 22.37.08.png](https://qiita-image-store.s3.amazonaws.com/0/3470/7fd12650-58c1-99d3-a311-ade75a0db6de.png)


ところが、このままでは、このスクリーンショットのように、0 referencesとかの表示がでてきません。右下のニコちゃんマークの横のC#のところをクリックすると、言語が選べるので、そこでC#を選ぶと、無事、IntelliSenseが有効になるみたいです。

### 1.3. アプリケーションの起動

あとは、手順の通りで、Command + shift + p で、コマンドを入力できるようになりますので

```
>kest
```

をタイプしたらでてくる`dnx: kestrel` を選択することで、localhost:5001にアクセスすると、ASP.NETのページを見ることができます。

![Screen Shot 2015-05-01 at 22.43.06.png](https://qiita-image-store.s3.amazonaws.com/0/3470/12d6c3a1-816f-e92a-8a05-14cfebf952f4.png)

めでたし、めでたし。