「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>.NETのクロスプラットフォーム対応]]

* 目次 [#v1f3462c]
#contents

*概要 [#tb8ccca0]
-Windows・Linux・macOSをサポートするが、ランタイムは別物になる。

-しかし、「.NET Core の普及に伴い、自然と新しい API (≒ .NET Core)に移行。」とはならなかったため、
--[[.NET Standard]] の範囲を広げ、従来の .NET Framework の API をより多くサポート。
--既存の .NET Framework 向けのライブラリを .NET Core(など)でそのまま動作できるようにする。

>という対策が採られた。

-Target Platform Moniker (TPM) : netcoreapp 1.0 ~ 2.0の実装になる。
--ターゲット フレームワーク | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/standard/frameworks

**1.x [#gc46e44c]
***1.0 [#ka272f59]
-2016年6月27日に最初の正式版である.NET Core 1.0が公開
--ランタイム(=実行環境)は正式版
--ビルドツール(=開発ツール)まわりは商用環境での利用可能なPreview版相当のリリース

-2017年3月7日の.NET Core Tools 1.0のリリース
--ビルドツール(=開発ツール)まわりも正式版をリリース

***1.1 [#iecfdab9]

**2.x [#r6f2bd89]

***2.0 [#m30ee4c3]
2017年8月17日にリリースされたもよう。

-.NET Core 2.0 と .NET Standard 2.0 がリリースされたよ: C# プログラミング 再入門~
http://dotnetcsharptips.seesaa.net/article/452777200.html

-Announcing .NET Standard 2.0 | .NET Blog~
https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/

-ランタイムおよびフレームワークの性能が向上
-6つのプラットフォームを新たにサポート
--Debian Stretch
--SUSE Linux Enterprise Server 12 SP2
--macOS High Sierra
--...

*開発とデバッグ [#q6593bd5]
**開発 [#hbe019f5]
-[[開発環境を構築し>.NET Standard#z1acf213]]、~
-その後、コンソールアプリ(.NET Core)のプロジェクト・テンプレートを選択
-ビルド・[[デバッグ>#p2ed0b16]]実行するだけ。

**デバッグ [#p2ed0b16]
-プラットフォームに合わせてビルドされていないものは~
Windows上で以下のようにデバッグ実行される(F5実行)。
 C:\Users\xxxx>"C:\Program Files\dotnet\dotnet.exe" "...\Visual Studio 2017\Projects\ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.dll"
 Hello World!

-プラットフォームに合わせてビルド・配置する方法については[[こちら>#ld48163e]]を参照。

*過去の情報 [#v10876f0]
**DNX [#a716c135]
DNX : .NET Execution Environment

-.NETアプリをクロスプラットフォームで実行するために必要な要素をまとめた環境
-前の呼称はKRE(K Runtime Environment)、XRE(Cross-platform Runtime Environment)

***特徴 [#f7499341]
-サイドバイサイド実行
--.NET Framework(Full CLR)
--.NET Core(Core CLR)+CoreFXクラスライブラリ
--mono

-OSの種類に関係なく、アプリを実行可能
--Windows
--OS X(Mac)
--Linux

-パッケージ管理(依存関係の管理)による高いモジュール性(NuGet)
-ソースコードから実行可能(Roslyn)

***コマンド [#ee1f3162]
-dnvm(.NET Version Manager)コマンドにより現在の環境で使用するDNXを切り替える。
-dnuコマンド: NuGetクライアント。
-dnxコマンド: 現在のDNXを使用して、アプリを実行する。

***project.json [#w0759032]
-NuGetパッケージとバージョンを示すJSONファイル、IntelliSenseでNuGetパッケージを検索して追加できる。

-上記の[[DNX>#a716c135]]でサポートされていた形式なので、[[CoreFx>#gd2a8024]]に移行する場合は、*.csprojに変換する必要がある。

**紆余曲折 [#ofd214a8]
[[こちら>#tb8ccca0]]に至るまでの紆余曲折(Project K / KRE → XRE → DNX → [[.NET Core CLI>#gd2a8024]])。

-特集:ASP.NET 5を探る:~
「最新.NET技術がよく分からない」と感じる人のための用語整理 (1/3) - @IT~
http://www.atmarkit.co.jp/ait/articles/1505/19/news016.html

-.NET Core と DNX は本当に未来なのか~
https://www.slideshare.net/shibayan/net-core-dnx

-猫でもわかる ASP.NET 5 入門~
https://www.slideshare.net/shibayan/aspnet-5-49152896

**移行 [#c918fa1a]
***Microsoft Docs [#ub89604a]
-.NET Core の csproj 形式への移行~
https://docs.microsoft.com/ja-jp/dotnet/core/migration/

-project.json と csproj の比較 - .NET Core~
https://docs.microsoft.com/ja-jp/dotnet/core/tools/project-json-to-csproj

-DNX から .NET Core CLI への移行~
https://docs.microsoft.com/ja-jp/dotnet/articles/core/migration/from-dnx

*[[.NET Coreのデプロイ]] [#ld48163e]

*参考 [#g5ab1d91]
**移行関係の情報 [#d18846cb]
***.NET Core [#aab654b5]
-.NET Core - .NET Core による .NET のクロスプラットフォームへの移行~
https://msdn.microsoft.com/ja-jp/magazine/mt694084.aspx

-.NET Framework から .NET Core への移植 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/

-.NET Coreへの移植 | ++C++; // 未確認飛行 C ブログ~
http://ufcpp.net/blog/2016/2/porting-to-net-core/

***[[ASP.NET Core]] [#pb8954de]
[[こちら>ASP.NET Core#z4216656]]。

**microsoft.com [#va4a3c25]
-Download .NET Core for Linux~
https://www.microsoft.com/net/download/linux

-Entity Framework Core 1.0 正式リリース – 雲のごとく~
https://blogs.msdn.microsoft.com/daisukei/2016/06/28/entity-framework-core-1-0-%E6%AD%A3%E5%BC%8F%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9/

**Build Insider [#j57c434c]
***C#による.NET Core入門(1) [#fb1042ad]
-.NET Coreとは? 開発環境(SDKとVisual Studio Code)のインストール~
http://www.buildinsider.net/language/dotnetcore/01

-レッドハット版.NET Coreとマイクロソフト版.NET Coreの違い~
http://www.buildinsider.net/language/dotnetcore/02

-.NET Coreでプロジェクトを作成して開発してみよう~
http://www.buildinsider.net/language/dotnetcore/03

**その他 [#r4ebdc4d]
-.NET Standard とは何か? | Moonmile Solutions Blog~
http://www.moonmile.net/blog/archives/8218

-さいきんの.NETのこととかNuGetとかCoreとかよく分からないよねーって話 - Qiita~
http://qiita.com/acple@github/items/e80bef939583fc2b0e5e

-.NET Coreと.NET Standard: 違いは何か?~
https://www.infoq.com/jp/news/2017/10/dotnet-core-standard-difference

----
Tags: [[:.NET開発]], [[:.NET Core]], [[:.NET Standard]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS