KVMコマンドでKREを操作
それでは、コマンドプロンプトを起動して次のコマンドを入力してみましょう(サンプルと違うパスに配置している場合は、適宜読み替えてください)。home-masterフォルダに移動したら、KVMコマンドを実行できます。
なお、KVMの本体は「kvm.ps1(PowerShellファイル)」のため、事前に、管理者権限でPowerShellを起動し「Set-ExecutionPolicy RemoteSigned 」コマンドを実行してローカルスクリプトを実行できるようにしておいてください。
REM KVMがあるフォルダに移動 cd C:\CodeZine\home-master REM KREをインストール (CoreCLR用) kvm install 1.0.0-alpha4 -runtime CoreCLR REM KREをインストール(DesktopCLR用) kvm install 1.0.0-alpha4 -runtime CLR REM KERインストール(AMD64Bitの場合) ;; kvm install 1.0.0-alpha4 -amd64 -runtime CoreCLR ;; kvm install 1.0.0-alpha4 -amd64 -runtime CLR REM 最新KREへのアップグレードコマンド例 ;; kvm upgrade -runtime CoreCLR REM インストール済みKREの一覧表示と切り替え例 kvm list kvm use 1.0.0-alpha4 -x86 -runtime CoreCLR
kvm installコマンドでKREのインストール
KVMの構文は「kvm install KREのバージョン アーキテクチャ(-x86か-amd64) -runtime ランタイム(CoreCLRかCLR) 」です。CLR指定で通常の「ASP.NET 5.0(DesktopCLR)」となり、CoreCLR指定で「ASP.NET Core 5.0(CoreCLR)となります。
KVMコマンドのinstallオプションを実行すると、関連ライブラリが「C:¥Users¥<ユーザー名>¥.kre¥」フォルダにダウンロードされます。そしてコマンド(K、KLR、KPMコマンド)が配置されるフォルダ「C:¥Users¥aoki¥.kre¥packages¥<KREのアーキテクチャとバージョン>¥bin」にPATHを設定してくれます。
kvm upgradeコマンドでKREのアップグレード
「kvm upgrade」コマンドで、KREの最新バージョンを取得することができます。現在のバージョンはそのまま残り、最新バージョンが追加され、最新バージョンにPATHが設定されます。
kvm listコマンドで使用するKREの変更
インストールされたKREの一覧を確認するには「kvm list」コマンドを使用します。現在使用中のKREの先頭にはアスタリスクが表示されます。使用するKREを変更する場合は「kvm use バージョン名」というコマンドを使用します。
なお、KVMとKREをアンインストールは物理フォルダを削除します。
現在、GitHubのASP.NETのページでは、40を超える数のサブプロジェクトが開発されています。KRuntime、Kvm、MVC、Identity、Caching、EntityFrameworkといった主要プロジェクトから、MusicStore、BugTrackerといったサンプルまで幅広いプロジェクトがありますので、興味を持たれた方は覗いてみてはいかがでしょうか。
vNextアプリケーションの実行
KVMコマンドを使ってKREの管理ができたところで、アプリケーションを実行してみましょう。ここではsamplesフォルダに含まれるASP.NET MVCのサンプルを実行してみます。
REM サンプルがあるフォルダに移動 cd C:\CodeZine\Home-master\samples\HelloMvc REM KPMコマンドで依存アセンブリをダウンロード kpm restore REM KコマンドでWebサーバーを起動 k web
ASP.NET MVCアプリケーションが無事実行されました。今回、使用したコマンドについて確認してみましょう。
アセンブリのダウンロード(KPMコマンド)
KPMは、KパッケージマネージャでvNextアプリケーションのパッケージを管理するコマンドです。Project.jsonがあるフォルダで「kpm restore」コマンドを実行すると、Project.jsonの内容に従ってDLLを取得します。ここでは、MyGetから「C:¥Users¥<ユーザー名>¥.kpm¥packages」フォルダにアセンブリをダウンロードしています。なお、KPMコマンドにpackオプションを付けることでAzure WebSiteへデプロイするパッケージを作成することができます。
アプリケーションの実行(Kコマンド)
vNextアプリケーションはKコマンドにて起動します。KPMコマンドと同様にProject.jsonがあるフォルダにてKコマンドを実行します。「k run」という標準引数でスタティックのMainメソッドを呼び出すことができます。
このサンプルでは「k web」というように「web」という引数を付与してWebサーバーを起動しています。Kコマンドの引数はProject.jsonにCommand定義していれば、「k <指定したコマンド>」のように独自コマンドを呼び出すことができます。
以上、Visual Studioを利用することなく、コマンドプロンプトの操作だけで、vNextアプリケーションを簡単に実行できることをご理解頂けたと思います。
Visual Studioが動作しないMacやLinuxでもテストできるように、vNextでは「xUnit.NET」が標準のテスティングフレームワークとして採用されています。xUnit.NETはNUnitとMsTestの開発に携わったBrad Wilson氏とJames Newkirk氏が作成した新しいオープンソースのテストツールです。[Test]や[Fixture]ではなく、[Fact]という属性を付与することが特徴です。
最後に
以上、本稿ではASP.NET vNextについて紹介してきました。次世代のASP.NETは、オープンで柔軟性が高い基盤として提供されます。Windows開発者向けという印象が強かったASP.NETですが、今後は他の開発者でも使いやすくなります。従来のWebFormやMVCについてもvNextでは互換性のサポートをする模様ですので、興味を持たれた方は試してみてはいかがでしょうか。