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

-[[戻る>移行・マイグレーション]]
-戻る
--[[.NET開発]]
--[[移行・マイグレーション]]

* 目次 [#r90281ba]
#contents

*概要 [#l6d6a9f4]
-本ページでは、.NET Framework ランタイムや開発環境のバージョンアップに伴う~
.NETプログラムの環境移行、コンバージョン移行の作業範囲を扱います。
-本ページでは、.NET Framework ランタイムや開発環境のバージョンアップ~
に伴う.NETプログラムの環境移行、コンバージョン移行の作業範囲を扱います。
-プラットフォーム移行に伴う環境移行については、 [[Windows, IE移行]]、 [[64bit対応]]を参照下さい。

-また、下記の内、コンバージョン移行に該当する移行見積もりに関しては、プログラムの移行性評価作業 として、~
1・2本のプログラムをサンプリングし、実際に移行 ~ テストした上で、移行作業全体の工数を見積もることをお薦めします。

**.NET Framework のバージョン [#kc9b3965]
***.NET Framework バージョンとコンポーネント [#g5e0aab1]
*バージョン [#dd4d8fae]

**.NET Framework [#kc9b3965]

***新機能 [#yfe9274f]
以下のページで.NET Frameworkの各バージョンの主な新機能や強化された機能の概要が説明されている。

-.NET Framework の新機能~
https://msdn.microsoft.com/ja-jp/library/ms171868.aspx

***同居の可否 [#d50b0214]
-インプレース更新という用語を使用しているようなので、[[これで検索>https://www.google.co.jp/search?q=.NET+%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E6%9B%B4%E6%96%B0&oq=.NET+%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E6%9B%B4%E6%96%B0]]すると良い。
-インプレース更新では、更新後、下位のバージョンは削除される(同居不可)。
-基本的に、
--1.1、2.0、3.0、3.5までは同居が可能で、
--4以降が、インプレース更新で同居不可になっている。

***.NET Framework バージョン間の互換性 [#g5e0aab1]

-msdn
--.NET Framework のバージョンの互換性~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff602939.aspx
--.NET Framework のバージョンおよび依存関係~
http://msdn.microsoft.com/ja-jp/library/bb822049.aspx
--.NET Framework のアプリケーションの互換性~
http://msdn.microsoft.com/ja-jp/library/dn458358.aspx
--方法  インストールされている .NET Framework バージョンを確認する~
http://msdn.microsoft.com/ja-jp/library/hh925568.aspx

-Microsoft Docs
--.NET Framework 4.7、4.6、4.5 移行ガイド~
https://docs.microsoft.com/ja-jp/dotnet/framework/migration-guide/

-Tech TIPS:.NET Frameworkのバージョンを確認する方法 - @IT~
http://www.atmarkit.co.jp/ait/articles/1210/26/news086.html

-.NET Framework の各バージョン同士の関係 – Visual Studio サポート チーム blog~
https://blogs.msdn.microsoft.com/jpvsblog/2015/04/06/net-framework-3/

***.NET Framework のバージョンとサポート [#v06e9b77]

-.NET Framework のサポート概要~
http://msdn.microsoft.com/ja-jp/vstudio/cc807061

-Windows TIPS:.NET Frameworkのバージョンを整理する - @IT~
http://www.atmarkit.co.jp/ait/articles/1211/16/news093.html

**.NET Framework の サポート ライフサイクル ポリシー [#ae958229]
-Microsoft .NET Framework の サポート ライフサイクル ポリシー~
-Tech TIPS:.NET Frameworkの一部バージョンのサポート終了が差し迫る! その対策は? (1/2) - @IT~
http://www.atmarkit.co.jp/ait/articles/1503/04/news141.html

***サポート ポリシー [#ae958229]
-サポート ライフサイクル ポリシー~
基本的に親のオペレーティング システムの~
サポート ライフサイクル ポリシーに従うようになっている。

--Microsoft .NET Framework の サポート ライフサイクル ポリシー~
https://support.microsoft.com/ja-jp/gp/framework_faq/ja-jp

-マイクロソフト サポート ライフサイクル(.NET Framework)~
--マイクロソフト サポート ライフサイクル(.NET Framework)~
https://support.microsoft.com/ja-jp/lifecycle/search?sort=PN&alpha=.NET%20Framework&Filter=FilterNO

** サポートポリシーの変更 [#x721bd87]
-サポート ポリシーの変更~
2016年1月12日以降サポート対象となるバージョンが大幅に減少

-英語Blog
--http://blogs.msdn.com/b/ie/archive/2014/08/07/stay-up-to-date-with-internet-explorer.aspx
--http://blogs.msdn.com/b/dotnet/archive/2014/08/07/moving-to-the-net-framework-4-5-2.aspx
-日本語Blog
--http://blogs.technet.com/b/microsoft_japan_corporate_blog/archive/2014/08/09/quot-internet-explorer-quot.aspx
--英語Blog

-Tech TIPS:各Windows OSでの.NET Frameworkのサポート終了時期を知る - @IT~
---http://blogs.msdn.com/b/ie/archive/2014/08/07/stay-up-to-date-with-internet-explorer.aspx

---http://blogs.msdn.com/b/dotnet/archive/2014/08/07/moving-to-the-net-framework-4-5-2.aspx

--日本語Blog

---http://blogs.technet.com/b/microsoft_japan_corporate_blog/archive/2014/08/09/quot-internet-explorer-quot.aspx

--Tech TIPS:各Windows OSでの.NET Frameworkのサポート終了時期を知る - @IT~
http://www.atmarkit.co.jp/ait/articles/1503/04/news141.html

**.NET Core [#rb416e76]

*.NETの場合 [#w1398912]
***各バージョン [#t2561f7a]
-概要
--.NET Core 2.0以降、.NET Frameworkに近い感じの開発が可能になっている。
--.NET 5 名前から "Core" が外れ、実質、.NETのメインストリームへ。

-バージョン
--.NET Core 1.0
---2016-06-27

--.NET Core 1.1
---2017-03-07

--.NET Core 2.0
---2017-08-14		

--.NET Core 2.1
---2018-05-30		

--.NET Core 2.2
---2018-12-04		

--.NET Core 3.0
---2019-09-23

--.NET Core 3.1
---2019-11予定
---LTSバージョン

--.NET 5
---2020-11予定

***新機能 [#q6b2e5a2]
以下のページで.NET Coreの各バージョンの主な新機能や強化された機能の概要が説明されている。

-.NET Core 3.0 の新機能 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-3-0

***同居の可否 [#cde93152]
-恐らく不可能。
-代替案
--[[コンテナ技術]]を使用する。
--[[SCD >.NET Coreのデプロイ#w88a1ee1]]を使用する。

***.NET Core バージョン間の互換性 [#w0e4474a]
.NET Frameworkの時には無かった、破壊的変更が在り得る。

-参考
--Microsoft Docs - .NET Core
--破壊的変更を評価する~
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/
--破壊的変更のカテゴリ~
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/categories
--.NET Core の破壊的変更~
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/breaking-changes

***.NET Core のバージョンとサポート [#a029788d]
以下で確認できる。

-core/microsoft-support.md at master · dotnet/core~
https://github.com/dotnet/core/blob/master/microsoft-support.md

***サポート ポリシー [#m0a4092d]
-“Current”と“LTS(長期サポート)”がある。

--Currentリリース
---フィードバックに基づいて将来変更され得る新機能が含まれている。
---.NET Coreのリリースに対応してアップグレードする必要がある。

--LTS(長期サポート)リリース~
最初のリリース後、3年間、若しくは、次LTSのリリース後、1年間サポートされる。
---長期サポート用に設計されている。
---安定化された機能とコンポーネントが含まれている。
---更新する予定の無いアプリケーションをホストするのに適している。

--慣例
---.NET 5.0以前~
X.偶数(e.g.:2.0, 2.2, 3.0)がCurrent、X.奇数(e.g.:2.1, 3.1)がLTS。
---.NET 5.0以降~
奇数.0系(e.g.:5.0)がCurrent、偶数.0系(e.g.:6.0)がLTS。

--共通項~
どちらのリリースも、セキュリティ、信頼性、または新しいOSバージョンの~
サポート追加 / 享受のため、最新のパッチを最新の状態に保つ必要がある。

-依存関係~
以下は.NET Core リリースの一部として提供され、~
親(.NET Core)リリースのライフサイクルに従う。
--ASP.NET Core
--Entity Framework Core

-参考
--ライフサイクルに関する FAQ - .NET Core~
https://support.microsoft.com/ja-jp/help/20545/lifecycle-faq-net-core
--core/microsoft-support.md at master · dotnet/core~
https://github.com/dotnet/core/blob/master/microsoft-support.md

**参考 [#j1e17ce5]
-Qiita
--.NETメモ .NET Framework, .NET Coreサポート期間 2019/05~
https://qiita.com/Kosen-amai/items/bc09f6884abd1c367ba9
--Microsoft主要製品ライフサイクル~
https://qiita.com/dev-kuri734/items/8aa1adc094f7009463fa

*.NET Frameworkの場合 [#w1398912]

**概要 [#mcb4bde6]
.NETの場合、 
-.NET Frameworkランタイムのバージョンアップは、環境移行
-開発環境のバージョンアップは、コンバージョン移行

に該当します。

-.NET Frameworkは高い後方互換性を維持しており、~
旧バージョンのVisual Studio(以下、VSと略す)で作成した、.NET Frameworkのアセンブリも、~
新バージョンの.NET Frameworkで動作させることができます(注0)。
新バージョンの.NET Frameworkで動作させることができます([[注0>#v8194348]])。

-しかし、新バージョンの.NET Frameworkは、セキュリティおよび機能改善のために、~
一部、旧バージョンの.NET Frameworkの後方互換を犠牲にしている所があり、~
これを解決するために、複数のバージョンの.NET Frameworkの共存が可能になっています。
--このため、 実行環境中に旧バージョンの.NET Frameworkがインストールされている場合、~
旧.NET Frameworkバージョンのアセンブリは、旧バージョンの.NET Frameworkで動作します。
--実行環境中に旧バージョンの.NET Frameworkがインストールされていない場合は、~
高い後方互換性を維持した、新バージョンの.NET Frameworkで動作します)。

-また、.NET Framework2.0~3.5では、~
-また、.NET Framework 2.0 ~ 3.5では、~
一つのアプリケーション ドメイン~
--共通言語ランタイム(CLR)における、実行コードの管理単位。
--従来のWindowsにおけるプロセスに相当する)

>に、複数バージョンのランタイムをロードできないので(注1)、~
>に、複数バージョンのランタイムをロードできないので([[注1>#c2815a46]])、~
アプリケーションはどれか1つのバージョンのランタイム上で動かす必要があります。~
このため、例えば、.NET Framework1.1をターゲットとしたクラス ライブラリ(DLL)を~
.NET Framework2.0のWindowsアプリケーション(EXE)から呼び出した場合、~
当該DLLは、.NET Framework2.0上で動作します。~
このため、例えば、.NET Framework 1.1をターゲットとしたクラス ライブラリ(DLL)を~
.NET Framework 2.0のWindowsアプリケーション(EXE)から呼び出した場合、~
当該DLLは、.NET Framework 2.0上で動作します。~
このため、この点については環境移行として考えることができます。

***注 [#v031b7cd]

-注0:.NET Framework のバージョンの互換性~
***注0:.NET Framework のバージョンの互換性 [#v8194348]
下位互換とは、プラットフォームの特定のバージョンで開発されたアプリケーションが、~
そのプラットフォームの新しいバージョンでも実行できることを意味します。
--.NET Framework では、下位互換性が最大限に高められています。
--.NET Framework のあるバージョンで記述されたソース コードは、
---.NET Framework の新しいバージョンでコンパイルでき、
---.NET Framework のあるバージョンで実行されるバイナリは、~
-.NET Framework では、下位互換性が最大限に高められています。
-.NET Framework のあるバージョンで記述されたソース コードは、
--.NET Framework の新しいバージョンでコンパイルでき、
--.NET Framework のあるバージョンで実行されるバイナリは、~
新しいバージョンの .NET Framework でも同じように動作します。

--.NET Framework 4.5 は、.NET Framework の Version 1.1、2.0、3.0、3.5、および 4 でビルドされたアプリケーションと下位互換性があります。
-.NET Framework 4.5 は、.NET Framework の Version 1.1、2.0、3.0、3.5、~
および 4 でビルドされたアプリケーションと下位互換性があります。

>つまり、旧バージョンの .NET Framework でビルドしたアプリケーションとコンポーネントは、.NET Framework 4.5 で動作します。~
つまり、旧バージョンの .NET Framework でビルドしたアプリケーションとコンポーネントは、.NET Framework 4.5 で動作します。~
ただし、現実的には、この互換性は、.NET Framework のわずかな変更やプログラミング技法の変化によって損なわれている可能性があります。

-注1: .NET Framework 4からは、一つのアプリケーション ドメインに、
--.NET Framework2.0~3.5のいずれかのCLR(CLR2)と、
--.NET Framework 4のCLR(CLR4) の両方をロードできる様になる([[参考1>http://www.atmarkit.co.jp/fdotnet/dnfuture/vs10net4_01/vs10net4_01_01.html]])
***注1: .NET Framework 4からは、一つのアプリケーション ドメインに、 [#c2815a46]
.NET Framework 4以降では、[[同居>#d50b0214]]ができなくなりましたが、~
それ以前とは[[同居>#d50b0214]]が可能で、一つのアプリケーション ドメインに、 

>・・・ とのことですが、これは、[[COM]]アドインに限定されるようです([[参考2>http://msdn.microsoft.com/ja-jp/library/vstudio/ee518876.aspx]])。
-.NET Framework 2.0 ~ 3.5のいずれかのCLR(CLR2)と、
-.NET Framework 4のCLR(CLR4) の両方をロードできる様になる([[参考1>http://www.atmarkit.co.jp/fdotnet/dnfuture/vs10net4_01/vs10net4_01_01.html]])

>異なるランタイム(アプリケーション・ドメイン)でグローバル変数などの共有ができるとは考えにくいので、~
すべてが[[COM]]インターフェイス経由でブリッジされる場合に限定されるようです。 
・・・ とのことですが、これは、[[COM]]アドインに限定されるようです([[参考2>http://msdn.microsoft.com/ja-jp/library/vstudio/ee518876.aspx]])。

**.NET Framework1.1 → 2.0~3.5 [#t7da3260]
異なるランタイム(アプリケーション・ドメイン)でグローバル変数などの共有ができるとは~
考えにくいので、すべてが[[COM]]インターフェイス経由でブリッジされる場合に限定されるようです。 

**.NET Framework 1.1 → 2.0、3.0、3.5 [#t7da3260]

***ランタイムのバージョンアップ [#h066c845]
既に説明しましたが、.NET Frameworkランタイムのバージョンアップは、環境移行に該当します。

-高い後方互換性のため、基本的にVS2003で作成した、.NET Framework1.1をターゲットとしたアセンブリは、.NET Framework2.0~3.5で動作させることができます。
-このため.NET Framework2.0~3.5のみがインストールされている環境でもVS2003で作成したプログラムは動作します。
-高い後方互換性のため、基本的にVS 2003で作成した、.NET Framework1.1をターゲットとしたアセンブリは、.NET Framework 2.0 ~ 3.5で動作させることができます。
-このため.NET Framework 2.0 ~ 3.5のみがインストールされている環境でもVS 2003で作成したプログラムは動作します。
-しかし、一部後方互換を犠牲にしている所があるため、テストなどは必要になります。 


***開発環境のバージョンアップ [#zd9934fa]
.NET Frameworkのバージョンアップに伴い一部犠牲となった後方互換の問題を完全に解決するには、
-VS2003プロジェクトを VS2005、2008に付属の変換ツール で変換して、
-.NET Framework2.0~3.5をターゲットとしたアセンブリとしてビルドする
-VS 2003プロジェクトを VS 2005、2008に付属の変換ツール で変換して、
-.NET Framework 2.0 ~ 3.5をターゲットとしたアセンブリとしてビルドする

必要があります。

こちらの作業は、手修正無しのコンバージョン移行に該当し、変換後、必要に応じて
- 「後方互換の打ち切り(予告)によるエラー(ワーニング)落とし」(注2)
- 「後方互換の打ち切り(予告)によるエラー(ワーニング)落とし」([[注2>#r8bff115]])
- 「後方互換の打ち切りによるプログラム修正(APIの差替)」

などの修正を施します 。

この変換ツールは、ソリューション / プロジェクト ファイルやconfigファイル、一部のソースコードを変換しますが、 ~
VS2005、2008(.NET Framework2.0~3.5)でサポートされた新機能を使用するようには変換されません。~
VS 2005、2008(.NET Framework 2.0 ~ 3.5)でサポートされた新機能を使用するようには変換されません。~
このため、例えば、以下の新機能を使用する場合、コードを手修正する必要があります。


-レイアウト記述ファイルの分離~
Windows(Web) フォーム デザイナで生成されたコードは、VS2002、2003は、Windows(Web) フォームの分離コード ファイルと同一のファイル内の、~
Windows(Web) フォーム デザイナで生成されたコードは、VS 2002、2003は、Windows(Web) フォームの分離コード ファイルと同一のファイル内の、~
Regionプリプロセッサ ディレクティブ:「Windows(Web) フォーム デザイナで生成されたコード」内に記述されるが、~
VS2005以降では、Windows(Web) フォーム デザイナで生成されたコードは、さらに、レイアウト記述ファイル(.Designer.vb(.cs))に分離される。 
VS 2005以降では、Windows(Web) フォーム デザイナで生成されたコードは、さらに、レイアウト記述ファイル(.Designer.vb(.cs))に分離される。 

-.etc~
.NET Framework Version [[2.0>http://msdn.microsoft.com/ja-jp/library/t357fb32.aspx]]、[[3.0>http://msdn.microsoft.com/ja-jp/library/bb822048.aspx]]、[[3.5>http://msdn.microsoft.com/ja-jp/library/bb332048.aspx]]の新機能を参照。 


-注2: 後方互換の打ち切り予告の対象クラスには、MSDNクラスライブラリ リファレンス中に~
「メモ : このクラスは、互換性のために残されています。」という記述が見られる。 

***製品サポート状況の確認 [#kf77cf6e]
3rdパーティ製品が、.NET Frameworkの最新バージョンをサポートしていない場合があるので注意が必要です。

また、.NET Framework ランタイムや開発環境のバージョンアップに伴い、 使用する3rdパーティ製ライブラリの当該環境上でのサポートが無くなる場合、~
代替ライブラリのI/F変更発生に起因する修正範囲拡大の可能性があります ので、その場合の移行作業は手修正有りのコンバージョン移行に近づきます。 

**.NET Framework2.0 → 3.0、3.5 [#c384cd45]
-.NET Framework3.0、3.5は2.0上で動作する追加クラス群であるため、~
.NET Framework2.0は、3.0、3.5のランタイム上で動作します。~
***注2: 後方互換の打ち切り予告の対象 [#r8bff115]
MSDNクラスライブラリ リファレンス中に~
「メモ : このクラスは、互換性のために残されています。」という記述が見られる。 

-その他、基本的な考え方は、上記の「.NET Framework1.1 → 2.0~3.5」と同じです。 
**.NET Framework 2.0 → 3.0、3.5 [#c384cd45]
-.NET Framework 3.0、3.5は2.0上で動作する追加クラス群であるため、~
.NET Framework 2.0は、3.0、3.5のランタイム上で動作します。~

**.NET Framework1.1、2.0、3.0、3.5 → 4、4.5(4.5.1, 4.5.2) [#c0d9121d]
-.NET Frameworkランタイムのバージョンアップになるので、環境移行に該当します。
-従って、基本的な考え方は、上記の「.NET Framework1.1 → 2.0~3.5」と同じです。 
-その他、基本的な考え方は、上記の「.NET Framework 1.1 → 2.0 ~ 3.5」と同じです。 

**.NET Framework4 → 4.5( → 4.5.1, → 4.5.2) [#d63c2be5]
**.NET Framework 2.0、3.0、3.5 → 4 [#c0d9121d]
-.NET Frameworkランタイムのバージョンアップになるので、環境移行に該当します。
-従って、基本的な考え方は、上記の「.NET Framework 1.1 → 2.0 ~ 3.5」と同じです。 

--.NET Framework4 と.NET Framework4.5(4.5.1, 4.5.2) は共存できないようですが、~
高い後方互換を持つため殆ど修正無しで実行可能とのことです。
**.NET Framework 4 以降 [#i246e084]

-従って、基本的な考え方は、上記の「.NET Framework1.1 → 2.0~3.5」と同じです。
***.NET Framework 4 → 4.5 [#d63c2be5]
-置き換えのインプレース更新。

--.NET Framework 4以降はインプレース更新~
従って、共存できないようですが、高い後方互換を持つため殆ど修正無しで実行可能とのことです(逆は不可)。

-従って、基本的な考え方は、上記の「.NET Framework 1.1 → 2.0 ~ 3.5」と同じです。

***.NET Framework 4.5 → 4.5.1 →  4.5.2 [#u5b89eb9]
-置き換えのインプレース更新。

-Visual Studio 2012以降を使用している状態で、
>
+Visual Studio上でプロジェクトのTargetframeworkを変更します。~
(.NET Framework 4.5.xのDeveloper Packをインストールして下さい)
--How to select .Net 4.5.2 as a target framework in Visual Studio - Stack Overflow~
http://stackoverflow.com/questions/23617900/how-to-select-net-4-5-2-as-a-target-framework-in-visual-studio
--.NET SDKs and Targeting Packs~
http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx
+Targetframework変更後、ワーニングやビルドエラーが出る場合は修正します。
+バージョン アップ変更後の動作確認をします。

>と言う手順になります。

(2)、(3)は後方互換性が高いので殆ど修正作業が発生しないと思います。~
ただ、テストがどれだけ必要か?見積もるか?はポイントになると思います。

***.NET Framework 4.5 → 4.6 [#ha3845fa]
-置き換えのインプレース更新。
-[[同上>#d63c2be5]]

***.NET Framework 4.6 → 4.6.1 → 4.6.2 [#y2f25a3c]
-net46 → net461 → net462
-[[同上>#u5b89eb9]]

***.NET Framework 4.6 → 4.7 [#n9525942]
-[[同上>#ha3845fa]]

***.NET Framework 4.7 → 4.7.2 → 4.7.2[#n9525942]
-net47 → net471 → net472
-[[同上>#y2f25a3c]]

***.NET Framework 4.7 → 4.8 [#zda7edc2]
-[[同上>#n9525942]]

-参考

--4.8は.NET Framework最後のバージョン

--OpenTouryoProject/MultiPurposeAuthSite~
>Failed to load file or assembly System.Runtime · Issue #120~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/issues/120

***.NET Framework 4.8 → 4.8.x → 4.8.y [#n9525942]

**.NET 5 以降 [#o9d20f5d]
.NET 5 ≒ [[.NET Core系への移行>#w8de1c6d]]

*ASP.NETの場合 [#yed2a894]
ASP.NETの場合は、ASP.NET1.1からASP.NET2.0への移行になります。~
上記の「.NET Framework1.1 → 2.0~3.5」より少々複雑になります。 

**ランタイムのバージョンアップ [#rd6497e8]
プロジェクト ファイルやconfigファイルの変更などが必要になるため、~
新しい開発環境に付属の変換ツールを使用して変換します(環境移行ではない)。 

**開発環境のバージョンアップ [#i223c207]
上記の「.NET Framework1.1 → 2.0~3.5」と同様に、~
VS2003プロジェクトをVS2005、2008に付属の変換ツールで変換して、~
ASP.NET2.0をターゲットとしたWebアプリケーションとして再構成する必要があります。~
***ASP.NET 2.0 [#hfed14b8]
ASP.NETの場合は、ASP.NET 1.1からASP.NET 2.0への移行になります。~
上記の「.NET Framework 1.1 → 2.0 ~ 3.5」より少々複雑になります。 

上記の「.NET Framework 1.1 → 2.0 ~ 3.5」と同様に、~
VS 2003プロジェクトをVS 2005、2008に付属の変換ツールで変換して、~
ASP.NET 2.0をターゲットとしたWebアプリケーションとして再構成する必要があります。~
こちらの作業は、手修正無しのコンバージョン移行に該当します。

また、特に大きな変更として、ASP.NET2.0では、デフォルトのHTMLレンダリングが、~
HTML4.01(ASP.NET1.1) → XHTML(ASP.NET2.0)と変更されます。~
また、特に大きな変更として、ASP.NET 2.0では、デフォルトのHTMLレンダリングが、~
HTML 4.01(ASP.NET 1.1) → XHTML(ASP.NET 2.0)と変更されます。~
上記の変換ツールを使用した場合、configファイルのxhtmlConformanceタグの~
mode属性にLegacyが設定され、HTML4.01でレンダリングされます。

-方法 : ASP.NET Web サイトで XHTML レンダリングを構成する~
http://msdn.microsoft.com/ja-jp/library/ms178159.aspx

レンダリングをHTML4.01からXHTMLに変更する場合は、
-aspxファイル中に記述されたHTMLや、
-<% Response.Write( string ) %>、 <% = string %> などの

直接出力に問題があれば修正が必要になります~
(Web コントロールを使用していれば、自動的に指定のDTDに対応したHTMLが出力されます)。~
この部分の修正量が多くなるようであれば、移行作業は手修正有りのコンバージョン移行に近づきます。

また同様に、この変換ツールは、ソリューション / プロジェクト ファイルやconfigファイル、一部のソースコードを変換しますが、~
VS2005、2008(ASP.NET2.0)でサポートされた新機能を使用するようには変換されません。~
また同様に、この変換ツールは、~
ソリューション / プロジェクト ファイルやconfigファイル、一部のソースコードを変換しますが、~
VS 2005、2008(ASP.NET 2.0)でサポートされた新機能を使用するようには変換されません。~

このため、例えば、以下の新機能を使用する場合、コードを手修正する必要があります。

-ASP.NET 2.0 マスタ ページ~
http://msdn.microsoft.com/ja-jp/library/ms379585.aspx
--Web サイト全体で一貫した外観を維持するための新しい手法を提供する。~
--マスタ ページを更新するだけで、複数ページに及ぶサイトの外観を簡単に変更できる。 

-.etc
--ASP.NET 2.0 の新機能~
http://msdn.microsoft.com/ja-jp/library/cc719201.aspx
--.NET Framework Version [[2.0>http://msdn.microsoft.com/ja-jp/library/t357fb32.aspx]]、[[3.0>http://msdn.microsoft.com/ja-jp/library/bb822048.aspx]]、[[3.5>http://msdn.microsoft.com/ja-jp/library/bb332048.aspx]]の新機能の内、ASP.NETに関する機能 

を参照。

***ASP.NET 4 [#l341c9f6]
-VS 付属の変換ツール で変換する。
-.NET Framework 4 を使用するアプリケーション プールでホストする。

-参考
--ASP.NET 4 および Visual Web Developer の新機能~
https://msdn.microsoft.com/ja-jp/library/s57a598e.aspx
--ASP.NET 4 への変換~
https://msdn.microsoft.com/ja-jp/library/dd673483.aspx
--方法: ASP.NET Web アプリケーションを ASP.NET 4 にアップグレードする~
https://msdn.microsoft.com/ja-jp/library/dd483478.aspx

**製品サポート状況の確認 [#wc335b2b]
上記の「.NET Framework1.1 → 2.0~3.5」と同様に、製品サポート状況の確認が必要です。~
***3rdパーティ [#b573d61e]
上記の「.NET Framework 1.1 → 2.0 ~ 3.5」と同様に、製品サポート状況の確認が必要です。~
また同様に、.NET Framework ランタイムや開発環境のバージョンアップに伴い、~
使用する3rdパーティ製ライブラリの当該環境上でのサポートが無くなる場合、~
代替ライブラリのI/O、I/F変更発生に起因する修正範囲拡大の可能性がありますので、~
その場合の移行作業は手修正有りのコンバージョン移行に近づきます。

確認のポイントとしては、
-インターフェイス変更、動作変更が無いか?
-上記のweb.configファイルのxhtmlConformanceタグのmode属性に~
Legacyを設定した場合の、HTML4.01でのレンダリングに対応しているか? 
-上記の[[Web.config>#nf687ad7]]ファイルのxhtmlConformanceタグのmode属性に~
Legacyを設定した場合の、HTML 4.01でのレンダリングに対応しているか? 

などが考えられます。

***OSS(ASP.NET AJAX : ASP.NET AJAX Control Toolkitなど) [#qfe0f1e8]
OSSのメンテ状況や、以下の様な移行情報の有無を確認しておく。

-Upgrading from v7.x and below~
https://github.com/DevExpress/AjaxControlToolkit/wiki/Upgrading-from-v7.x-and-below

**[[ASP.NET Web Forms]] → [[ASP.NET MVC]]への移行 [#g8bc3300]
アーキテクチャが別物なので再構築が必要。

**[[ASP.NET MVC 5 → ASP.NET Core MVCへの移行>ASP.NET Coreへの移行]] [#t6f961e5]
[[ASP.NET MVC]] 5 → [[ASP.NET Core]] MVCも、~
同じMVCアーキテクチャだが ≒ 別物 ≒ 再構築。

*[[.NET Core系>.NETのクロスプラットフォーム対応]] [#w8de1c6d]

**[[.NET Standardへの移行]] [#s392523d]

**[[.NET Coreへの移行]] [#fe9b4755]

**[[ASP.NET Coreへの移行]] [#w7a43517]

**[[Windows Desktop Packsへの移行]] [#vaadeeee]

**[[.NET Coreバージョンアップ]] [#m7670d3b]

*関連リンク [#fcec8652]

**.NET Framework 移行センター [#vecd5b98]
http://www.microsoft.com/japan/net/migration/

-アプリケーションの移行の必要性を考える
--.NET Framework のサポート概要~
***アプリケーションの移行の必要性を考える [#qd56eb2d]
-.NET Framework のサポート概要~
http://msdn.microsoft.com/ja-jp/vstudio/cc807061.aspx

-アプリケーションの移行にあたって
--移行を始める前に~
***アプリケーションの移行にあたって [#acfa1016]
-移行を始める前に~
http://www.microsoft.com/ja-jp/net/migration/introduction.aspx
--移行を実行する~
-移行を実行する~
http://www.microsoft.com/ja-jp/net/migration/execution.aspx

-移行に必要な技術情報
--.NET Framework 1.0 および 1.1 から .NET Framework 2.0 ~ 3.5 への移行~
***移行に必要な技術情報 [#w8ab0781]
-.NET Framework 1.0 および 1.1 から .NET Framework 2.0 ~ 3.5 への移行~
http://www.microsoft.com/ja-jp/net/migration/document35.aspx
--.NET Framework 2.0 ~ 3.5 から .NET Framework 4 への移行~
-.NET Framework 2.0 ~ 3.5 から .NET Framework 4 への移行~
http://www.microsoft.com/ja-jp/net/migration/document4.aspx

**MSDN [#scd84015]
***テクニカルドキュメント > .NET 開発 [#s07a11c9]
**MSDN > テクニカルドキュメント > .NET 開発 [#s07a11c9]

-.NET 開発(全般) > 技術資料 > 互換性を検証するテスト シナリオ~
http://msdn.microsoft.com/ja-jp/library/ms994387.aspx

-.NET Framework
--.NET Framework (全般)~
***.NET Framework [#v8f75a82]

-.NET Framework (全般)~
http://msdn.microsoft.com/ja-jp/library/dd421679.aspx

---.NET Framework の互換性と移行に関する情報~
http://msdn.microsoft.com/ja-jp/library/cc825635.aspx~
● .NET Framework 1.0 から 1.1 への変更情報~
● .NET Framework 2.0 へのマイグレーション情報~
● Visual Studio に関する互換性情報~
● Windows Vista に関する互換性情報~
● 開発ツール サポート情報
--.NET Framework の互換性と移行に関する情報~
http://msdn.microsoft.com/ja-jp/library/cc825635.aspx
---.NET Framework 1.0 から 1.1 への変更情報
---.NET Framework 2.0 へのマイグレーション情報
---Visual Studio に関する互換性情報
---Windows Vista に関する互換性情報
---開発ツール サポート情報

---API を廃止する~
http://msdn.microsoft.com/ja-jp/library/cc825683.aspx
-.NET Framework 1.1~
http://msdn.microsoft.com/ja-jp/library/dd421677.aspx
--互換性の問題とバージョン間の変更点~
http://msdn.microsoft.com/ja-jp/library/cc825634.aspx
---バージョン 1.0 から 1.1 にかけて行われた下位非互換の変更点~
http://www.microsoft.com/japan/msdn/netframework/changeinfo/Backwards1.0to1.1/default.aspx
---バージョン 1.0 から 1.1 にかけて行われた上位非互換の変更点~
http://www.microsoft.com/japan/msdn/netframework/changeinfo/Forwards1.0to1.1/default.aspx
---バージョン 1.0 から バージョン 1.1 にかけて行われた API の変更点~
http://www.microsoft.com/japan/msdn/netframework/changeinfo/APIChangesV1.0toV1.1.aspx

--.NET Framework 1.1~
http://msdn.microsoft.com/ja-jp/library/dd421677.aspx
---互換性の問題とバージョン間の変更点~
http://msdn.microsoft.com/ja-jp/library/cc825634.aspx~
● バージョン 1.0 から 1.1 にかけて行われた下位非互換の変更点~
http://www.microsoft.com/japan/msdn/netframework/changeinfo/Backwards1.0to1.1/default.aspx~
● バージョン 1.0 から 1.1 にかけて行われた上位非互換の変更点~
http://www.microsoft.com/japan/msdn/netframework/changeinfo/Forwards1.0to1.1/default.aspx~
● バージョン 1.0 から バージョン 1.1 にかけて行われた API の変更点~
http://www.microsoft.com/japan/msdn/netframework/changeinfo/APIChangesV1.0toV1.1.aspx~
--.NET Framework 2.0~
-.NET Framework 2.0~
http://msdn.microsoft.com/ja-jp/library/dd421672.aspx
---デザインタイム変更点~
--デザインタイム変更点~
http://msdn.microsoft.com/ja-jp/library/dd421675.aspx
---ランタイム変更点~
--ランタイム変更点~
http://msdn.microsoft.com/ja-jp/library/dd421676.aspx
---.NET Framework 2.0 での重大な変更点~
--.NET Framework 2.0 での重大な変更点~
http://msdn.microsoft.com/ja-jp/library/cc825631.aspx
---.NET Framework 2.0 で廃止予定の型とメンバの一覧 (名前空間単位)~
--.NET Framework 2.0 で廃止予定の型とメンバの一覧 (名前空間単位)~
http://msdn.microsoft.com/ja-jp/library/cc825682.aspx
---.NET Framework 2.0 で廃止予定の型とメンバの一覧 (アセンブリ単位)~
--.NET Framework 2.0 で廃止予定の型とメンバの一覧 (アセンブリ単位)~
http://msdn.microsoft.com/ja-jp/library/cc825681.aspx
---企業における Microsoft .NET Framework 2.0 のインストールについて~
--企業における Microsoft .NET Framework 2.0 のインストールについて~
http://msdn.microsoft.com/ja-jp/library/dd297816.aspx

--.NET Framework 3.0~
-.NET Framework 3.0~
http://msdn.microsoft.com/ja-jp/library/dd345816.aspx
--.NET Framework 3.5~
-.NET Framework 3.5~
http://msdn.microsoft.com/ja-jp/library/dd421671.aspx

--.NET Framework 4~
-.NET Framework 4~
http://msdn.microsoft.com/ja-jp/library/w0x726c2.aspx
---インプロセス サイドバイサイド~
● インプロセスの side-by-side 実行~
● CLR 徹底解剖 インプロセス サイドバイサイド
--インプロセス サイドバイサイド
---インプロセスの side-by-side 実行
---CLR 徹底解剖 インプロセス サイドバイサイド

---.NET Framework 4 移行ガイド~
● .NET Framework 4 への移行に関する問題~
http://msdn.microsoft.com/ja-jp/library/vstudio/ee518876.aspx~
● 方法: .NET Framework 4 ランタイムを構成する~
--.NET Framework 4 移行ガイド
---.NET Framework 4 への移行に関する問題~
http://msdn.microsoft.com/ja-jp/library/vstudio/ee518876.aspx
---方法: .NET Framework 4 ランタイムを構成する~
http://msdn.microsoft.com/ja-jp/magazine/ee819091.aspx

--.NET Framework 4.5~
-.NET Framework 4.5~
http://msdn.microsoft.com/ja-jp/library/vstudio/w0x726c2.aspx
---.NET Framework 4.5 移行ガイド~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff657133.aspx~
● .NET Framework 4.5 の新機能~
http://msdn.microsoft.com/ja-jp/library/vstudio/ms171868.aspx~
● .NET Framework 4.5 のアプリケーションの互換性~
http://msdn.microsoft.com/ja-jp/library/vstudio/hh367887.aspx~
● .NET Framework 1.1 からの移行~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff962563.aspx~
● .NET Framework のバージョンの互換性~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff602939.aspx~
● .NET Framework のバージョンおよび依存関係~
http://msdn.microsoft.com/ja-jp/library/vstudio/bb822049.aspx~
● .NET Framework の互換性のために残されている機能~
http://msdn.microsoft.com/ja-jp/library/ee461502.aspx~
--.NET Framework 4.5 移行ガイド~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff657133.aspx
---.NET Framework 4.5 の新機能~
http://msdn.microsoft.com/ja-jp/library/vstudio/ms171868.aspx
---.NET Framework 4.5 のアプリケーションの互換性~
http://msdn.microsoft.com/ja-jp/library/vstudio/hh367887.aspx
---.NET Framework 1.1 からの移行~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff962563.aspx
---.NET Framework のバージョンの互換性~
http://msdn.microsoft.com/ja-jp/library/vstudio/ff602939.aspx
---.NET Framework のバージョンおよび依存関係~
http://msdn.microsoft.com/ja-jp/library/vstudio/bb822049.aspx
---.NET Framework の互換性のために残されている機能~
http://msdn.microsoft.com/ja-jp/library/ee461502.aspx

--Web アプリケーション (ASP.NET) > ASP.NET 2.0~
***ASP.NET [#k9aeebb1]

-Web アプリケーション (ASP.NET) > ASP.NET 2.0~
http://msdn.microsoft.com/ja-jp/library/cc948951.aspx
---概要:Microsoft ASP.NET 2.0 に向けての Web アプリケーションの再構築~
--概要:Microsoft ASP.NET 2.0 に向けての Web アプリケーションの再構築~
http://msdn.microsoft.com/ja-jp/library/dd314315.aspx
---移行:~
● ASP.NET 1.x から ASP.NET 2.0 への移行~
http://msdn.microsoft.com/ja-jp/library/dd229411.aspx~
● .NET Pet Shop 4: ASP.NET 1.1 アプリケーションを 2.0 に移行する~
http://msdn.microsoft.com/ja-jp/library/aa479070.aspx~
● VS.NET 2002/2003 から VS2005 へのWebプロジェクト変換ステップバイステップ ガイド~
http://msdn.microsoft.com/ja-jp/library/aa479567.aspx~
● Web プロジェクトの一般的な変換問題およびソリューション~
http://msdn.microsoft.com/ja-jp/library/aa479312.aspx~
--移行:~
---ASP.NET 1.x から ASP.NET 2.0 への移行~
http://msdn.microsoft.com/ja-jp/library/dd229411.aspx
---.NET Pet Shop 4: ASP.NET 1.1 アプリケーションを 2.0 に移行する~
http://msdn.microsoft.com/ja-jp/library/aa479070.aspx
---VS.NET 2002/2003 から VS2005 へのWebプロジェクト変換ステップバイステップ ガイド~
http://msdn.microsoft.com/ja-jp/library/aa479567.aspx
---Web プロジェクトの一般的な変換問題およびソリューション~
http://msdn.microsoft.com/ja-jp/library/aa479312.aspx

-開発ツールと言語ドキュメント > Visual Studio 2005 Visual Studio > ドキュメント
--Visual Web Developer ドキュメント >Web ページ > Web ページ デザイナ > 詳細説明
---ASP.NET と XHTML~
http://msdn.microsoft.com/ja-jp/library/exc57y7e%28VS.80%29.aspx~
● Visual Web Developer での XHTML~
http://msdn.microsoft.com/ja-jp/library/dac1ff35%28VS.80%29.aspx~
● 方法 : ASP.NET Web サイトで XHTML レンダリングを構成する~
http://msdn.microsoft.com/ja-jp/library/ms178159%28VS.80%29.aspx~
**.NET Framework - Wikipedia [#l440cc7a]

**その他 [#n539cb61]
-日本ユニシス > .NETソリューション > .NET Frameworkマイグレーション~
http://www.unisys.co.jp/dotnet/dotnetmigration.html 
--.NET Framework 1.1/3.5 移行ホワイトペーパー
--.NET to .NET マイグレーション ~ 移行計画立案と実践 ~
***[[.NET Framework 1.0>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_1.0]] [#o2999573]
***[[.NET Framework 1.1>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_1.1]] [#p2e535a8]
***[[.NET Framework 2.0>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_2.0]] [#y590173a]
***[[.NET Framework 3.0>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_3.0]] [#gb63b6c9]
***[[.NET Framework 3.5>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_3.5]] [#ebdad0a2]
***[[.NET Framework 4>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_4]] [#jb64e95c]
***[[.NET Framework 4.5>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_4.5]] [#j6bf91ee]
***[[.NET Framework 4.6>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_4.6]] [#pf87b066]
***[[.NET Framework 4.7>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_4.7]] [#f0540d89]
***[[.NET Framework 4.8>https://ja.wikipedia.org/wiki/.NET_Framework#.NET_Framework_4.8]] [#yb6e160d]

-ITpro : Windows Vistaにおける.NETアプリケーションの互換性問題~
http://itpro.nikkeibp.co.jp/article/COLUMN/20061017/250853/
-Windows TIPS:.NET Frameworkのバージョンを整理する - @IT~
http://www.atmarkit.co.jp/ait/articles/1211/16/news093.html
**.NET Compatibility Diagnostic Tools [#je19c3c4]
-互換性は高いものの、.NET Framework 4以降はインプレース更新。
-この際の、動作の変化を識別するために公開されたツール。

-参考
--.NET Framework の互換性の診断 – Visual Studio 日本チーム Blog~
https://blogs.msdn.microsoft.com/visualstudio_jpn/2016/03/02/net-framework/
--NuGet Gallery | Microsoft.DotNet.FrameworkCompatibilityDiagnostics 0.5.0~
https://www.nuget.org/packages/Microsoft.DotNet.FrameworkCompatibilityDiagnostics/

**.NET Framework Application Compatibility [#x797569b]
-dotnet/README.md at master · microsoft/dotnet~
https://github.com/microsoft/dotnet/blob/master/Documentation/compatibility/README.md

----
Tags: [[:移行]], [[:.NET開発]]


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