.NET Core 2.0 の新機能

.NET core 2.0 には、次のことの拡張機能や新機能が含まれます。

ツール

dotnet restore の暗黙的な実行

以前のバージョンの .NET Core では、dotnet new コマンドで新しいプロジェクトを作成した直後に、またはプロジェクトに新しい依存関係を追加したときに、dotnet restore コマンドを実行して、依存関係をダウンロードする必要がありました。

復元を必要とするすべてのコマンド (dotnet newdotnet builddotnet rundotnet testdotnet publishdotnet pack など) によって暗黙的に実行されるため、dotnet restore を実行する必要がなくなりました。 暗黙的な復元を無効にするには、--no-restore オプションを使用します。

dotnet restoreなどの、明示的な復元が意味のある一部のシナリオや、復元が行われるタイミングを明示的に制御する必要があるビルド システムでは、dotnet restore は引き続き有用なコマンドです。

NuGet フィードの管理方法については、dotnet restore のドキュメントをご覧ください。

この dotnet restore の自動実行は、--no-restore スイッチを newrunbuildpublishpacktest コマンドに渡すことで、無効にすることもできます。

.NET Core 2.0 への再ターゲット

.NET Core 2.0 SDK がインストールされていれば、.NET Core 1.x をターゲットしているプロジェクトを .NET Core 2.0 に再ターゲットすることができます。

.NET Core 2.0 に再ターゲットするには、プロジェクト ファイルを編集して <TargetFramework> 要素 (または、プロジェクト ファイルに複数のターゲットがある場合は <TargetFrameworks> 要素) の値を 1.x から 2.0 に変更します。

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
 </PropertyGroup>

同じ方法で、.NET Standard ライブラリを .NET Standard 2.0 に再ターゲットすることもできます。

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
 </PropertyGroup>

.NET Core 2.0 へのプロジェクトの移行の詳細については、「Migrating from ASP.NET Core 1.x to ASP.NET Core 2.0 (ASP.NET Core 1.x から ASP.NET Core 2.0 への移行)」をご覧ください。

言語サポート

.NET Core 2.0 では、C# と F# に加えて Visual Basic もサポートされています。

Visual Basic

.NET Core のバージョン 2.0 では、Visual Basic 2017 がサポートされています。 Visual Basic を使用して、次の種類のプロジェクトを作成できます。

  • .NET Core コンソール アプリ
  • .NET Core クラス ライブラリ
  • .NET Standard クラス ライブラリ
  • .NET Core 単体テスト プロジェクト
  • .NET Core xUnit テスト プロジェクト

たとえば、Visual Basic で "Hello World" アプリケーションを作成するには、コマンドラインから次の手順を実行します。

  1. コンソール ウィンドウを開き、プロジェクトにディレクトリを作成し、そのディレクトリを現在のディレクトリにします。

  2. dotnet new console -lang vb コマンドを入力します。

    このコマンドにより、Program.vb というファイル名の Visual Basic ソース コードとともに、ファイル拡張子が .vbproj のプロジェクト ファイルが作成されます。 このファイル内に、"Hello World!" という文字列をコンソール ウィンドウに表示するためのソース コードが含まれています。

  3. dotnet run コマンドを入力します。 .NET Core CLI によりアプリケーションが自動的にコンパイルされて実行され、"Hello World!" メッセージがコンソール ウィンドウに表示されます。

C# 7.1 のサポート

.NET core 2.0 では、次のような新機能が追加された C# 7.1 がサポートされています。

  • アプリケーション エントリ ポイントである Main メソッドを、async キーワードでマークできます。
  • 推定タプル名。
  • 既定の式。

プラットフォームの機能強化

.NET core 2.0 には、.NET Core のインストールを簡略化し、サポートされているオペレーティング システム上で .NET Core を使用する機能がいくつか含まれています。

.NET Core for Linux は単一実装

.NET core 2.0 では、複数の Linux ディストリビューションで動作する単一の Linux 実装を提供します。 .NET core 1.x では、ディストリビューション固有の Linux 実装をダウンロードする必要がありました。

単一のオペレーティング システムとしての Linux をターゲットするアプリを開発することもできます。 .NET Core 1.x では、ディストリビューションごとに別の Linux をターゲットする必要がありました。

Apple 暗号化ライブラリのサポート

macOS の .NET Core 1.x では、OpenSSL ツールキットの暗号化ライブラリが必要でした。 .NET Core 2.0 では、Apple 暗号化ライブラリを使用し、OpenSSL を必要としないため、OpenSSL をインストールする必要がありません。

