Mac OS XでASP.NET 5開発環境構築(with Visual Studio Code)

MicrosoftからASP.NETがオープン化されてしばらく経ちました。前々から興味があったので、試しに開発環境構築をしてみます。

ASP.NETは昔は、Windows ServerのIIS上でしか動作せず、業務系のアプリケーション開発でよく使われていそうなイメージがあります。(その程度の知識しか持ち合わせていません…)

しかし、Windows Azureが登場してから、一気にASP.NETを利用する敷居が下がったのではないでしょうか?これまでオンプレミスのみで動作していたところから、クラウド化によってWindows Serverの利用が容易になりました。そして、ASP.NETのオープン化やVisual Studio Codeの様な、LinuxやMac OS Xでの開発環境を提供したことで、これからのWeb開発の選択肢にASP.NETが1つ加わったのではないかと思っています。

これまで、Web開発にはRuby on Railsをずっと使ってきました。最近は業務系のWebアプリケーション開発をよく行っているため、案件によっては社内サーバにデプロイする可能性も増えています。そこで、クラウド上(Windows Azure)とオンプレミス上(Windows Server)のどちらにもデプロイが行いやすい、ASP.NETを採用できないか考えていました。

正直なところ、Visual Studio自体は素晴らしい開発環境だと思うのですが、Windowsの使い勝手が悪く、その点で敬遠していました。Visual Studio Codeも公開され、いよいよ採用のチャンスかなと考えています。

それでは、本題の開発環境構築へ。

DNVM(.NET Version Manager), DNXの導入

ASP.NETのライブラリやコンパイル環境などを導入するためにDNVM(.NET Version Manager)の導入から始めます。

以下のコマンドでHomebrewからDNVMをインストールすることができます。

参考:https://github.com/aspnet/home#os-x

brew tap aspnet/dnx
brew update
brew install dnvm
echo 'export MONO_GAC_PREFIX="/usr/local"' >> ~/.bashrc
echo "source dnvm.sh" >> ~/.bashrc
echo "export MONO_MANAGED_WATCHER=disabled" >> ~/.bashrc
source dnvm.sh
export MONO_MANAGED_WATCHER=disabled
dnvm upgrade

Yeomanの導入

Yeoman(yeoman.io)はフロントエンド寄りのパッケージ(JavaScript, CSSフレームワークなど)管理などを行ってくれるツール群です。プロジェクトのひな形を作ってくれるYoとパッケージマネージャBowerとビルドツールGruntが含まています。node.js製のツールなのでnpmからインストールします。node.jsをインストールしていない人は、Homebrewなどでインストールしましょう。

次のコマンドでインストールします。


brew install nodejs
npm install -g yo grunt-cli generator-aspnet bower

プロジェクトのひな形を作成

yo asp
# Web Applicationを選択
# プロジェクト名に`HelloApp`を指定
cd HelloApp
dnu restore

Visual Studio Codeで開いてアプリを起動する

Visual Studio Codeを立ち上げて、Open Folderからプロジェクトフォルダを開きます。

Cmd+Shift+pでCommand palletを表示させ、kestrelと入力し実行するとアプリケーションサーバが起動し、http://localhost:5001から見ることができます。

まとめ

意外とサクサクと、開発環境は構築できました。

.NETライブラリはネームスペースやクラス、メソッドがたくさんあるので、Visual Studio Codeの入力補完はとても心強いのではないでしょうか。

一方、最後までやってから気づいたのですが、デフォルトではデータベースがMicrosoft SQL Serverの設定なので、Mac上でデータベースを動かすことができません。従って、Windows Azure上にSQL Serverを建てて使う、あるいはMySQLなどのデータベースと接続する(これはできるのでしょうか??)手段を用意する必要がありそうです。

 

参考


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です