LoginSignup
4
4

More than 5 years have passed since last update.

ASP.NET5で、本番運用環境を構築しようとした時のハマりTips

Last updated at Posted at 2015-12-30

ASP.NET5で本番運用環境を作成しようとした時のTips

下記のページを参考に、VSTS環境に ASP.NET5 リポジトリを作成、ビルドし、WebApps + SQLサービスで本番運用するためのシステムを構築しています。ここで、はまったトピックに関して共有させてください。

下記のサイトを参考にしています。
ASP.NET5 GEtting Started

1. Application Insight は右クリックのみでは終了しない

.NET開発をする場合、Application Insight をインストールする場合、プロジェクトを右クリックし、 Application Insight をインストールするを選択すると、ほぼ自動的にセットアップされる。ただし、ASP.NET5の場合は、下記の手順を実施する必要がある。

Microsoft/ApplicationInsights-aspnet5 / Getting Started

注: ASP.NET 5 向けの Application Insightsには次の記述が出てくるが、だまされないように(笑)

Visual Studio 2015 でプロジェクトを作成した場合、Application Insights は既に用意されています。それ以外の場合は、「ファースト ステップ ガイド」に従ってください <- 既に用意されていますが、ASP.NET5では、いつもの手順でできませんw

2. ASP.NET5のUnitTestは、xUnitを使う

.NETの場合のテスティングツールは、一般的なNUnitやMSTestとxUnitが存在する。ASP.NET5の場合は、NUnitは使えない様子であり、xUnitが主流のようであり、実際にxUnitの手順がうまく行った。

3. xUnitの設定は、バージョンを合わせる必要がある

下記の説明にあるのだが、下記の手順で、xUnitを導入すると、参照設定が復元できないケースがある。Getting Started with xUnit.net(DNX / ASP.NET 5 これは、この記事のNOTEに記述されている、DNXのバージョンと、xunit / xunit.runner.dnx のパッケージのバージョンが不整合になっているため。

筆者の環境のdnxのバージョンは、dnvm listコマンドを使って、現在使われている dnx を確認すると、1.0.0-rc1-update1 clr x86である。

C:\Users\tsushi>dnvm list

Active Version           Runtime Architecture Location                      Alias
------ -------           ------- ------------ --------                      -----
       1.0.0-beta5       clr     x64          C:\Users\tsushi\.dnx\runtimes
       1.0.0-beta5       clr     x86          C:\Users\tsushi\.dnx\runtimes
       1.0.0-beta5       coreclr x64          C:\Users\tsushi\.dnx\runtimes
       1.0.0-beta5       coreclr x86          C:\Users\tsushi\.dnx\runtimes
       1.0.0-rc1-final   clr     x86          C:\Users\tsushi\.dnx\runtimes
       1.0.0-rc1-update1 clr     x64          C:\Users\tsushi\.dnx\runtimes
  *    1.0.0-rc1-update1 clr     x86          C:\Users\tsushi\.dnx\runtimes default
       1.0.0-rc1-update1 coreclr x64          C:\Users\tsushi\.dnx\runtimes
       1.0.0-rc1-update1 coreclr x86          C:\Users\tsushi\.dnx\runtimes

この場合、上記の表を参照すると、xunitが2.1.0、xunit.runner.dnxが2.1.0-rc1-build204である必要があることがわかる。この組み合わせを、xUnitのテストプロジェクトのproject.jsonに記述する。このテストパッケージの記述には、参照元のプロジェクトの依存も書いておくとよい(ここでは、LazyTrackerWebがそれに該当する)

{
  "authors": [ "tsushi" ],
  "commands": {
    "test": "xunit.runner.dnx"
  },
  "dependencies": {
    "LazyTrackerWeb": "1.0.0-*",
    "xunit": "2.1.0",
    "xunit.runner.dnx": "2.1.0-rc1-build204"
  },
  "description": "LazyTrackerWeb.Test Class Library",
  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },
  "licenseUrl": "",
  "projectUrl": "",
  "tags": [ "" ],
  "version": "1.0.0-*"
}

4. xUnitのプロジェクトは、クラスライブラリを使うこと

次の手順に従って、xUnitのプロジェクトは構成するとよい。ちなみに、 xUnitのプロジェクトはsrc配下に作っているとうまく動作しなかった。ソリューションのトップレベルに作る必要がありそう。

Getting Started with xUnit.net(DNX / ASP.NET 5)

5. データベースのマイグレーションは dnxコマンドを使用する必要がある

Entityフレームワークを使って、Modelを定義した後は、次のコマンドで、マイグレーションファイルを生成後、データベースに反映させる必要がある。

実施方法は、Startup.csを右クリック > Open Containing Folder をひらく
さらに、出てきた画面で、Contorllersのところで、Shift + 右クリック > Open command window here を選択すると、コマンドプロンプトが開くのでここで、下記のコマンドをタイプする。

dnu restore
dnvm use 1.0.0-rc1-final -p
dnx ef migrations add Initial
dnx ef database update

詳細は次の記事参照
Adding a model / Use data migrations to cerate the database

6. ASP.NET5はHostedサーバが使えない

現在のところ、Hostedサーバだと、DNX(ASP.NET5のランタイム)が無いため、ASP.NET5のソースを
ビルドすることが出来ません。これに関しては以前の記事でご紹介しましたのでご参照ください。

Visual Studio Team ServicesでASP.NET5用ビルドサーバを構築する

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4