API の変更とライブラリのサポート

.NET Standard 2.0 のサポート

.NET Standard は、そのバージョンの標準に準拠した .NET 実装で使用する必要がある、バージョン管理された API のセットを定義します。 .NET Standard はライブラリ開発者を対象としています。 その目的は、.NET 実装ごとの .NET Standard のバージョンに対応するライブラリで使用できる機能を保証することです。 .NET Core 1.x では、.NET Standard バージョン 1.6 がサポートされており、.NET Core 2.0 では最新バージョンの .NET Standard 2.0 がサポートされています。 詳細については、「.NET Standard」をご覧ください。

.NET Standard 2.0 には、.NET Standard 1.6 で使用できた 20,000 個以上の API が含まれています。 この拡張されたアクセス領域の多くは、.NET Framework と Xamarin に共通する API を .NET Standard に組み込んだ結果です。

.NET Standard 2.0 クラスライブラリにより、.NET Standard 2.0 に存在する API を呼び出して、.NET Framework クラス ライブラリを参照することもできます。 .NET Framework ライブラリを再コンパイルする必要はありません。

最新バージョンの .NET Standard 1.6 以降に、.NET Standard に追加された API の一覧については、「.NET Standard 2.0 と 1.6」をご覧ください。

拡張されたアクセス領域

.NET Core 2.0 で使用できる API の数は、.NET Core 1.1 の 2 倍以上です。

また、Windows 互換機能パックにより、.NET Framework からの移植がより簡単になりました。

.NET Framework ライブラリのサポート

.NET Core のコードは、既存の NuGet パッケージなど、既存の .NET Framework ライブラリを参照できます。 ライブラリは .NET Standard にある API を使用する必要があることに注意してください。

Visual Studio の統合環境

Visual Studio 2017 バージョン 15.3 (場合によって Visual Studio for Mac) では、.NET Core 開発者のために十分な数の拡張機能をご用意しています。

.NET Core アプリと .NET Standard ライブラリの再ターゲット

.NET Core 2.0 SDK がインストールされていれば、.NET Core 1.x プロジェクトを .NET Core 2.0 に、.NET Standard 1.x ライブラリを .NET Standard 2.0 に再ターゲットすることができます。

Visual Studio のプロジェクトを再ターゲットするには、そのプロジェクトのプロパティ ダイアログの [アプリケーション] タブを開き、 [ターゲット フレームワーク] の値を「 .NET Core 2.0」または「 .NET Standard 2.0」に変更します。 プロジェクトを右クリックして編集*.csproj ファイル オプションを選択することで、変更することもできます。 詳細については、前述の「ツール」セクションをご覧ください。

.NET Core のライブ単体テスト対応

コードを変更すると常に、Live Unit Testing は影響を受ける単体テストをバックグラウンドで自動的に実行して、テスト結果とコード カバレッジをライブで Visual Studio 環境に表示します。 .NET core 2.0 では現在、Live Unit Testing がサポートされています。 以前は、.NET Framework アプリケーションでのみ Live Unit Testing が使用できました。

詳細については、「Visual Studio での Live Unit Testing」と「Live Unit Testing に関する FAQ」をご覧ください。

複数のターゲット フレームワークのサポートを向上

複数のターゲット フレームワークのプロジェクトをビルドする場合は、トップレベルのメニューからターゲット プラットフォームを選択できます。 次の図では、SCD1 という名前のプロジェクトが 64 ビット macOS X 10.11 (osx.10.11-x64) と 64 ビット Windows 10/Windows Server 2016 (win10-x64) をターゲットにしています。 プロジェクト ボタンを選択する前にターゲット フレームワークを選択できます。今回はデバッグ ビルドを実行するために選択します。

Screenshot showing target framework selection when building a project.

.NET Core SDK の side-by-side サポート

.NET Core SDK を Visual Studio とは別にインストールできます。 これにより、異なるバージョンの.NET Core をターゲットしているプロジェクトを 1 つのバージョンの Visual Studio でビルドできます。 以前は、Visual Studio と .NET Core SDK は密接に連携していました (特定のバージョンの Visual Studio に特定のバージョンの SDK が付属していました)。

ドキュメントの改善

.NET アプリケーション アーキテクチャ

.NET を使用して次のものをビルドする際は、.NET アプリケーション アーキテクチャにある、ガイダンス、ベスト プラクティス、サンプル アプリケーションを掲載した電子ブックをご覧ください。

関連項目