「[[マイクロソフト系技術情報 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
--...

*構成・機能 [#s7bafdc6]
**CoreFx [#gd2a8024]
.NET Coreの実行エンジン、~
CoreCLR: Core Common Language Runtime

-米Microsoft、.NET Coreの実行エンジン「CoreCLR」をオープンソースに | OSDN Magazine~
https://mag.osdn.jp/15/02/05/154200
-dotnet/coreclr~
https://github.com/dotnet/coreclr
>This repo contains the .NET Core runtime, called CoreCLR, and the base library,~
called System.Private.Corelib (or mscorlib). It includes the garbage collector,~
JIT compiler, base .NET data types and many low-level classes. We welcome contributions.

**動的コンパイル [#r133cb0b]
コードを変更する度にアプリケーションをコンパイルする必要がない。

+コードを編集
+変更を保存
+ブラウザを更新
+変更内容は自動的に表示

**パッケージ管理(依存関係の管理) [#u2a7c3a4]
***NuGetパッケージマネージャ [#f1b06e46]
NuGetパッケージマネージャを使用して管理する。

***[[project.json>#w0759032]] [#ja3a649f]
[[project.json>#w0759032]]は、*.csprojに統合された。

**クラウド [#v476f416]
***config [#d431e2f7]
ソース(JSON、XML、環境変数など)から名前付きの値を要求

*過去の情報 [#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を使用して、アプリを実行する。

**動的コンパイル [#r133cb0b]
コードを変更する度にアプリケーションをコンパイルする必要がない。
***project.json [#w0759032]
-NuGetパッケージとバージョンを示すJSONファイル、IntelliSenseでNuGetパッケージを検索して追加できる。

+コードを編集
+変更を保存
+ブラウザを更新
+変更内容は自動的に表示
-上記の[[DNX>#a716c135]]でサポートされていた形式なので、[[CoreFx>#gd2a8024]]に移行する場合は、*.csprojに変換する必要がある。

**パッケージ管理(依存関係の管理) [#u2a7c3a4]
***NuGetパッケージマネージャ [#f1b06e46]
NuGetパッケージマネージャを使用して管理する。
**紆余曲折 [#ofd214a8]
[[こちら>#tb8ccca0]]に至るまでの紆余曲折(Project K / KRE → XRE → DNX → [[.NET Core CLI>#gd2a8024]])。

***project.json [#w0759032]
-NuGetパッケージとバージョンを示すJSONファイル(project.json)を直接編集
-IntelliSenseでNuGetパッケージを検索して追加できる。
-特集:ASP.NET 5を探る:~
「最新.NET技術がよく分からない」と感じる人のための用語整理 (1/3) - @IT~
http://www.atmarkit.co.jp/ait/articles/1505/19/news016.html

**クラウド [#v476f416]
***config [#d431e2f7]
ソース(JSON、XML、環境変数など)から名前付きの値を要求
-.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

*参考 [#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#d18846cb]]。

**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

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


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