Webプログラムのひな形を作成
それでは、Webプログラムのひな形を作成しましょう。MicrosoftのWeb技術「ASP.NET」のプロジェクトは、C#プログラム(*.cs)、ビューファイル(*.cshtml)、設定ファイル(*.json)などから構成されます。これらを1つずつ手動で作成していくことは手間なので、ひな形を作成できるYeomonというツールを使用します。
Node.jsとYeomanのインストール
まず、HomeBrewでNode.jsをインストールします。Node.jsはサーバーサイドJavaScript環境として有名なプロダクトです。ここでは、Node.jsのパッケージ管理ツールnpmを使用するためにインストールします。
Yeomanのインストールはnpmコマンドを使用します。Yeomanは、ひな型生成の「Yo」、ライブラリ依存管理「Bower」、ビルドツール「Grunt」から構成されます。あわせて、YeamanでASP.NET5のジェネレーターをインストールします。
##### HomeBrewで、Node.jsのインストール $ brew install node ##### npmで、Yeomanのインストール $ npm install -g yo ##### npmで、ASP.NETのジェネレータをインストール $ npm install -g generator-aspnet
Web基盤「ASP.NET」
ASP.NETはWebにフォーカスしたMicrosoftのテクノロジーです。最新のASP.NET MVCでは、Web標準やオープンソースと相性の良い技術を採用しています。
YeomanでASP.NETのソースを生成
YeomanとASP.NET5ジェネレータがインストールできたので、実際にASP.NETのひな形を生成してみましょう。「yo aspnet」と入力することで、ASP.NETのひな形を生成する画面が表示されます。現時点では「空プロジェクト」「コンソールアプリケーション」「認証ありWebアプリケーション」「認証なしWebアプリケーション」「WebAPI」「Nancy(注1)」「クラスライブラリ」の7種類から選択できます。
注1
RubyのSinatraに影響を受けた軽量フレームワーク。 詳細はGitHubのNuncyページ参照。
##### ASP.NET5ジェネレートを生成 ##### $ yo aspnet ...中略... ? What type of application do you want to create? (Use arrow keys) ?? Empty Application Console Application Web Application Web Application Simple [without Membership and Authorization] Web API Application Nancy ASP.NET Application Class Library ##### プロジェクトの種類を選択して、名前を入力するとひな形が生成される ##### ? What type of application do you want to create? Web API Application ? What's the name of your ASP.NET application? MyWebApi create MyWebApi.gitignore create MyWebApi/hosting.ini create MyWebApi/Startup.cs create MyWebApi/project.json create MyWebApi/Properties/launchSettings.json create MyWebApi/Controllers/ValuesController.cs create MyWebApi/wwwroot/README.md
本稿ではWebAPIを作成できる「Web API Application」をカーソルで選択して、エンターキーを押下します。ここではプロジェクト名として「MyWebAPI」と入力します。
プログラムの実行
Yeomanでひな形を生成するとコマンド例が表示されますので、そのとおり実行してみましょう。パッケージ管理コマンド「dnu」とアプリ起動コマンド「dnx」を使って、ソースコードのビルドと実行ができます。ASP.NET5の概要については、筆者の解説記事をご覧ください。
##### フォルダを移動 ##### $ cd "MyWebApi" ##### dnuコマンドで、依存するDLLをnugetサーバーから取得 ##### $ dnu restore Microsoft .NET Development Utility Mono-x64-1.0.0-beta5-12103 ...中略... Restore complete, 9014ms elapsed ##### dnuコマンドで、ビルドを実行 ##### $ dnu build ...中略... Build succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:02.3776756 ##### dnxコマンドで、Webサーバー「kestrel」を起動 ##### $ dnx . kestrel Started
以上の操作で、localhostの5000ポートでWebサービスを起動できました。
![WebAPIの実行結果をブラウザで確認](http://cz-cdn.shoeisha.jp/static/images/article/8859/8859_300.gif)
なお、Yeomanで生成されたコードを編集するには、Visual Studio Codeを使うと便利です。詳細はマイクロソフトのクロスプラットフォーム対応新コーディングツール「Visual Studio Code」をご覧ください。
ソースが準備できたので、Dockerにデプロイする方法について紹介していきます。