「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>.NETのクロスプラットフォーム対応]] * 目次 [#v1f3462c] #contents *概要 [#tb8ccca0] -もともと、オープンソース化された .NET Framework のサブセットだった。 -しかし、「.NET Core の普及に伴い、.NET Frameworkから.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 -Windows・Linux・macOSをサポートするが、其々ランタイムは別物になる。 **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 --... ***2.1 [#wb68896e] -.NET Core 2.1のロードマップが公開されたようです - つばろぐ~ http://tsubalog.hatenablog.com/entry/net-core-2-1-roadmap *開発 / デバッグ / ビルド / デプロイ [#q6593bd5] **開発 [#hbe019f5] -[[開発環境を構築し>.NET Standard#z1acf213]]、~ -プロジェクト・テンプレートを選択、 -ビルド・[[デバッグ>#p2ed0b16]]実行するだけ。 -[[Linuxへデプロイ>#a1fdcaf9]]する前に[[WSLで開発>Windows Subsystem for Linux#w85d0688]]してみる事も可能。 **デバッグ [#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! -[[WindowsのWSL>Windows Subsystem for Linux#w85d0688]]上で以下のようにデバッグ実行される(F5実行)。 ・・・ **ビルド [#g36ab214] -dotnet msbuild コマンド - .NET Core CLI | Microsoft Docs~ https://docs.microsoft.com/ja-jp/dotnet/core/tools/dotnet-msbuild **[[デプロイ>.NET Coreのデプロイ]] [#a1fdcaf9] プラットフォームに合わせてビルド・配置する方法。 *移行 [#d18846cb] **[[.NET Coreへの移行]] [#zee0a5f0] **[[ASP.NET Coreへの移行]] [#bc580ed8] *過去の情報 [#v10876f0] **DNX [#a716c135] DNX : .NET Execution Environment -.NETアプリをクロスプラットフォームで実行するために必要な要素をまとめた環境 -前の呼称はKRE(K Runtime Environment)、XRE(Cross-platform Runtime Environment) -現在は、廃止されている。 --DNX から .NET Core CLI への移行~ https://docs.microsoft.com/ja-jp/dotnet/articles/core/migration/from-dnx ***特徴 [#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パッケージを検索して追加できる。 -現在は、廃止されている。 --.NET Core は project.json の廃止を予定している~ https://www.infoq.com/jp/news/2016/08/project-json -上記の[[DNX>#a716c135]]でサポートされていた形式なので、~ [[CoreFx>#gd2a8024]]に移行する場合は、*.csprojに変換する必要がある。 --.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 **紆余曲折 [#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 *参考 [#g5ab1d91] **外部 [#oed799bb] -さいきんの.NETのこととかNuGetとかCoreとかよく分からないよねーって話 - Qiita~ http://qiita.com/acple@github/items/e80bef939583fc2b0e5e ***infoq.com [#u53d3ac5] -ASP.NET Coreが.NET Frameworkサポートを終了~ https://www.infoq.com/jp/news/2017/06/ASPNET-Core-2 -.NET Coreと.NET Standard: 違いは何か?~ https://www.infoq.com/jp/news/2017/10/dotnet-core-standard-difference ***microsoft.com [#va4a3c25] -Download .NET Core for Linux~ https://www.microsoft.com/net/download/linux ---- Tags: [[:.NET開発]], [[:.NET Core]], [[:.NET Standard]]