SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは?

ASP.NET Coreアプリケーションをビルドして起動してみよう

いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは? 第2回

  • このエントリーをはてなブックマークに追加

 本稿では、WindowsだけではなくMacやLinuxといったマルチプラットフォームで動作するASP.NET Core 1.0について紹介します。前編では、ASP.NET Coreの概要、セットアップ方法、project.jsonファイルについて紹介しました。中編にあたる本稿では、依存ファイルの解決方法、新しいツール、実行時の挙動等について紹介します。

  • このエントリーをはてなブックマークに追加

 それでは、ASP.NET Coreについてご紹介していきます。前編の続きとなりますが、ASP.NET Coreプロジェクトを最初に開いた場合、出力ウィンドウには、以下のメッセージが表示されています。

リスト1 Visual StudioでASP.NET Coreアプリを最初に開いたときの出力ログ(抜粋)
【前編で紹介済:ビルド/実行方法: 「dotnet.exe restore」コマンド】
C:\Program Files\dotnet\dotnet.exe restore "C:\CodeZine\.vs\nestore.dg" -s "C:\Program Files (x86)\Microsoft SDKs\NuGetPackages"

【前編で紹介済:プロジェクトファイル: project.jsonの読み込み】
Restoring packages for C:\CodeZine\AspNetCoreSample\project.json...

【(1)依存解決: 必要なパッケージをNuGetで解決】
Installing Newtonsoft.Json 9.0.1.

【(4)JavaScript/CSSのバンドル・ミニファイ】
Restoring packages for tool 'BundlerMinifier.Core'

【(5)Razorツール】
Restoring packages for tool 'Microsoft.AspNetCore.Razor.Tools'

【(6)ASP.NET Coreと連携するIISモジュール】
Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools'

【(2)プロジェクトファイル: project.lock.jsonファイル出力】
Writing lock file to disk. Path: C:\CodeZine\AspNetCoreSample\project.lock.json

【(3)プロジェクトファイル: 「*.xproj」プロジェクトファイル】
C:\CodeZine\AspNetCoreSample\AspNetCoreSample.xproj

 前編に引き続き、このメッセージの内容に沿って、ASP.NET Coreにおける大きな変更点について紹介していきます。

(1)必要なパッケージ/アセンブリをNuGetで解決

 「dotnet restore」コマンドの実行結果として、出力ログに「Installing Newtonsoft.Json...」という外部パッケージを取得するメッセージに注目しましょう。この部分では「project.json」の内容に従い、アセンブリの依存関係を解析し、そのファイルがローカルPCに存在しているかを確認しています。

 このパッケージの解決順はVisual Studioの[オプション]−[NuGetパッケージマネージャ]−[パッケージソース]ウィンドウから、設定を確認することができます。

Visual StudioのNuGet設定画面
Visual StudioのNuGet設定画面

 この場合、以下の順序でパッケージの取得が実施されるため、ローカルPCに存在しない場合のみ、NuGetリポジトリからインターネット越しに取得されます。

  1. 「C:\Program Files (x86)\Microsoft SDKs\NuGetPackages」…ローカルPCのオフラインフォルダ
  2. https://api.nuget.org/v3/index.json」…インターネット上のNuGet.orgリポジトリ

 以前のASP.NETアプリケーションでは、取得した参照パッケージを各プロジェクトのフォルダの中に格納していましたが、ASP.NET Core(.NET Core)の場合、取得したアセンブリは、「C:\Users\<ユーザー名>\.nuget\packages\」というユーザー固有の共有フォルダに格納されます。

(2)依存情報をキャッシュする「project.lock.json」ファイル

 「dotnet restore」コマンドが実行されると、結果として「project.lock.json」というファイルが生成されます。このファイルには、project.jsonの参照設定やNugetの設定に応じた依存関係が出力されます。このファイルが無いとビルドを行うことができません(そのため、Visual Studioでは削除した瞬間に復元されます)。

(3)プロジェクトファイル「*.xproj」

 ASP.NET Coreでは、従来の「*.csproj(C#)」や「*.vbproj(VB)」とは異なり、新しいプロジェクトファイル形式「*.xproj」が利用されています。アセンブリや使用ファイルの設定は「project.json」に記載されているため、「xprojファイル」には、主にVisual Studioに関する設定が記載されます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
(4)JavaScript/CSSのバンドル・ミニファイ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは?連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 青木 淳夫(アオキ アツオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9747 2016/11/07 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング