.NET Core 2.0 の新機能What's new in .NET Core 2.0

.NET core 2.0 には、次のことの拡張機能や新機能が含まれます。.NET Core 2.0 includes enhancements and new features in the following areas:

ツールTooling

dotnet restore の暗黙的な実行dotnet restore runs implicitly

以前のバージョンの .NET Core では、dotnet new コマンドで新しいプロジェクトを作成した直後に、またはプロジェクトに新しい依存関係を追加したときに、dotnet restore コマンドを実行して、依存関係をダウンロードする必要がありました。In previous versions of .NET Core, you had to run the dotnet restore command to download dependencies immediately after you created a new project with the dotnet new command, as well as whenever you added a new dependency to your project.

注意

.NET Core 2.0 SDK 以降、dotnet restore を実行する必要がなくなりました。dotnet newdotnet builddotnet run のような、復元を必要とするあらゆるコマンドによって暗黙的に実行されるためです。Starting with .NET Core 2.0 SDK, you don't have to run dotnet restore because it's run implicitly by all commands that require a restore to occur, such as dotnet new, dotnet build and dotnet run. Azure DevOps Services の継続的インテグレーション ビルドなど、明示的な復元が合理的となる一部のシナリオや、復元の時刻を明示的に制御する必要があるビルド システムでは、引き続き有効なコマンドとなります。It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control the time at which the restore occurs.

この dotnet restore の自動実行は、--no-restore スイッチを newrunbuildpublishpacktest コマンドに渡すことで、無効にすることもできます。You can also disable the automatic invocation of dotnet restore by passing the --no-restore switch to the new, run, build, publish, pack, and test commands.

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

.NET Core 2.0 SDK がインストールされていれば、.NET Core 1.x をターゲットしているプロジェクトを .NET Core 2.0 に再ターゲットすることができます。If the .NET Core 2.0 SDK is installed, projects that target .NET Core 1.x can be retargeted to .NET Core 2.0.

.NET Core 2.0 に再ターゲットするには、プロジェクト ファイルを編集して <TargetFramework> 要素 (または、プロジェクト ファイルに複数のターゲットがある場合は <TargetFrameworks> 要素) の値を 1.x から 2.0 に変更します。To retarget to .NET Core 2.0, edit your project file by changing the value of the <TargetFramework> element (or the <TargetFrameworks> element if you have more than one target in your project file) from 1.x to 2.0:

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

同じ方法で、.NET Standard ライブラリを .NET Standard 2.0 に再ターゲットすることもできます。You can also retarget .NET Standard libraries to .NET Standard 2.0 the same way:

<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 への移行)」をご覧ください。For more information about migrating your project to .NET Core 2.0, see Migrating from ASP.NET Core 1.x to ASP.NET Core 2.0.

言語サポートLanguage support

.NET Core 2.0 では、C# と F# に加えて Visual Basic もサポートされています。In addition to supporting C# and F#, .NET Core 2.0 also supports Visual Basic.

Visual BasicVisual Basic

.NET Core のバージョン 2.0 では、Visual Basic 2017 がサポートされています。With version 2.0, .NET Core now supports Visual Basic 2017. Visual Basic を使用して、次の種類のプロジェクトを作成できます。You can use Visual Basic to create the following project types:

  • .NET Core コンソール アプリ.NET Core console apps
  • .NET Core クラス ライブラリ.NET Core class libraries
  • .NET Standard クラス ライブラリ.NET Standard class libraries
  • .NET Core 単体テスト プロジェクト.NET Core unit test projects
  • .NET Core xUnit テスト プロジェクト.NET Core xUnit test projects

たとえば、Visual Basic で "Hello World" アプリケーションを作成するには、コマンドラインから次の手順を実行します。For example, to create a Visual Basic "Hello World" application, do the following steps from the command line:

  1. コンソール ウィンドウを開き、プロジェクトにディレクトリを作成し、そのディレクトリを現在のディレクトリにします。Open a console window, create a directory for your project, and make it the current directory.

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

    このコマンドにより、Program.vb というファイル名の Visual Basic ソース コードとともに、ファイル拡張子が .vbproj のプロジェクト ファイルが作成されます。The command creates a project file with a .vbproj file extension, along with a Visual Basic source code file named Program.vb. このファイル内に、"Hello World!" という文字列をThis file contains the source code to write the string "Hello World!" コンソール ウィンドウに表示するためのソース コードが含まれています。to the console window.

  3. dotnet run コマンドを入力します。Enter the command dotnet run. .NET Core CLI によりアプリケーションが自動的にコンパイルされて実行され、"Hello World!" メッセージが表示されます。The .NET Core CLI automatically compiles and executes the application, which displays the message "Hello World!" コンソール ウィンドウに表示します。in the console window.

