.NET Standardへの移行
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[.NET Standard]]
--[[移行・マイグレーション]]
---[[.NETのクロスプラットフォーム対応]]
* 目次 [#o5a016dc]
#contents
*概要 [#r7faebbc]
対象は、[[.NET Standard]] 2.0。
-下記の「[[移行元 / 移行先>.NETのクロスプラットフォーム対...
-[[コチラ>.NET Standard#ie8e5050]]に書いた通り、PCLと比べ...
※ [[ただし、.NET Standardは、.NET 6 で廃止予定との事。>.N...
*詳細 [#u9084419]
**準備 [#k7f8bf18]
***[[移行プロセスの確認>#ncb5387c]] [#v4769a8c]
***移行性評価の実施 [#z0edc7c9]
必要に応じて、[[移行性評価ツール>.NETのクロスプラットフォ...
***[[移行先>.NETのクロスプラットフォーム対応#e3670d04]]プ...
不要なファイルを削除する。
-packages.config
-Properties\AssemblyInfo.cs
***Projectファイルを準備する。 [#e8f374c4]
-以下のようなProjectファイルを準備する。~
(既存のProjectファイルの中身を以下で置き換えればイイ)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
-[[.NET Standard]]では、配下のSourceファイルが自動で追加...
必要に応じて、ファイルやフォルダの除外設定を行う。~
※ netstandardやnetcoreでは、除外されるファイルやフォルダ...
***ProjectをVisual Studioから開く。 [#w8f1924b]
Projectファイルをダブルクリックするか、空のソリューション...
***Projectの初期設定を行う。 [#tb3a8fcc]
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>XXXX</AssemblyName>
<RootNamespace>YYYY</RootNamespace>
</PropertyGroup>
**[[ポーティング移行>移行・マイグレーション#ue626a7c]] [#...
***移行対象ファイルを選別する。 [#j19db7af]
-コンパイル・エラーをチェックしながら移行対象ファイルを選...
-クラス・メソッドの有/無については、[[以下の検索システム>...
***必要に応じて、NuGetパッケージを追加する。 [#b63d5929]
-「参照無し」が発生したら、NuGetパッケージを確認しインス...
NuGetパッケージにnetstandardが含まれるかどうかを確認する。~
([[パッケージを解凍して、中を直接確認>NuGetパッケージの...
-以下のライブラリの移行先をNuGetパッケージから探す。
--[[System系ライブラリ>#s76bf31b]]
---[[System.Configuration.ConfigurationManager>#qcd853ca]]
--System.Data系ライブラリ~
[[ADO.NETデータプロバイダ]]
---System.Data.SqlClient
---System.Data.Odbc
---Npgsql
---MySql.Data
--[[ASP.NET Core系ライブラリ>#odebd8c3]]~
※ ココが比較的、大変。
--[[その他ライブラリ>#sec5fcfd]]
---log4net
---Json.NET
-参考
--.NET Core に移植する - Windows 互換機能パックの使用~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/wind...
***必要に応じて、[[ポーティング移行>移行・マイグレーショ...
以下のPlatformやLibraryに依存していた処理を、削除するか、...
-Windows
-net11 - net47 - netXX
-Microsoft.VisualBasic
-上記以外のNuGetパッケージ
*パッケージ・マネージャ [#w4347dc8]
**NuGet [#f51240e8]
***引き続き使用できる。 [#p7a93db3]
-[[.NET Standard]]、[[.NET Core]]でも、引き続きNuGetを使...
-1つのNuGetパッケージには、.NET Framework以外に、~
[[.NET Standard]]、[[.NET Core]]のライブラリを同梱してパ...
***Dependencies [#ya618486]
[[.NET Standard]]、[[.NET Core]]開発に活用できるNuGetライ...
[[.NET Standard]]、[[.NET Core]] 側にだけ、Dependencies ...
※ しかし、実際には、Dependenciesが正確に書かれていないケ...
(「target="lib\netXXX」毎にDependenciesが異なるので当...
実際にインストールして[[.NET Standard]]に対応しているか...
*System系ライブラリ [#s76bf31b]
** [[*.config>.NET Core config]] [#n8baa2a2]
**ADO.NET [#n6543893]
***型付きDataSet [#o6c225b0]
-(今の所、)型付きDataSetがない。
-参考
--Port xsd.exe to .NET Core · Issue #8647 · dotnet/corefx~
https://github.com/dotnet/corefx/issues/8647
***DatasetExtensions [#i9e17b1b]
LINQ to DataSetを使用できない。
-参考
--Port DatasetExtensions to .NET Core · Issue #19771 · do...
https://github.com/dotnet/corefx/issues/19771
*その他ライブラリ [#sec5fcfd]
**log4net [#ga11dd74]
-一部、インターフェイスの変更があるもよう。
-引数にRepositoryが必要になったようだが、~
Microsoft.Extensions.Logging.ILoggerProviderの規則などに...
***参考 [#y7d8880d]
-How to use Log4Net with ASP.NET Core for logging | dotne...
https://dotnetthoughts.net/how-to-use-log4net-with-aspnet...
-Essential .NET - .NET Core によるログ記録~
https://msdn.microsoft.com/ja-jp/magazine/mt694089.aspx
**その他 [#x3627e74]
-DotNetZip ---> ・・・
-System.Net.Mail ---> MailKit
-System.Drawing ---> ImageProcessor
*[[ASP.NET Core]]系ライブラリ [#odebd8c3]
-対応するライブラリが「Microsoft.AspNetCore.XXXX」にある...
-これらのライブラリは[[ASP.NET Core]]ではなく、[[.NET Sta...
https://www.nuget.org/packages/Microsoft.AspNetCore.All
**System.Web [#i5893ae7]
対応するライブラリが「Microsoft.AspNetCore.XXXX」にある可...
***RootPath [#paa63f57]
|#|内容|net|netcore, netstandard|h
|1|現在のアプリケーションのルート仮想パス(「/」や「/アプ...
|2|サーバー アプリケーションのルート ディレクトリの物理フ...
-参考
--[[Webサイトのパスを取得する方法]]
--asp.net core - Access IApplicationEnvironment.Applicati...
https://stackoverflow.com/questions/37298402/access-iappl...
--Getting the Web Root Path and the Content Root Path in ...
https://blog.mariusschulz.com/2016/05/22/getting-the-web-...
***HttpContext [#yfe521c8]
-c# - How to get HttpContext.Current in ASP.NET Core? - S...
https://stackoverflow.com/questions/38571032/how-to-get-h...
-Accessing HttpContext outside of framework components in...
https://www.strathweb.com/2016/12/accessing-httpcontext-o...
※ 上記の「Mimicking HttpContext.Current」で[[.NET Standar...
***[[Session>ASP.NET CoreのSession利用方法#x840cdc7]] [#b...
※ [[HttpContext>#yfe521c8]]経由でアクセスする。
***Cookie [#vcd28b71]
-ASP.NET Core Working With Cookie~
https://www.c-sharpcorner.com/article/asp-net-core-workin...
-ASP.NET Core 2.0 MVC で Cookie を利用する - Qiita~
https://qiita.com/code0327/items/26c09c83103083ae57b7
***その他 [#q5729d43]
-System.Web.Routing.RouteTable ---> Microsoft.AspNetCore....
-・・・
**Microsoft.Owin [#gce2c3f9]
対応するライブラリが「Microsoft.AspNetCore.XXXX」にある可...
***Base64Url [#b4a7094a]
-[[Microsoft.AspNetCore.WebUtilities>https://docs.microso...
*[[ASP.NET Core]]系ミドルウェア [#cdb7c1c5]
**Filters [#fdf91fc4]
Microsoft.AspNetCore.Mvc.Filters
***Filterクラス [#m32862a5]
-Filterパイプラインが再実装されて、分かりやすくシンプルに...
-ASP.NET MVC 5 と同じように扱える抽象クラスが Core MVC で...
(ActionFilterAttribute, ResultFilterAttribute, Exception...
-Resource Filterにより、キャッシュなどパフォーマンスの改...
-ただし、一部にインターフェイスの変更はある(フィルタ・メ...
-また、下記が追加された。
--非同期版のメソッドの追加。
--属性だけでなくDIとの連携した適用が可能になった。
***参考 [#g5a11005]
-Filters
--フィルター | Microsoft Docs~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/controll...
--ASP.NET Core MVC で大きく変わったフィルタについて調べた...
http://blog.shibayan.jp/entry/20160727/1469596437
--アクションフィルタ - コントローラ詳細 - ASP.NET Core Cl...
http://aspnet-core.clock-up.jp/contents/controller/action...
**MVC [#w703d092]
Microsoft.AspNetCore.Mvc
***Controllerクラス [#b59d2213]
-[[上記のFiltersの影響>#fdf91fc4]]により、一部のメソッド...
**WebAPI [#kde6f3a7]
***Controllerクラス [#t3d533d0]
-ベースクラスが、[[MVC>#w703d092]]の[[Controller>#b59d221...
-[[上記のFiltersの影響>#fdf91fc4]]により、一部のメソッド...
***Filter、FilterAttributeクラス [#u3864545]
-ASP.NET Core - 実際の ASP.NET Core MVC フィルター~
https://msdn.microsoft.com/ja-jp/magazine/mt767699.aspx
-Azure ServiceFabric - Asp.Net WebApiをCore化した時のメモ...
https://qiita.com/Yossan/items/e2beb926c0bab31912be
*参考 [#p59f57c7]
[[.NET Standard]]は、[[.NET Core]]のサブセットなので、≒[[...
なので、以下のリンクは、[[.NET Coreへの移行]]の情報を含む。
**内部リンク [#e572057e]
***[[.NET Coreへの移行]] [#xd12992f]
***[[ASP.NET Coreへの移行]] [#ob21c056]
***[[.NET Standardバージョンアップ>.NET Coreバージョンア...
***[[マネージドコードとアンマネージドコードのブリッジ]] [...
**microsoft.com [#icd8ac95]
***Microsoft Docs [#ncb5387c]
-.NET Framework から .NET Core への移植~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/
--プロジェクトを整理し、.NET Framework と .NET Core をサ...
https://docs.microsoft.com/ja-jp/dotnet/core/porting/proj...
--.NET Core への移植 - サードパーティの依存関係を分析する~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/thir...
--.NET Core への移植 - ライブラリ~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/libr...
--.NET Core に移植する - Windows 互換機能パックの使用~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/wind...
***MSDN magazine > Essential .NET [#y1a2850c]
-.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
***.NET API Browser [#j6b71fa5]
https://docs.microsoft.com/en-us/dotnet/api/index
-.NET Standard API Reference~
https://docs.microsoft.com/en-us/dotnet/api/index?view=ne...
----
Tags: [[:.NET開発]], [[:.NET Core]], [[:.NET Standard]], ...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[.NET Standard]]
--[[移行・マイグレーション]]
---[[.NETのクロスプラットフォーム対応]]
* 目次 [#o5a016dc]
#contents
*概要 [#r7faebbc]
対象は、[[.NET Standard]] 2.0。
-下記の「[[移行元 / 移行先>.NETのクロスプラットフォーム対...
-[[コチラ>.NET Standard#ie8e5050]]に書いた通り、PCLと比べ...
※ [[ただし、.NET Standardは、.NET 6 で廃止予定との事。>.N...
*詳細 [#u9084419]
**準備 [#k7f8bf18]
***[[移行プロセスの確認>#ncb5387c]] [#v4769a8c]
***移行性評価の実施 [#z0edc7c9]
必要に応じて、[[移行性評価ツール>.NETのクロスプラットフォ...
***[[移行先>.NETのクロスプラットフォーム対応#e3670d04]]プ...
不要なファイルを削除する。
-packages.config
-Properties\AssemblyInfo.cs
***Projectファイルを準備する。 [#e8f374c4]
-以下のようなProjectファイルを準備する。~
(既存のProjectファイルの中身を以下で置き換えればイイ)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
-[[.NET Standard]]では、配下のSourceファイルが自動で追加...
必要に応じて、ファイルやフォルダの除外設定を行う。~
※ netstandardやnetcoreでは、除外されるファイルやフォルダ...
***ProjectをVisual Studioから開く。 [#w8f1924b]
Projectファイルをダブルクリックするか、空のソリューション...
***Projectの初期設定を行う。 [#tb3a8fcc]
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>XXXX</AssemblyName>
<RootNamespace>YYYY</RootNamespace>
</PropertyGroup>
**[[ポーティング移行>移行・マイグレーション#ue626a7c]] [#...
***移行対象ファイルを選別する。 [#j19db7af]
-コンパイル・エラーをチェックしながら移行対象ファイルを選...
-クラス・メソッドの有/無については、[[以下の検索システム>...
***必要に応じて、NuGetパッケージを追加する。 [#b63d5929]
-「参照無し」が発生したら、NuGetパッケージを確認しインス...
NuGetパッケージにnetstandardが含まれるかどうかを確認する。~
([[パッケージを解凍して、中を直接確認>NuGetパッケージの...
-以下のライブラリの移行先をNuGetパッケージから探す。
--[[System系ライブラリ>#s76bf31b]]
---[[System.Configuration.ConfigurationManager>#qcd853ca]]
--System.Data系ライブラリ~
[[ADO.NETデータプロバイダ]]
---System.Data.SqlClient
---System.Data.Odbc
---Npgsql
---MySql.Data
--[[ASP.NET Core系ライブラリ>#odebd8c3]]~
※ ココが比較的、大変。
--[[その他ライブラリ>#sec5fcfd]]
---log4net
---Json.NET
-参考
--.NET Core に移植する - Windows 互換機能パックの使用~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/wind...
***必要に応じて、[[ポーティング移行>移行・マイグレーショ...
以下のPlatformやLibraryに依存していた処理を、削除するか、...
-Windows
-net11 - net47 - netXX
-Microsoft.VisualBasic
-上記以外のNuGetパッケージ
*パッケージ・マネージャ [#w4347dc8]
**NuGet [#f51240e8]
***引き続き使用できる。 [#p7a93db3]
-[[.NET Standard]]、[[.NET Core]]でも、引き続きNuGetを使...
-1つのNuGetパッケージには、.NET Framework以外に、~
[[.NET Standard]]、[[.NET Core]]のライブラリを同梱してパ...
***Dependencies [#ya618486]
[[.NET Standard]]、[[.NET Core]]開発に活用できるNuGetライ...
[[.NET Standard]]、[[.NET Core]] 側にだけ、Dependencies ...
※ しかし、実際には、Dependenciesが正確に書かれていないケ...
(「target="lib\netXXX」毎にDependenciesが異なるので当...
実際にインストールして[[.NET Standard]]に対応しているか...
*System系ライブラリ [#s76bf31b]
** [[*.config>.NET Core config]] [#n8baa2a2]
**ADO.NET [#n6543893]
***型付きDataSet [#o6c225b0]
-(今の所、)型付きDataSetがない。
-参考
--Port xsd.exe to .NET Core · Issue #8647 · dotnet/corefx~
https://github.com/dotnet/corefx/issues/8647
***DatasetExtensions [#i9e17b1b]
LINQ to DataSetを使用できない。
-参考
--Port DatasetExtensions to .NET Core · Issue #19771 · do...
https://github.com/dotnet/corefx/issues/19771
*その他ライブラリ [#sec5fcfd]
**log4net [#ga11dd74]
-一部、インターフェイスの変更があるもよう。
-引数にRepositoryが必要になったようだが、~
Microsoft.Extensions.Logging.ILoggerProviderの規則などに...
***参考 [#y7d8880d]
-How to use Log4Net with ASP.NET Core for logging | dotne...
https://dotnetthoughts.net/how-to-use-log4net-with-aspnet...
-Essential .NET - .NET Core によるログ記録~
https://msdn.microsoft.com/ja-jp/magazine/mt694089.aspx
**その他 [#x3627e74]
-DotNetZip ---> ・・・
-System.Net.Mail ---> MailKit
-System.Drawing ---> ImageProcessor
*[[ASP.NET Core]]系ライブラリ [#odebd8c3]
-対応するライブラリが「Microsoft.AspNetCore.XXXX」にある...
-これらのライブラリは[[ASP.NET Core]]ではなく、[[.NET Sta...
https://www.nuget.org/packages/Microsoft.AspNetCore.All
**System.Web [#i5893ae7]
対応するライブラリが「Microsoft.AspNetCore.XXXX」にある可...
***RootPath [#paa63f57]
|#|内容|net|netcore, netstandard|h
|1|現在のアプリケーションのルート仮想パス(「/」や「/アプ...
|2|サーバー アプリケーションのルート ディレクトリの物理フ...
-参考
--[[Webサイトのパスを取得する方法]]
--asp.net core - Access IApplicationEnvironment.Applicati...
https://stackoverflow.com/questions/37298402/access-iappl...
--Getting the Web Root Path and the Content Root Path in ...
https://blog.mariusschulz.com/2016/05/22/getting-the-web-...
***HttpContext [#yfe521c8]
-c# - How to get HttpContext.Current in ASP.NET Core? - S...
https://stackoverflow.com/questions/38571032/how-to-get-h...
-Accessing HttpContext outside of framework components in...
https://www.strathweb.com/2016/12/accessing-httpcontext-o...
※ 上記の「Mimicking HttpContext.Current」で[[.NET Standar...
***[[Session>ASP.NET CoreのSession利用方法#x840cdc7]] [#b...
※ [[HttpContext>#yfe521c8]]経由でアクセスする。
***Cookie [#vcd28b71]
-ASP.NET Core Working With Cookie~
https://www.c-sharpcorner.com/article/asp-net-core-workin...
-ASP.NET Core 2.0 MVC で Cookie を利用する - Qiita~
https://qiita.com/code0327/items/26c09c83103083ae57b7
***その他 [#q5729d43]
-System.Web.Routing.RouteTable ---> Microsoft.AspNetCore....
-・・・
**Microsoft.Owin [#gce2c3f9]
対応するライブラリが「Microsoft.AspNetCore.XXXX」にある可...
***Base64Url [#b4a7094a]
-[[Microsoft.AspNetCore.WebUtilities>https://docs.microso...
*[[ASP.NET Core]]系ミドルウェア [#cdb7c1c5]
**Filters [#fdf91fc4]
Microsoft.AspNetCore.Mvc.Filters
***Filterクラス [#m32862a5]
-Filterパイプラインが再実装されて、分かりやすくシンプルに...
-ASP.NET MVC 5 と同じように扱える抽象クラスが Core MVC で...
(ActionFilterAttribute, ResultFilterAttribute, Exception...
-Resource Filterにより、キャッシュなどパフォーマンスの改...
-ただし、一部にインターフェイスの変更はある(フィルタ・メ...
-また、下記が追加された。
--非同期版のメソッドの追加。
--属性だけでなくDIとの連携した適用が可能になった。
***参考 [#g5a11005]
-Filters
--フィルター | Microsoft Docs~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/controll...
--ASP.NET Core MVC で大きく変わったフィルタについて調べた...
http://blog.shibayan.jp/entry/20160727/1469596437
--アクションフィルタ - コントローラ詳細 - ASP.NET Core Cl...
http://aspnet-core.clock-up.jp/contents/controller/action...
**MVC [#w703d092]
Microsoft.AspNetCore.Mvc
***Controllerクラス [#b59d2213]
-[[上記のFiltersの影響>#fdf91fc4]]により、一部のメソッド...
**WebAPI [#kde6f3a7]
***Controllerクラス [#t3d533d0]
-ベースクラスが、[[MVC>#w703d092]]の[[Controller>#b59d221...
-[[上記のFiltersの影響>#fdf91fc4]]により、一部のメソッド...
***Filter、FilterAttributeクラス [#u3864545]
-ASP.NET Core - 実際の ASP.NET Core MVC フィルター~
https://msdn.microsoft.com/ja-jp/magazine/mt767699.aspx
-Azure ServiceFabric - Asp.Net WebApiをCore化した時のメモ...
https://qiita.com/Yossan/items/e2beb926c0bab31912be
*参考 [#p59f57c7]
[[.NET Standard]]は、[[.NET Core]]のサブセットなので、≒[[...
なので、以下のリンクは、[[.NET Coreへの移行]]の情報を含む。
**内部リンク [#e572057e]
***[[.NET Coreへの移行]] [#xd12992f]
***[[ASP.NET Coreへの移行]] [#ob21c056]
***[[.NET Standardバージョンアップ>.NET Coreバージョンア...
***[[マネージドコードとアンマネージドコードのブリッジ]] [...
**microsoft.com [#icd8ac95]
***Microsoft Docs [#ncb5387c]
-.NET Framework から .NET Core への移植~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/
--プロジェクトを整理し、.NET Framework と .NET Core をサ...
https://docs.microsoft.com/ja-jp/dotnet/core/porting/proj...
--.NET Core への移植 - サードパーティの依存関係を分析する~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/thir...
--.NET Core への移植 - ライブラリ~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/libr...
--.NET Core に移植する - Windows 互換機能パックの使用~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/wind...
***MSDN magazine > Essential .NET [#y1a2850c]
-.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
***.NET API Browser [#j6b71fa5]
https://docs.microsoft.com/en-us/dotnet/api/index
-.NET Standard API Reference~
https://docs.microsoft.com/en-us/dotnet/api/index?view=ne...
----
Tags: [[:.NET開発]], [[:.NET Core]], [[:.NET Standard]], ...
ページ名: