「[[マイクロソフト系技術情報 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]]を参照。

*移行(クロスプラットフォーム) [#d18846cb]
**.NET Core [#aab654b5]
-.NET Framework から .NET Core への移植 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/
*移行 [#d18846cb]
**[[.NET Coreへの移行]] [#zee0a5f0]

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

***MSDN magazine [#p0ca5adb]
-.NET Core
--方法や場所を選ばない .NET アプリの作成~
https://msdn.microsoft.com/ja-jp/magazine/mt842494
--Roslyn と .NET Core によるクロスプラットフォーム コードの生成~
https://msdn.microsoft.com/ja-jp/magazine/mt808499

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

*過去の情報 [#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]
-.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]
**内部 [#b8b66d45]
***[[ASP.NET Core]] [#n1cc2902]
***デプロイ [#gfb73c00]
-[[.NET Coreのデプロイ]]
-[[ASP.NET Coreのデプロイ]]

**外部 [#oed799bb]
-.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

***infoq.com [#u53d3ac5]
-ASP.NET Coreが.NET Frameworkサポートを終了~
https://www.infoq.com/jp/news/2017/06/ASPNET-Core-2

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

-MSDN magazine
--Essential .NET
---.NET Core における構成~
https://msdn.microsoft.com/ja-jp/magazine/mt632279.aspx
---.NET Core によるログ記録~
https://msdn.microsoft.com/ja-jp/magazine/mt694089.aspx
---.NET Core による依存関係の挿入~
https://msdn.microsoft.com/ja-jp/magazine/mt707534.aspx
---Visual Studio 2015 と .NET Core ツール~
https://msdn.microsoft.com/magazine/mt736459
---.NET Core 1.0 によるコマンドライン処理~
https://msdn.microsoft.com/magazine/mt763239

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


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