C# 7.1 のサポートSupport for C# 7.1

.NET core 2.0 では、次のような新機能が追加された C# 7.1 がサポートされています。.NET Core 2.0 supports C# 7.1, which adds a number of new features, including:

  • アプリケーション エントリ ポイントである Main メソッドを、async キーワードでマークできます。The Main method, the application entry point, can be marked with the async keyword.
  • 推定タプル名。Inferred tuple names.
  • 既定の式。Default expressions.

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

.NET core 2.0 には、.NET Core のインストールを簡略化し、サポートされているオペレーティング システム上で .NET Core を使用する機能がいくつか含まれています。.NET Core 2.0 includes a number of features that make it easier to install .NET Core and to use it on supported operating systems.

.NET Core for Linux は単一実装.NET Core for Linux is a single implementation

.NET core 2.0 では、複数の Linux ディストリビューションで動作する単一の Linux 実装を提供します。.NET Core 2.0 offers a single Linux implementation that works on multiple Linux distributions. .NET core 1.x では、ディストリビューション固有の Linux 実装をダウンロードする必要がありました。.NET Core 1.x required that you download a distribution-specific Linux implementation.

単一のオペレーティング システムとしての Linux をターゲットするアプリを開発することもできます。You can also develop apps that target Linux as a single operating system. .NET Core 1.x では、ディストリビューションごとに別の Linux をターゲットする必要がありました。.NET Core 1.x required that you target each Linux distribution separately.

Apple 暗号化ライブラリのサポートSupport for the Apple cryptographic libraries

macOS の .NET Core 1.x では、OpenSSL ツールキットの暗号化ライブラリが必要でした。.NET Core 1.x on macOS required the OpenSSL toolkit's cryptographic library. .NET Core 2.0 では、Apple 暗号化ライブラリを使用し、OpenSSL を必要としないため、OpenSSL をインストールする必要がありません。.NET Core 2.0 uses the Apple cryptographic libraries and doesn't require OpenSSL, so you no longer need to install it.

API の変更とライブラリのサポートAPI changes and library support

.NET Standard 2.0 のサポートSupport for .NET Standard 2.0

.NET Standard は、そのバージョンの標準に準拠した .NET 実装で使用する必要がある、バージョン管理された API のセットを定義します。The .NET Standard defines a versioned set of APIs that must be available on .NET implementations that comply with that version of the standard. .NET Standard はライブラリ開発者を対象としています。The .NET Standard is targeted at library developers. .NET Standard の目的は、.NET 実装ごとの .NET Standard のバージョンに対応するライブラリで使用できる機能を保証することです。It aims to guarantee the functionality that is available to a library that targets a version of the .NET Standard on each .NET implementation. .NET Core 1.x では、.NET Standard バージョン 1.6 がサポートされており、.NET Core 2.0 では最新の .NET Standard 2.0 がサポートされています。.NET Core 1.x supports the .NET Standard version 1.6; .NET Core 2.0 supports the latest version, .NET Standard 2.0. 詳細については、「.NET Standard」をご覧ください。For more information, see .NET Standard.

.NET Standard 2.0 には、.NET Standard 1.6 で使用できた 20,000 個以上の API が含まれています。.NET Standard 2.0 includes over 20,000 more APIs than were available in the .NET Standard 1.6. この拡張されたアクセス領域の多くは、.NET Framework と Xamarin に共通する API を .NET Standard に組み込んだ結果です。Much of this expanded surface area results from incorporating APIs that are common to the .NET Framework and Xamarin into .NET Standard.

.NET Standard 2.0 クラス ライブラリは、.NET Framework クラス ライブラリを参照することもできます。ただし、呼び出す API が .NET Standard 2.0 内に存在している必要があります。.NET Standard 2.0 class libraries can also reference .NET Framework class libraries, provided that they call APIs that are present in the .NET Standard 2.0. .NET Framework ライブラリを再コンパイルする必要はありません。No recompilation of the .NET Framework libraries is required.

最新バージョンの .NET Standard 1.6 以降に、.NET Standard に追加された API の一覧については、「.NET Standard 2.0 vs. 1.6」をご覧ください。For a list of the APIs that have been added to the .NET Standard since its last version, the .NET Standard 1.6, see .NET Standard 2.0 vs. 1.6.

拡張されたアクセス領域Expanded surface area

.NET Core 2.0 で使用できる API の数は、.NET Core 1.1 の 2 倍以上です。The total number of APIs available on .NET Core 2.0 has more than doubled in comparison with .NET Core 1.1.

