今 ASP.NET 5 がアツい!(個人的に。前回は Mac OSX で動作させるところをやってみましたが、今回は Azure Web Apps です。ここで動かせることが確認できさえすれば、個人的な Web アプリケーションプロジェクトは ASP.NET 5 ベースにシフトさせても良いかなと思えます。
1. 空テンプレートからアプリを作成
まずは Visual Studio 2015 RC の空テンプレートから ASP.NET 5 アプリケーションを作成します。Visual Studio 2015 RC が入っているのは当然という体で書いていますが、ご了承ください。
2. 依存関係の変更
project.json を開き、以下のように書き換えます。ポイントは IIS (Helios) を利用して動作させるようにする (WebListener = HTTP.sys は利用しない) ということぐらいです。
{ "webroot": "wwwroot", "version": "1.0.0-*", "dependencies": { "Microsoft.AspNet.Server.IIS": "1.0.0-beta4" }, "frameworks": { "dnx451": { }, "dnxcore50": { } }, "publishExclude": [ "node_modules", "bower_components", "**.xproj", "**.user", "**.vspscc" ], "exclude": [ "wwwroot", "node_modules", "bower_components" ] }
動作させるフレームワークのバージョンは .NET Framework 4.6 (dnx451) でも .NET Core 5 (dnxcore50) でもどちらでも構いません。ここでは両方指定しておきます。
3. アプリケーションの発行
[プロジェクト] を選択し、右クリックメニューの [公開] を実行します。すでに作成してある Azure Web Apps の発行プロファイルを取得してインポートするか、Visual Studio 上で Microsoft アカウントにログインし、Azure Web Apps へ発行するように設定します。
[Target DNX Version] は、.NET Framework 4.6 でも .NET Core 5 でもどちらを指定しても構いません。設定が完了したら [発行] ボタンからデプロイしましょう。上手く行けば、ブラウザが起動して以下のように表示されるはずです。とりあえず動作することが確認できましたね!
配置されたファイル
Visual Studio Online 'Monaco' を使ってデプロイされたファイルを確認してみます。なんと、web.config と AspNet.Loader.dll だけの構成になってしまっています。
アプリケーションの本体や .NET Core Runtime たちはどこに行ってしまったのかと言うと、wwwroot と同じ階層の approot というフォルダに置かれています。これは管理ポータルのコンソールや Kudu のコンソールを利用することで確認可能です。
.cs ファイル変更の即時反映
詳細な手順は割愛しますが、Kudu を利用して 'approot\src\WebApplication1\Startup.cs' をなどを変更し F5 でブラウザを更新すると、Roslyn によってその場でアプリケーションがコンパイルされ、即座に変更が適用されます。大変面白いので是非やってみてください!
とは言え、至高のオンラインエディターである Visual Studio Online 'Monaco' では現状 ASP.NET 5 のソースコード変更ができません。本当に全然嬉しくない...。できる方法があれば是非教えて頂きたいですし、そうでないなら是非対応していただきたい限りです。