Mac OSXでASP.NET 5をはじめたら、いきなり名称変更で1.0になるらしい
Ratpackの入門をやるんじゃなかったのか?と思ったりするが、今回は違います。
Mac OSXでもMono入ってればASP.NETできるよなーと思ってせっかくだからやってみようと。
まさか
すると、突然にTwitterのタイムラインに「ASP.NET 5 is dead」とか流れてきました。 ええ!?何も始めようとした出鼻をくじかなくても…
ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0 http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx
4.6の置き換えじゃなくて、作り直したから5じゃなくて1.0の方がいいよね?という解釈であってるのかな。
ということで、気にせずドキュメントを見ながら始めることにしました。
はじめるにあたって
こういうサイトがありまして。
get.asp.net https://get.asp.net/
いきなりMac用のインストーラをダウンロードしてきてもいいのですが、もっといい感じのやり方もありそうなので「Install Instructions」をクリックしてみてみました。
そうすると、「Getting Started」というページにあるではありませんか。 「Installing ASP.NET 5 On Mac OS X」というのが。
さらに進むと、「Install ASP.NET 5 from the command-line」というのがありました。 やった。
まぁでもですね。Visual Studio Codeは入れておいたほうがいいような気がします。 さっき少し使ってみたら、ものすごく便利になってますね。 最初のリリースのときより格段に良さそうです。
Visual Studio Code https://www.visualstudio.com/ja-jp/products/code-vs.aspx
さて、ではインストールしていくことになるのですが、とりあえず必要なのは2つだけです。 DNXというものとDNVMというものです。
DNXは「.Net Execution Environment」というもので、Monoか.Net Coreのどちらかを使えるようです。 わたしはとりあえず両方入れてみることにしましたが、後に入れたほうがデフォルト扱いになったようです。 後からデフォルトにするものは変更できるようなので、気にせず行きます。
もうひとつのDNVMは「.Net Version Manager」ということで、どっかで聞いたようなものですね。 こいつでMonoかCoreか、あるいはバージョンも切り替えることができるようです。
インストール
まずDNVMですが、最近の流行りなんでしょうか。 シェルをcurlで落としてきたものを実行します。
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
非常にお手軽です。一瞬で終わります。
その後、このdnvmコマンドを利用してDNXをインストールします。
.Net Coreを利用するなら次のコマンドになります。 upgradeとついてるので、「ん?」と思いましたが普通にインストールできます。 upgradeコマンドは最新(latest)をインストールするようになるようですね。
dnvm upgrade -r coreclr
「-r」オプションはランタイムの種類です。
Monoを利用するときは以下のコマンドで最新が入ります。
dnvm upgrade -r mono
なお、Mono単体はHomeBrewからインストールすると便利です。 あくまでもここでインストールされるDNXはMono用のランタイムということのようです。
さらにインストールは続きます。 今度はNode.jsとそのパッケージ群をインストールしていきます。 わたしはnvmで導入済みだったので、パッケージだけ最新にしました。
わたしの環境は電子書籍を書き始めのときに導入してたのでちょっと古めのv0.12.4です。 これでも動作には問題なさそうですが、最新はv5.4.1のようです。
あとはパッケージですね。 Yeoman、Bower、そしてGruntかGulpです。 どれも導入済みでしたが、 この際にアップグレードしました。
npm install -g yo bower gulp
わたしはタスクランナーにGulpを使っているのでGruntは入れませんでした。 どうも標準ではタスクランナーにはGulpが利用されるようでした。
さらに。 Scaffolding、つまりは足場を組むような感じで雛形なんかを用意してくれるパッケージもあるのでインストールしておきます。
npm install -g generator-aspnet
これで準備は整いました。
はじめての「MacでASP.NET」
どうも近頃Windowsしてたので、なんか新鮮でした。 ここまでくると、コマンドラインから(!)ASP.NETアプリを準備していくことができます。
ではディレクトリを作りまして、そこへ移動します。 そしてプロジェクトを作るのですが、Railsなんかと同じようにプロジェクト名を指定すると同じ名前のフォルダが作成されます。
でももう少しスマートな雰囲気。
yo aspnet
どんな種類のアプリケーションをつくるかを選択することができます。
ここでは「Empty Application」を選択しているのでした。
なお、「ASP.NET」と聞くとウェブアプリのイメージがしていたのですが、選択肢の通りコンソールアプリもつくることができます。
あとはアプリ名を入力してやるとフォルダと関連のファイルが出力されるという感じです。 で、このあとどうしたらいいのかなーと思ったら画面にコマンドがそのまま表示されています。
まずはプロジェクトのフォルダへ移動します。
cd HelloWorld
そしたらおもむろにコマンドを実行します。
dnu restore
このコマンド、どうやら依存性を解決して必要なパッケージをダウンロードしてくるようです。 大量に落としてくるので、わたしの環境では10分近くかかりました… 気長に待ちましょう。 でも、これははじめてのときだけのようですね。
2つ目以降は一瞬でした。ほぼ全てローカルに揃ってるからでしょう。
あとはいきなりですけどビルドしてやります。
dnu build
まだ何も書いてませんけどね。 そして開発用の組み込みサーバーを起動してブラウザで確認することができます。
dnx web
もうこれでlocalhost:5000でリッスンしてるので、ブラウザで見てみてください。 「Hello World」が表示されていると思います。
最後に
MacでC#でASP.NETということで、先人の偉大なる功績を利用させてもらって楽しく書いていくことができそうです。 Linuxでもディストリビューションでの違いは多少あるものの、ほぼMacと同じ方法でセットアップしていくことができるようです。
C#熱が高まりそうなので、この際にC#も再入門したほうがいいかな?