また、Windows 互換機能パックにより、.NET Framework からの移植がより簡単になりました。And with the Windows Compatibility Pack porting from .NET Framework has also become much simpler.

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

.NET Core のコードは、既存の NuGet パッケージなど、既存の .NET Framework ライブラリを参照できます。.NET Core code can reference existing .NET Framework libraries, including existing NuGet packages. ライブラリは .NET Standard にある API を使用する必要があることに注意してください。Note that the libraries must use APIs that are found in .NET Standard.

Visual Studio の統合環境Visual Studio integration

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

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

.NET Core 2.0 SDK がインストールされていれば、.NET Core 1.x プロジェクトを .NET Core 2.0 に、.NET Standard 1.x ライブラリを .NET Standard 2.0 に再ターゲットすることができます。If the .NET Core 2.0 SDK is installed, you can retarget .NET Core 1.x projects to .NET Core 2.0 and .NET Standard 1.x libraries to .NET Standard 2.0.

Visual Studio のプロジェクトを再ターゲットするには、そのプロジェクトのプロパティ ダイアログの [アプリケーション] タブを開き、 [ターゲット フレームワーク] の値を「 .NET Core 2.0」または「 .NET Standard 2.0」に変更します。To retarget your project in Visual Studio, you open the Application tab of the project's properties dialog and change the Target framework value to .NET Core 2.0 or .NET Standard 2.0. プロジェクトを右クリックして編集*.csproj ファイル オプションを選択することで、変更することもできます。You can also change it by right-clicking on the project and selecting the Edit *.csproj file option. 詳細については、前述の「ツール」セクションをご覧ください。For more information, see the Tooling section earlier in this topic.

.NET Core のライブ単体テスト対応Live Unit Testing support for .NET Core

コードを変更すると常に、Live Unit Testing は影響を受ける単体テストをバックグラウンドで自動的に実行して、テスト結果とコード カバレッジをライブで Visual Studio 環境に表示します。Whenever you modify your code, Live Unit Testing automatically runs any affected unit tests in the background and displays the results and code coverage live in the Visual Studio environment. .NET core 2.0 では現在、Live Unit Testing がサポートされています。.NET Core 2.0 now supports Live Unit Testing. 以前は、.NET Framework アプリケーションでのみ Live Unit Testing が使用できました。Previously, Live Unit Testing was available only for .NET Framework applications.

詳細については、「Visual Studio 2017 での Live Unit Testing」と「Live Unit Testing についてよく寄せられる質問」をご覧ください。For more information, see Live Unit Testing with Visual Studio 2017 and the Live Unit Testing FAQ.

複数のターゲット フレームワークのサポートを向上Better support for multiple target frameworks

複数のターゲット フレームワークのプロジェクトをビルドする場合は、トップレベルのメニューからターゲット プラットフォームを選択できます。If you're building a project for multiple target frameworks, you can now select the target platform from the top-level menu. 次の図では、SCD1 という名前のプロジェクトが 64 ビット macOS X 10.11 (osx.10.11-x64) と 64 ビット Windows 10/Windows Server 2016 (win10-x64) をターゲットにしています。In the following figure, a project named SCD1 targets 64-bit macOS X 10.11 (osx.10.11-x64) and 64-bit Windows 10/Windows Server 2016 (win10-x64). プロジェクト ボタンを選択する前にターゲット フレームワークを選択できます。今回はデバッグ ビルドを実行するために選択します。You can select the target framework before selecting the project button, in this case to run a debug build.

プロジェクトをビルドするときのターゲット フレームワークの選択を示すスクリーンショット。

.NET Core SDK の side-by-side サポートSide-by-side support for .NET Core SDKs

.NET Core SDK を Visual Studio とは別にインストールできます。You can now install the .NET Core SDK independently of Visual Studio. これにより、異なるバージョンの.NET Core をターゲットしているプロジェクトを 1 つのバージョンの Visual Studio でビルドできます。This makes it possible for a single version of Visual Studio to build projects that target different versions of .NET Core. 以前は、Visual Studio と .NET Core SDK は密接に連携していました (特定のバージョンの Visual Studio に特定のバージョンの SDK が付属していました)。Previously, Visual Studio and the .NET Core SDK were tightly coupled; a particular version of the SDK accompanied a particular version of Visual Studio.

ドキュメントの改善Documentation improvements

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

.NET を使用して次のものをビルドする際は、.NET アプリケーション アーキテクチャにある、ガイダンス、ベスト プラクティス、サンプル アプリケーションを掲載した電子ブックをご覧ください。.NET Application Architecture gives you access to a set of e-books that provide guidance, best practices, and sample applications when using .NET to build:

関連項目See also