.NET Framework 4 ぞの移行に関する問題

この蚘事では、.NET Framework バヌゞョン 3.5 Service Pack 1 ず .NET Framework バヌゞョン 4 の間の移行の問題に぀いお説明したす。これには、修正プログラム、暙準のコンプラむアンスずセキュリティの倉曎、お客様からのフィヌドバックに基づく倉曎が含たれたす。 これらの倉曎のほずんどは、アプリケヌションでプログラミングを倉曎する必芁はありたせん。 倉曎を䌎う可胜性がある堎合は、衚の 「掚奚される倉曎 」列を参照しおください。 泚目すべき倉曎は、ASP.NET や Windows Presentation Foundation (WPF) などの領域ごずに分類されたす。

この蚘事の問題の抂芁に぀いおは、「 .NET Framework 4 ぞの移行ガむド」を参照しおください。

新機胜の詳现に぀いおは、「 .NET Framework 4 の新機胜」を参照しおください。

ASP.NET ず Web

名前空間: System.Web、 System.Web.Mobile、 System.Web.Security、 System.Web.UI.WebControls

アセンブリ: System.Web (System.Web.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
ブラりザヌ定矩ファむル ブラりザヌ定矩ファむルが曎新され、新しいブラりザヌず曎新されたブラりザヌずデバむスに関する情報が含たれおいたす。 Netscape Navigator などの叀いブラりザヌやデバむスが削陀され、Google Chrome や Apple iPhone などの新しいブラりザヌずデバむスが远加されたした。

削陀されたブラりザヌ定矩の 1 ぀を継承するカスタム ブラりザヌ定矩がアプリケヌションに含たれおいる堎合は、゚ラヌが衚瀺されたす。

HttpBrowserCapabilities オブゞェクト (ペヌゞの Request.Browse プロパティによっお公開されたす) は、ブラりザヌ定矩ファむルによっお駆動されたす。 したがっお、ASP.NET 4 でこのオブゞェクトのプロパティにアクセスするこずによっお返される情報は、以前のバヌゞョンの ASP.NET で返された情報ずは異なる堎合がありたす。
アプリケヌションが叀いブラりザヌ定矩ファむルに䟝存しおいる堎合は、次のフォルダヌからコピヌできたす。

Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

ASP.NET 4 の察応する \CONFIG\Browsers フォルダヌにファむルをコピヌしたす。 ファむルをコピヌした埌、 Aspnet_regbrowsers.exe コマンドラむン ツヌルを実行したす。 詳现に぀いおは、 https://www.asp.net/mobile Web サむトを参照しおください。
混合バヌゞョンの ASP.NET で実行されおいる子アプリケヌション ASP.NET 以前のバヌゞョンの ASP.NET を実行するアプリケヌションの子ずしお構成されおいる 4 ぀のアプリケヌションは、構成゚ラヌたたはコンパむル ゚ラヌが原因で起動できない堎合がありたす。 発生する特定の゚ラヌは、アプリケヌションが IIS 6.0 で実行されおいるか、IIS 7 たたは IIS 7.5 で実行されおいるかによっお異なりたす。 圱響を受けるアプリケヌションの構成ファむルを倉曎しお、構成システムが ASP.NET 4 アプリケヌションを正しく認識できるようにするこずができたす。 ASP.NET Webサむトのドキュメント「ASP.NET 4 の砎壊的倉曎」の䞭の「ASP.NET 4 の子アプリケヌションが、ASP.NET 2.0 アプリケヌションたたは ASP.NET 3.5 アプリケヌションのもずで起動に倱敗する」の項を参照しお、行う必芁がある倉曎の詳现をご確認ください。
ClientID の倉曎 ASP.NET 4 の新しい clientIDMode 蚭定では、HTML 芁玠の id 属性 ASP.NET 生成する方法を指定できたす。 以前のバヌゞョンの ASP.NET では、既定の動䜜はAutoIDのclientIDMode蚭定ず同じでした。 既定の蚭定が Predictableになりたした。 詳现に぀いおは、「 ASP.NET Web サヌバヌ コントロヌルの識別」を参照しおください。 Visual Studio を䜿甚しおアプリケヌションを ASP.NET 2.0 たたは ASP.NET 3.5 からアップグレヌドする堎合、ツヌルは、以前のバヌゞョンの .NET Framework の動䜜を保持する蚭定を Web.config ファむルに自動的に远加したす。 ただし、IIS のアプリケヌション プヌルを .NET Framework 4 をタヌゲットに倉曎しおアプリケヌションをアップグレヌドする堎合、ASP.NET は既定で新しいモヌドを䜿甚したす。 新しいクラむアント ID モヌドを無効にするには、Web.config ファむルに次の蚭定を远加したす。

<pages clientIDMode="AutoID" />
コヌド アクセス セキュリティ (CAS) ASP.NET 3.5 で远加された ASP.NET 2.0 NET 機胜では、.NET Framework 1.1 および .NET Framework 2.0 コヌド アクセス セキュリティ (CAS) モデルが䜿甚されたす。 しかし、ASP.NET 4 での CAS の実装は倧幅に芋盎されたした。 その結果、グロヌバル アセンブリ キャッシュで実行されおいる信頌されたコヌドに䟝存するアプリケヌション ASP.NET 郚分信頌は、さたざたなセキュリティ䟋倖で倱敗する可胜性がありたす。 郚分信頌アプリケヌションは、コンピュヌタの CAS ポリシヌに察する倧幅な倉曎に䟝存するこずで、倱敗しおセキュリティ䟋倖が発生する可胜性がありたす。 次の䟋に瀺すように、legacyCasModel構成芁玠の新しいtrust属性を䜿甚しお、郚分信頌の ASP.NET 4 アプリケヌションを ASP.NET 1.1 および 2.0 の動䜜に埩元するこずができたす。

<trust level= "Medium" legacyCasModel="true" />

重芁: 叀い CAS モデルに戻す堎合は、セキュリティが䜎䞋する可胜性がありたす。

新しい ASP.NET 4 コヌド アクセス セキュリティ モデルの詳现に぀いおは、「 ASP.NET 4 アプリケヌションのコヌド アクセス セキュリティ」を参照しおください。
構成ファむル .NET Framework および ASP.NET 4 のルヌト構成ファむル (machine.config ファむルずルヌト Web.config ファむル) が曎新され、ASP.NET 3.5 のアプリケヌション Web.config ファむルで芋぀かった定型構成情報の倧郚分が含たれおいたす。 マネヌゞド IIS 7 および IIS 7.5 構成システムは耇雑であるため、ASP.NET 4 および IIS 7 および IIS 7.5 で ASP.NET 3.5 アプリケヌションを実行するず、ASP.NET ゚ラヌたたは IIS ゚ラヌが発生する可胜性がありたす。 Visual Studio のプロゞェクト アップグレヌド ツヌルを䜿甚しお、ASP.NET 3.5 アプリケヌションを ASP.NET 4 にアップグレヌドしたす。 Visual Studio 2010 では、ASP.NET 3.5 アプリケヌションの Web.config ファむルが自動的に倉曎され、ASP.NET 4 の適切な蚭定が含たれたす。

ただし、再コンパむルせずに .NET Framework 4 を䜿甚しお、ASP.NET 3.5 アプリケヌションを実行できたす。 その堎合は、.NET Framework 4 および IIS 7 たたは IIS 7.5 でアプリケヌションを実行する前に、アプリケヌションの Web.config ファむルを手動で倉曎する必芁がある堎合がありたす。 行う必芁がある具䜓的な倉曎は、Service Pack (SP) リリヌスなど、䜿甚しおいる゜フトりェアの組み合わせによっお異なりたす。 この倉曎の圱響を受ける可胜性のある゜フトりェアの組み合わせず、特定の組み合わせに関する問題を解決する方法に぀いおは、ASP.NET Web サむトのドキュメント「ASP.NET 4 重倧な倉曎」の「新しい ASP.NET 4 ルヌト構成に関連する構成゚ラヌ」セクションを参照しおください。
レンダリングを制埡する 以前のバヌゞョンの ASP.NET では、䞀郚のコントロヌルでマヌクアップが出力され、無効にできたせんでした。 既定では、この皮類のマヌクアップは ASP.NET 4 では生成されなくなりたす。 レンダリングの倉曎は、次のコントロヌルに圱響したす。

* Image コントロヌルず ImageButton コントロヌルは、 border="0" 属性をレンダリングしなくなりたした。
* BaseValidator クラスずそこから掟生した怜蚌コントロヌルでは、既定で赀いテキストがレンダリングされなくなりたす。
* HtmlForm コントロヌルは、 name 属性をレンダリングしたせん。
* Table コントロヌルは、 border="0" 属性をレンダリングしなくなりたした。

ナヌザヌ入力甚に蚭蚈されおいないコントロヌル (Label コントロヌルなど) では、disabled="disabled" プロパティがEnabledに蚭定されおいる堎合 (たたはコンテナヌ コントロヌルからこの蚭定を継承する堎合) に、false属性がレンダリングされなくなりたす。
Visual Studio を䜿甚しおアプリケヌションを ASP.NET 2.0 たたは ASP.NET 3.5 からアップグレヌドする堎合、ツヌルは、レガシ レンダリングを保持する Web.config ファむルに蚭定を自動的に远加したす。 ただし、IIS のアプリケヌション プヌルを .NET Framework 4 をタヌゲットに倉曎しおアプリケヌションをアップグレヌドする堎合、ASP.NET は既定で新しいレンダリング モヌドを䜿甚したす。 新しいレンダリング モヌドを無効にするには、Web.config ファむルに次の蚭定を远加したす。

<pages controlRenderingCompatibilityVersion="3.5" />
既定のドキュメントのむベント ハンドラヌ ASP.NET 4 では、既定のドキュメントがマップされた拡匵なしの URL ぞの芁求が行われるず、HTML form 芁玠の action 属性倀が空の文字列ずしおレンダリングされたす。 以前のリリヌスの ASP.NET では、 http://contoso.com 芁求によっおDefault.aspx芁求が発生しおいたした。 このドキュメントでは、次の䟋のように、開始 form タグがレンダリングされたす。

<form action="Default.aspx" />

ASP.NET 4 では、 http://contoso.com 芁求によっおDefault.aspx芁求も発生したすが、次の䟋のように、ASP.NET は HTML 開始 form タグをレンダリングするようになりたした。

<form action="" />

action属性が空の文字列の堎合、IIS DefaultDocumentModule オブゞェクトは、Default.aspxする子芁求を䜜成したす。 ほずんどの堎合、この子芁求はアプリケヌション コヌドに察しお透過的であり、Default.aspx ペヌゞは正垞に実行されたす。 ただし、マネヌゞド コヌドず IIS 7 たたは IIS 7.5 統合モヌドの間で朜圚的な盞互䜜甚が発生するず、子芁求䞭にマネヌゞド .aspx ペヌゞが正垞に動䜜しなくなる可胜性がありたす。 次の条件が発生した堎合、既定の.aspx ドキュメントに察する子芁求は、゚ラヌたたは予期しない動䜜になりたす。

* .aspxペヌゞは、 form 芁玠の action 属性が "" に蚭定された状態でブラりザヌに送信されたす。
*フォヌムは ASP.NET にポストバックされたす。
* マネヌゞド HTTP モゞュヌルは、゚ンティティ本䜓の䞀郚 ( Request.Form や Request.Paramsなど) を読み取りたす。 これにより、POST 芁求の゚ンティティ本文がマネヌゞド メモリに読み取られたす。 その結果、゚ンティティ本䜓は、IIS 7 たたは IIS 7.5 統合モヌドで実行されおいるネむティブ コヌド モゞュヌルでは䜿甚できなくなりたす。
* IIS DefaultDocumentModule オブゞェクトは最終的に実行され、Default.aspx ドキュメントぞの子芁求が䜜成されたす。 ただし、゚ンティティボディはマネヌゞドコヌドの䞀郚によっお既に読み取られたため、子芁求に送信できる゚ンティティボディはありたせん。
* 子芁求に察しお HTTP パむプラむンを実行するず、.aspx ファむルのハンドラヌはハンドラヌ実行フェヌズ䞭に実行されたす。

゚ンティティ本䜓がないため、フォヌム倉数もビュヌステヌトもありたせん。 そのため、.aspx ペヌゞ ハンドラヌには、どのむベント存圚する堎合を発生させるべきかを刀断するための情報がありたせん。 その結果、圱響を受けるペヌゞのポストバック むベント ハンドラヌ.aspx実行されたせん。
この倉曎によっお発生する可胜性がある問題を回避する方法に぀いおは、ASP.NET Web サむトの ASP.NET 4 の倉曎点 ドキュメント内の「IIS 7 たたは IIS 7.5 統合モヌドで既定のドキュメントにむベント ハンドラヌが発生しない可胜性がある」を参照しおください。
ハッシュ アルゎリズム ASP.NET では、暗号化アルゎリズムずハッシュ アルゎリズムの䞡方を䜿甚しお、フォヌム認蚌 Cookie やビュヌステヌトなどのデヌタをセキュリティで保護したす。 既定では、ASP.NET 4 では、cookie ずビュヌステヌトに察するハッシュ操䜜に HMACSHA256 アルゎリズムが䜿甚されたす。 以前のバヌゞョンの ASP.NET では、以前の HMACSHA1 アルゎリズムが䜿甚されおいたした。 フォヌム認蚌 Cookie などのデヌタが .NET Framework バヌゞョン間で動䜜する必芁がある ASP.NET 2.0 ず ASP.NET 4 を混圚させるアプリケヌションを実行する堎合は、Web.config ファむルに次の蚭定を远加しお、叀い HMACSHA1 アルゎリズムを䜿甚するように ASP.NET 4 Web アプリケヌションを構成したす。

<machineKey validation="SHA1" />
Internet Explorer でのコントロヌルのホスティング Web 䞊でコントロヌルをホストするためのより優れた゜リュヌションがあるため、Internet Explorer で Windows フォヌム コントロヌルをホストできなくなりたした。 そのため、IEHost.dll アセンブリず IEExec.exe アセンブリは .NET Framework から削陀されおいたす。 Web アプリケヌションでのカスタム コントロヌル開発には、次のテクノロゞを䜿甚できたす。

* Silverlight アプリケヌションを䜜成し、ブラりザヌの倖郚で実行するように構成できたす。 詳现に぀いおは、「 ブラりザヌ倖のサポヌト」を参照しおください。
* XAML ブラりザヌ アプリケヌション (XBAP) を構築しお、WPF 機胜を利甚できたす (クラむアント コンピュヌタヌ䞊の .NET Framework が必芁)。 詳现に぀いおは、「 WPF XAML ブラりザヌ アプリケヌションの抂芁」を参照しおください。
HtmlEncode メ゜ッドず UrlEncode メ゜ッド HtmlEncode クラスずUrlEncode クラスのHttpUtilityメ゜ッドずHttpServerUtility メ゜ッドが曎新され、単䞀匕甚笊文字 (') が次のように゚ンコヌドされたした。

* HtmlEncode メ゜ッドは、単䞀匕甚笊のむンスタンスを次のように゚ンコヌドしたす。 &#39;
* UrlEncode メ゜ッドは、単䞀匕甚笊のむンスタンスを次のように゚ンコヌドしたす。 %27
HtmlEncodeメ゜ッドずUrlEncodeメ゜ッドを䜿甚する堎所をコヌドで確認し、゚ンコヌドの倉曎によっおアプリケヌションに圱響する倉曎が生じないこずを確認したす。
ASP.NET 2.0 アプリケヌションでの HttpException ゚ラヌ IIS 6 で ASP.NET 4 が有効になった埌、IIS 6 (Windows Server 2003 たたは Windows Server 2003 R2) で実行される ASP.NET 2.0 アプリケヌションでは、次のような゚ラヌが発生する可胜性がありたす。 System.Web.HttpException: Path '/[yourApplicationRoot]/eurl.axd/[Value]' was not found. * Web サむトを実行するために ASP.NET 4 が必芁ない堎合は、代わりに ASP.NET 2.0 を䜿甚するようにサむトを再マップしたす。

-又は-

* Web サむトを実行するために ASP.NET 4 が必芁な堎合は、子 ASP.NET 2.0 仮想ディレクトリを、ASP.NET 2.0 にマップされおいる別の Web サむトに移動したす。

-又は-

* 拡匵子のない URL を無効にしたす。 詳现に぀いおは、「ASP.NET 2.0 アプリケヌションで eurl.axd を参照する HttpException ゚ラヌが生成される可胜性がある」ASP.NET 4 ASP.NET Web サむトの 砎壊的倉曎 に関するドキュメントを参照しおください。
メンバヌシップの皮類 ASP.NET メンバヌシップで䜿甚される䞀郚の型 (MembershipProvider など) は、System.Web.dll アセンブリから System.Web.ApplicationServices.dll アセンブリに移動したした。 型は、クラむアント内の型ず拡匵 .NET Framework SKU の型間のアヌキテクチャの階局化の䟝存関係を解決するために移動されたした。 以前のバヌゞョンの ASP.NET からアップグレヌドされ、移動されたメンバヌシップの皮類を䜿甚するクラス ラむブラリは、ASP.NET 4 プロゞェクトで䜿甚するずコンパむルに倱敗する可胜性がありたす。 その堎合は、クラス ラむブラリ プロゞェクトの参照を System.Web.ApplicationServices.dllに远加したす。
メニュヌ コントロヌルの倉曎 Menu コントロヌルを倉曎するず、次の動䜜が発生したす。

* MenuRenderingMode が Listに蚭定されおいる堎合、たたは MenuRenderingMode が Default に蚭定され、 ControlRenderingCompatibilityVersion が 4.0 以降に蚭定されおいる堎合、 PopOutImageUrl プロパティは無効です。
* StaticPopOutImageUrl プロパティおよび DynamicPopOutImageUrl プロパティで蚭定されたパスに円蚘号 (\) が含たれおいる堎合、むメヌゞはレンダリングされたせん。 (以前のバヌゞョンの ASP.NET では、パスに円蚘号を含めるこずができたす)。
* 個々のメニュヌ項目のPopOutImageUrlプロパティを蚭定する代わりに、芪StaticPopOutImageUrl コントロヌルのDynamicPopOutImageUrlたたはMenuを蚭定したす。

-又は-

MenuRenderingModeをTableに蚭定するか、MenuRenderingModeをDefaultに蚭定し、ControlRenderingCompatibilityVersionを3.5に蚭定したす。 これらの蚭定により、 Menu コントロヌルは、以前のバヌゞョンの ASP.NET で䜿甚した HTML テヌブル ベヌスのレむアりトを䜿甚したす。
* StaticPopOutImageUrl たたは DynamicPopOutImageUrl プロパティのパスに円蚘号 (\) が含たれおいる堎合は、スラッシュ (/) に眮き換える必芁がありたす。
Web.config ファむル内のモバむル アセンブリ 以前のバヌゞョンの ASP.NET では、assembliessystem.web/のcompilation セクションのルヌト Web.config ファむルに、System.Web.Mobile.dll アセンブリぞの参照が含たれおいたした。 パフォヌマンスを向䞊させるために、このアセンブリぞの参照が削陀されたした。

泚: System.Web.Mobile.dll アセンブリず ASP.NET モバむル コントロヌルは、ASP.NET 4 に含たれおいたすが、非掚奚です。
このアセンブリの型を䜿甚する堎合は、ルヌト Web.config ファむルたたはアプリケヌション Web.config ファむルでアセンブリぞの参照を远加したす。
出力キャッシュ ASP.NET 1.0 では、キャッシュ蚭定ずしお Location="ServerAndClient" を指定した際のバグにより、キャッシュされたペヌゞの応答に Vary:* HTTP ヘッダヌが出力されたした。 これは、ペヌゞをロヌカルにキャッシュしないようクラむアント ブラりザヌに指瀺する効果がありたした。 ASP.NET 1.1 では、 SetOmitVaryStar メ゜ッドが远加されたした。これは、 Vary:* ヘッダヌを抑制するために呌び出される可胜性がありたす。 ただし、バグ レポヌトは、開発者が既存の SetOmitVaryStar 動䜜を認識されおいないこずを瀺唆しおいたす。

ASP.NET 4 では、 Vary:* HTTP ヘッダヌは、次のディレクティブを指定する応答から出力されなくなりたす。

<%@ OutputCache Location="ServerAndClient" %>

その結果、SetOmitVaryStar ヘッダヌを抑制するために、Vary:* メ゜ッドは䞍芁になりたす。 Location属性に "ServerAndClient" を指定するアプリケヌションでは、SetOmitVaryStarを呌び出す必芁なく、ペヌゞがブラりザヌでキャッシュ可胜になりたす。
アプリケヌション内のペヌゞで Vary:*を出力する必芁がある堎合は、次の䟋に瀺すように AppendHeader メ゜ッドを呌び出したす。

System.Web.HttpResponse.AppendHeader("Vary","*");

たたは、出力キャッシュ Location 属性の倀を "Server" に倉曎するこずもできたす。
ペヌゞ解析 ASP.NET Web ペヌゞ (.aspx ファむル) ずナヌザヌ コントロヌル (.ascx ファむル) のペヌゞ パヌサヌは、ASP.NET 4 では以前のバヌゞョンの ASP.NET よりも厳密であり、以前のバヌゞョンよりも倚くのマヌクアップに無効ずしおフラグを蚭定したす。 ペヌゞの実行時に生成される゚ラヌ メッセヌゞを調べお、無効なマヌクアップの結果ずしお発生する゚ラヌを修正したす。
パスポヌトの皮類 ASP.NET 2.0 に組み蟌たれおいる Passport のサポヌトは廃止されおおり、Passport (珟圚の Live ID SDK) の倉曎によりサポヌトされおいたせん。 その結果、 System.Web.Security の Passport に関連する型は、 ObsoleteAttribute 属性でマヌクされるようになりたした。 System.Web.Security名前空間 (PassportIdentity など) で Passport 型を䜿甚するコヌドを、Windows Live ID SDK を䜿甚するように倉曎したす。
FilePath プロパティの PathInfo 情報 ASP.NET 4 では、PathInfo、FilePath、AppRelativeCurrentExecutionFilePathなどのプロパティからの戻り倀にCurrentExecutionFilePath倀が含たれなくなりたした。 代わりに、 PathInfo 情報は PathInfoで䜿甚できたす。 たずえば、次の URL フラグメントを想像しおみおください。

/testapp/Action.mvc/SomeAction

以前のバヌゞョンの ASP.NET では、 HttpRequest プロパティの倀は次のずおりです。

* FilePath: /testapp/Action.mvc/SomeAction
* PathInfo: (空)

ASP.NET 4 では、 HttpRequest プロパティの倀は次のようになりたす。

* FilePath: /testapp/Action.mvc
* PathInfo: SomeAction
HttpRequest クラスのプロパティに䟝存しおパス情報を返す堎所をコヌドで調べたす。パス情報の返し方の倉曎を反映するようにコヌドを倉曎したす。
芁求の怜蚌 芁求の怜蚌を改善するために、芁求のラむフ サむクルの早い段階で ASP.NET 芁求の怜蚌が呌び出されたす。 その結果、Web サヌビス呌び出しやカスタム ハンドラヌなど、.aspx ファむル甚ではない芁求に察しお芁求怜蚌が実行されたす。 芁求の怜蚌は、カスタム HTTP モゞュヌルが芁求凊理パむプラむンで実行されおいる堎合にもアクティブになりたす。

この倉曎の結果、.aspx ファむル以倖のリ゜ヌスに察する芁求では、芁求怜蚌゚ラヌが発生する可胜性がありたす。 芁求パむプラむンで実行されるカスタム コヌド (カスタム HTTP モゞュヌルなど) も、芁求怜蚌゚ラヌをスロヌする可胜性がありたす。
必芁に応じお、Web 構成ファむルの次の蚭定を䜿甚しお、.aspx ペヌゞのみが芁求怜蚌をトリガヌする叀い動䜜に戻すこずができたす。

<httpRuntime requestValidationMode="2.0" />

譊告: 以前の動䜜に戻す堎合は、既存のハンドラヌ、モゞュヌル、およびその他のカスタム コヌド内のすべおのコヌドが、XSS 攻撃ベクトルである可胜性がある安党でない可胜性がある HTTP 入力のチェックを実行しおいるこずを確認したす。
ルヌティング Visual Studio 2010 でファむル システム Web サむトを䜜成し、Web サむトがフォルダヌ名にドット (.) を含むフォルダヌ内にある堎合、URL ルヌティングは確実に機胜したせん。 䞀郚の仮想パスから HTTP 404 ゚ラヌが返されたす。 これは、Visual Studio 2010 がルヌト仮想ディレクトリの正しくないパスを䜿甚しお Visual Studio 開発サヌバヌを起動するためです。 * ファむルベヌスの Web サむトの [プロパティ] ペヌゞで、 Virtual Path 属性を "/" に倉曎したす。

-又は-

* Web サむト プロゞェクトの代わりに Web アプリケヌション プロゞェクトを䜜成したす。 Web アプリケヌション プロゞェクトにはこの問題はありたせん。URL ルヌティングは、プロゞェクト フォルダヌの名前にドットが含たれおいる堎合でも機胜したす。

-又は-

* IIS でホストされおいる HTTP ベヌスの Web サむトを䜜成したす。 IIS でホストされる Web サむトは、仮想パスずプロゞェクト ファむル フォルダヌにドットを含めるこずができたす。
SharePoint サむト WSS_Minimalずいう名前のカスタム郚分信頌レベルを含む SharePoint Web サむトの子ずしお展開されおいる ASP.NET 4 Web サむトを実行しようずするず、次の゚ラヌが衚瀺されたす。

Could not find permission set named 'ASP.Net'.
珟圚、ASP.NET ず互換性のあるバヌゞョンの SharePoint はありたせん。 その結果、ASP.NET 4 Web サむトを SharePoint Web サむトの子ずしお実行しないでください。
XHTML 1.1 暙準 新しい Web サむトに察しお XHTML 1.1 コンプラむアンスを有効にするために、.NET Framework 4 の ASP.NET コントロヌルによっお XHTML 1.1 準拠の HTML が生成されたす。 このレンダリングは、 <system.Web> 芁玠内の Web.config ファむルで次のオプションを䜿甚しお有効になりたす。

<pages controlRenderingCompatibilityVersion="4.0"/>

このオプションは、既定で 4.0 に蚭定されおいたす。 Visual Studio 2008 からアップグレヌドされた Web プロゞェクトでは、互換性のために 3.5 蚭定が有効になっおいたす。
なし。

コア

䞀般的な機胜

特城 3.5 SP1 ずの違い 掚奚される倉曎
CardSpace Windows CardSpace は .NET Framework に含たれたせん。これは個別に提䟛されたす。 Microsoft ダりンロヌド センタヌから Windows CardSpace を ダりンロヌドしたす。
構成ファむル .NET Framework がアプリケヌション構成ファむルにアクセスする方法が修正されたした。 アプリケヌション構成ファむルの名前が application-name.configの堎合は、名前を application-name.exe.configに倉曎したす。たずえば、 MyApp.config の名前をMyApp.exe.configに倉曎 したす 。
C# コヌド コンパむラ Compiler名前空間にあったCompilerError、ErrorLevel、およびMicrosoft.CSharpクラスは䜿甚できなくなり、そのアセンブリ (cscompmgd.dll) は .NET Framework に含たれたせん。 CodeDomProvider名前空間で、System.CodeDom.Compiler クラスずその他のクラスを䜿甚したす。 詳现に぀いおは、「 CodeDOM の䜿甚」を参照しおください。
ホスティング (アンマネヌゞド API) ホスティング機胜を向䞊させるために、ホスティング アクティブ化 API の䞀郚が非掚奚になりたした。 むンプロセスの side-by-side 実行機胜を䜿甚するず、アプリケヌションは同じプロセスで耇数のバヌゞョンの .NET Framework を読み蟌んで起動できたす。 たずえば、.NET Framework 2.0 SP1 に基づくアドむン (たたはコンポヌネント) を読み蟌むアプリケヌションず、.NET Framework 4 に基づくアドむンを同じプロセスで実行できたす。 叀いコンポヌネントでは匕き続き以前の .NET Framework バヌゞョンが䜿甚され、新しいコンポヌネントでは新しい .NET Framework バヌゞョンが䜿甚されたす。 サむド バむ サむド実行のIn-Process で説明されおいる構成を䜿甚したす。
新しいセキュリティ モデル コヌド アクセス セキュリティ (CAS) ポリシヌは、 .NET Framework 4 のセキュリティの倉曎に関する蚘事で説明されおいるように、オフにされ、簡略化されたモデルに眮き換えられたした。 アプリケヌションで CAS に䟝存しおいる堎合は、倉曎が必芁になる堎合がありたす。 詳现に぀いおは、「 コヌド アクセス セキュリティ ポリシヌの互換性ず移行」を参照しおください。

日付ず時刻

名前空間: System

アセンブリ: mscorlib (mscorlib.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
倏時間 システム クロックず䞀貫性を保぀には、時間プロパティ ( Local や Nowなど) で、倏時間操䜜に他の .NET Framework デヌタの代わりにオペレヌティング システム ルヌルが䜿甚されるようになりたした。 なし。
文字列の曞匏蚭定 カルチャに䟝存する曞匏蚭定をサポヌトするために、TimeSpan構造䜓には、新しいToStringメ゜ッドずParseメ゜ッドに加えお、TryParse、ParseExact、およびTryParseExactメ゜ッドの新しいオヌバヌロヌドが含たれおいたす。 なし。

グロヌバリれヌション

新しいニュヌトラルカルチャず特定のカルチャの䞀芧に぀いおは、「 グロヌバリれヌションずロヌカリれヌションの新機胜」を参照しおください。

名前空間: System.Globalization

アセンブリ: mscorlib (mscorlib.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
カルチャ名称 次の名前の倉曎は、ドむツ、ディベヒ、アフリカの文化に圱響したす。

* CurrencyEnglishName: ドむツ語 (スむス) (de-CH) カルチャの通貚名は "sFr." から "Fr." に倉曎されたした。
* LongDatePattern: Divehi (モルディブ) (dv-MV) カルチャの長い日付パタヌンが "dd/MMMM/yyyy" から "dd/MM/yyyy" に倉曎されたした。
* PMDesignator: アフリカヌンス語 (南アフリカ) (af-ZA) カルチャの午埌指定子は、"nm" から "PM" に倉曎されたした。
文化名の倉曎を確認しおください。
LCID パラメヌタヌ オヌトメヌション サヌバヌ蚭定での予期される動䜜ず䞀貫性を保぀ため、CLR は、 LCID パラメヌタヌの珟圚のカルチャをアンマネヌゞ COM ベヌスのアプリケヌションに枡さなくなりたした。 代わりに、カルチャずしお 1033 (en-us) が枡されたす。 指定したカルチャを必芁ずするネむティブ アプリケヌションを陀き、倉曎は必芁ありたせん。
叀いカルチャの皮類 CultureTypesずCultureTypesカルチャの皮類は、珟圚は廃止されおいたす。

䞋䜍互換性のために、 CultureTypes は以前の .NET Framework に含たれおいたニュヌトラルカルチャず特定のカルチャを返し、 CultureTypes は空のリストを返すようになりたした。
CultureTypes列挙䜓の他の倀を䜿甚したす。
カルチャの取埗 Windows 7 以降、.NET Framework 4 では、デヌタ自䜓を栌玍するのではなく、オペレヌティング システムからカルチャ情報を取埗したす。 さらに、.NET Framework は、デヌタの䞊べ替えず倧文字ず小文字の区別のために Windows ず同期したす。 なし。
Unicode 5.1 暙準 .NET Framework では、すべおの Unicode 5.1 文字 (箄 1,400 文字を远加) がサポヌトされるようになりたした。 その他の文字には、新しい蚘号、矢印、分音蚘号、句読点、数孊蚘号、CJK ストロヌクずむデグラフ、远加のマラダヌラム文字ずテルグ語の数字、およびミャンマヌ、ラテン、アラビア語、ギリシャ語、モンゎル語、キリル文字が含たれたす。 次の新しいスクリプトは、Unicode 5.1 でサポヌトされおいたす。Sundanese、Lepcha、Ol Chiki、Vai、Saurashtra、Kayah Li、Rejang、Gurmukhi、Odia、Tamil、Telugu、Malayalam の文字ずチャム。 なし。

䟋倖

名前空間: System、 System.Runtime.ExceptionServices

アセンブリ: mscorlib (mscorlib.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
砎損したプロセス状態の䟋倖 CLR は、砎損したプロセス状態の䟋倖をマネヌゞド コヌドの䟋倖ハンドラヌに配信しなくなりたした。 これらの䟋倖は、プロセスの状態が砎損しおいるこずを瀺したす。 この状態でアプリケヌションを実行するこずはお勧めしたせん。

詳现に぀いおは、MSDN マガゞンの「 HandleProcessCorruptedStateExceptionsAttribute 」ず「 砎損状態䟋倖の凊理 」の゚ントリを参照しおください。
実行゚ンゞンの䟋倖 ExecutionEngineException は、キャッチ可胜な䟋倖によっお䞍安定なプロセスを匕き続き実行できるため、珟圚は廃止されおいたす。 この倉曎により、実行時の予枬可胜性ず信頌性が向䞊したす。 InvalidOperationExceptionを䜿甚しお条件を通知したす。

リフレクション

名前空間: System.Reflection

アセンブリ: mscorlib (mscorlib.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
アセンブリ ハッシュ アルゎリズム アセンブリが読み蟌たれおいない堎合、ランタむムは参照アセンブリのハッシュ アルゎリズムを認識しないため、 HashAlgorithm プロパティは AssemblyHashAlgorithmを返すようになりたした。 (これは、 GetReferencedAssemblies メ゜ッドによっお返されるなど、参照されるアセンブリでプロパティを䜿甚するこずを指したす)。 なし。
アセンブリの読み蟌み アセンブリの冗長な読み蟌みを防ぎ、仮想アドレス空間を節玄するために、CLR は Win32 MapViewOfFile 関数のみを䜿甚しおアセンブリを読み蟌むようになりたした。 LoadLibrary関数も呌び出しなくなりたした。

この倉曎は、次の方法で蚺断アプリケヌションに圱響したす。

* ProcessModuleCollection には、 Process.GetCurrentProcess().Modulesの呌び出しから取埗したクラス ラむブラリ (.dll ファむル) のモゞュヌルは含めなくなりたす。
* EnumProcessModules 関数を䜿甚する Win32 アプリケヌションには、䞀芧にすべおのマネヌゞド モゞュヌルが衚瀺されたせん。
なし。
宣蚀する型 DeclaringTypeプロパティは、型に宣蚀型がない堎合に null を正しく返すようになりたした。 なし。
代衚者 デリゲヌトのコンストラクタヌに null 倀が枡されたずきに、デリゲヌトがArgumentNullExceptionの代わりにNullReferenceExceptionをスロヌするようになりたした。 䟋倖凊理が ArgumentNullExceptionをキャッチしおいるこずを確認したす。
グロヌバル アセンブリ キャッシュの堎所の倉曎 .NET Framework 4 アセンブリの堎合、グロヌバル アセンブリ キャッシュは Windows ディレクトリ (%WINDIR%) から Microsoft.Net サブディレクトリ (%WINDIR%\Microsoft.Net) に移動されたした。 以前のバヌゞョンのアセンブリは、叀いディレクトリに残りたす。

アンマネヌゞ ASM_CACHE_FLAGS 列挙には、新しい ASM_CACHE_ROOT_EX フラグが含たれおいたす。 このフラグは、 GetCachePath 関数によっお取埗できる .NET Framework 4 アセンブリのキャッシュ堎所を取埗したす。
アプリケヌションがアセンブリぞの明瀺的なパスを䜿甚しおいないず仮定するず、これは掚奚される方法ではありたせん。
グロヌバル アセンブリ キャッシュ ツヌル Gacutil.exe (グロヌバル アセンブリ キャッシュ ツヌル) は、シェル プラグむン ビュヌアヌをサポヌトしなくなりたした。 なし。

盞互運甚性

名前空間: System.Runtime.InteropServices

アセンブリ: mscorlib (mscorlib.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
バッファヌの長さ (アンマネヌゞ API) メモリを節玄するために、pBufferLengthOffset メ゜ッドの パラメヌタヌの機胜が、pStringLengthOffset パラメヌタヌず䞀臎するように倉曎されたした。 䞡方のパラメヌタヌが文字列の長さのオフセット䜍眮を指すようになりたした。 バッファヌの長さが文字列クラスの衚珟から削陀されたした。 バッファヌの長さに察する䟝存関係を削陀したす。
JIT デバッグ Just-In-Time (JIT) デバッグの登録を簡略化するために、.NET Framework デバッガヌでは、ネむティブ コヌドの JIT デバッグ動䜜を制埡する AeDebug レゞストリ キヌのみが䜿甚されるようになりたした。 この倉曎の結果、次のようになりたす。

* マネヌゞド コヌドずネむティブ コヌドに察しお 2 ぀の異なるデバッガヌを登録できなくなりたした。
* 非察話型プロセスに察しおデバッガヌを自動的に起動するこずはできなくなりたしたが、ナヌザヌに察話型プロセスを求めるこずもできたす。
* デバッガヌの起動に倱敗したずき、たたは起動する必芁がある登録枈みのデバッガヌがない堎合は、通知されなくなりたす。
* アプリケヌションの察話機胜に䟝存する自動起動ポリシヌはサポヌトされなくなりたした。
必芁に応じおデバッグ操䜜を調敎したす。
プラットフォヌム呌び出し アンマネヌゞ コヌドずの盞互運甚性のパフォヌマンスを向䞊させるために、プラットフォヌム呌び出しの呌び出し芏則が正しくないず、アプリケヌションが倱敗するようになりたした。 以前のバヌゞョンでは、マヌシャリング レむダヌによっおこれらの゚ラヌがスタック䞊で解決されたした。 Microsoft Visual Studio でアプリケヌションをデバッグするず、これらの゚ラヌを修正できるように譊告が衚瀺されたす。

曎新できないバむナリがある堎合は、アプリケヌションの構成ファむルに <NetFx40_PInvokeStackResilience> 芁玠を含め、以前のバヌゞョンず同様に呌び出し゚ラヌをスタックで解決できたす。 ただし、これはアプリケヌションのパフォヌマンスに圱響する可胜性がありたす。
削陀されたむンタヌフェむス (アンマネヌゞド API) 開発者の混乱を避けるために、次のむンタヌフェむスは、䟿利なランタむム シナリオを提䟛しおおらず、CLR が実装を提䟛たたは受け入れなかったため、削陀されたした。

* INativeImageINativeImageDependency
* INativeImageInstallInfo
* INativeImageEvaluate
* INativeImageConverter
* ICorModule
* IMetaDataConverter
なし。

デヌタ

このセクションでは、デヌタ セットず SQL クラむアント、Entity Framework、LINQ to SQL、WCF デヌタ サヌバヌ (旧称 ADO.NET Data Services) の䜿甚に関する移行の問題に぀いお説明したす。

DataSet ず SQL Client

次の衚では、以前は制限やその他の問題が発生しおいた機胜の機胜匷化に぀いお説明したす。

名前空間: System.Data、System.Data.Objects.DataClasses、System.Data.SqlClient

アセンブリ: System.Data (System.Data.dll)、System.Data.Entity (System.Data.Entity.dll内)

特城 3.5 SP1 ずの違い
POCO シナリオ IRelatedEnd むンタヌフェむスには、Plain Old CLR Object (POCO) シナリオでの䜿いやすさを向䞊させる新しいメ゜ッドがありたす。 これらの新しいメ゜ッドは、パラメヌタヌずしおObject゚ンティティの代わりにIEntityWithRelationshipsを受け取りたす。
行の線集 IndexOf メ゜ッドは、DataView クラスによっお実装されたずおり、-1 を返すのではなく、線集䞭の行の倀を正しく返すようになりたした。
むベント PropertyChanged むベントは、行が倉曎された状態にあり、RejectChanges メ゜ッドが呌び出されたずきに発生するようになりたした。 この倉曎により、 DataSet オブゞェクトの内容を公開する UI コントロヌルを簡単に䜜成できたす。
䟋倖 Prepare メ゜ッドは、接続が蚭定されおいないか、開かれおいないずきに、InvalidOperationExceptionの代わりにNullReferenceExceptionをスロヌするようになりたした。
ビュヌのマッピング 実行時にNullReferenceExceptionをスロヌするのではなく、ク゚リビュヌのマッピング゚ラヌがデザむン時に怜出されるようになりたした。

マッピング怜蚌で、抂念スキヌマ (CSDL) の 2 ぀の関連付けセットが同じ列にマップされるずいう゚ラヌがキャッチされるようになりたした。
トランザクション トランザクションの完了埌 (䞭止たたはロヌルバックを含む)、アプリケヌションが接続に察しおステヌトメントを実行しようずした堎合に、InvalidOperationException がスロヌされるようになりたした。 以前のバヌゞョンでは、䟋倖がスロヌされず、トランザクションが䞭止された堎合でも远加のコマンドを実行できたした。

Entity Framework

次の衚では、以前は制限やその他の問題が発生しおいた機胜の機胜匷化に぀いお説明したす。

名前空間: System.Data、System.Data.Objects、System.Data.Objects.DataClasses

アセンブリ: System.Data.Entity (System.Data.Entity.dll内)

特城 3.5 SP1 ずの違い
゚ンティティ オブゞェクト Detach メ゜ッドが呌び出されたずきに、SaveChanges メ゜ッドず゚ンティティ オブゞェクトの状態の間にパリティが存圚するようになりたした。 䞀貫性が向䞊するこずで、予期しない䟋倖の発生が防止されたす。
Entity SQL Entity SQL の識別子解決に関する芏則が改善されたした。

Entity SQL パヌサヌは、マルチパヌト識別子を解決するためのロゞックを改善したした。
構造泚釈 Entity Framework で構造泚釈が認識されるようになりたした。
ク゚リ ク゚リで次の機胜匷化が行われたした。

* 空のコレクションに察しお null キヌを䜿甚する GroupBy ク゚リでは、ク゚リに远加の遞択があるかどうかに関係なく、行は返されたせん。
* LINQ ク゚リず Entity-SQL ク゚リで生成された SQL では、文字列パラメヌタヌが既定で Unicode 以倖の倀ずしお扱われたす。

LINQ to SQL

次の衚では、以前は制限やその他の問題が発生しおいた機胜の機胜匷化に぀いお説明したす。

名前空間: System.Data.Linq

アセンブリ:System.Data.Linq (System.Data.Linq.dll 内)

特城 3.5 SP1 ずの違い
むベント EntitySet<TEntity> コレクションは、ListChangedがアンロヌドされた堎合に远加および削陀操䜜のためにEntitySet<TEntity>むベントを発生させ、コレクションが読み蟌たれたずきにもむベントを発生させたす。
ク゚リ Skip(0) は、LINQ to SQL ク゚リでは無芖されなくなりたした。 その結果、このメ゜ッドを持぀ク゚リの動䜜が異なる堎合がありたす。 たずえば、堎合によっおは、OrderByでSkip(0)句が必芁になり、NotSupportedException句が含たれおいない堎合、ク゚リはOrderBy䟋倖をスロヌしたす。

WCF Data Services

次の衚では、以前は制限やその他の問題が発生しおいた機胜の機胜匷化に぀いお説明したす。

名前空間: System.Data.Services、 System.Data.Services.Client、 System.Data.Services.Common、 System.Data.Services.Providers

アセンブリ: System.Data.Services (System.Data.Services.dll)、System.Data.Services.Client (System.Data.Services.Client.dll内)

特城 3.5 SP1 ずの違い
バッチ凊理されたバむナリコンテンツ WCF Data Services では、芁求ず応答でバッチバむナリ コンテンツがサポヌトされるようになりたした。
倉曎むンタヌセプタヌ 削陀芁求に察しお倉曎むンタヌセプタヌが実行されるようになりたした。

倉曎むンタヌセプタヌは、゚ンティティ セット内の゚ンティティを倉曎するためにサヌバヌが芁求を受信するたびに実行されるメ゜ッドです。 受信芁求が実行される前に実行されたす。 倉曎むンタヌセプタヌは、倉曎される゚ンティティずその゚ンティティに察しお実行されおいる操䜜ぞのアクセスを提䟛したす。
䟋倖 次の条件では、NullReferenceException ではなく、より圹に立぀䟋倖がスロヌされるようになりたした。

* デヌタ サヌビスの呌び出しがタむムアりトになった堎合の TimeoutException。
* デヌタ サヌビスに察しお䞍適切な芁求が行われた堎合の DataServiceRequestException。

アプリケヌションでは、新しい䟋倖をキャッチするように䟋倖凊理を倉曎する必芁がありたす。
ヘッダヌ ヘッダヌに察しお次の改良が行われたした。

* WCF Data Services が、未指定の倀を持぀ eTag ヘッダヌを正しく拒吊するようになりたした。
* WCF Data Services ぱラヌを返すようになり、 if-* ヘッダヌが芁求内にある堎合、リンクぞの削陀芁求の芁求は実行されたせん。
* WCF Data Services は、クラむアントが Accept ヘッダヌで指定した圢匏 (Atom、JSON) でクラむアントに゚ラヌを返すようになりたした。
JSON リヌダヌ JAVAScript Object Notation (JSON) リヌダヌは、WCF Data Service に送信された JSON ペむロヌドを凊理するずきに、単䞀の円蚘号 ("\") ゚スケヌプ文字を読み取るずきに゚ラヌを正しく返すようになりたした。
マヌゞ MergeOption列挙䜓に察しお次の機胜匷化が行われたした。

* MergeOption マヌゞ オプションは、デヌタ サヌビスからの埌続の応答の結果ずしお、クラむアント䞊の゚ンティティを倉曎しなくなりたした。
* MergeOption オプションは、動的 SQL ずストアド プロシヌゞャ ベヌスの曎新の間で䞀貫しおいたす。
リク゚スト デヌタ サヌビスぞの芁求が凊理される前に、 OnStartProcessingRequest メ゜ッドが呌び出されるようになりたした。 これにより、 ServiceOperation サヌビスに察しお芁求が正しく機胜したす。
ストリヌム WCF Data Services は、読み取りおよび曞き蟌み操䜜のために基になるストリヌムを閉じなくなりたした。
URI WCF Data Services クラむアントによる URI の゚スケヌプが修正されたした。

Windows Communication Foundation (WCF)

次の衚では、以前は制限やその他の問題が発生しおいた機胜の機胜匷化に぀いお説明したす。

特城 3.5 SP1 ずの違い
構成ファむル 構成ファむル階局を介した動䜜の継承を有効にするために、WCF では構成ファむル間のマヌゞがサポヌトされるようになりたした。

構成継承モデルが拡匵され、コンピュヌタヌで実行されおいるすべおのサヌビスに適甚される動䜜をナヌザヌが定矩できるようになりたした。

階局のレベルが異なる同じ名前の動䜜がある堎合、動䜜の倉曎が発生する可胜性がありたす。
サヌビス ホスティング 属性<serviceHostingEnvironment>を芁玠定矩に远加するこずで、サヌビス レベルでallowDefinition="MachineToApplication"構成芁玠を指定できなくなりたした。

サヌビス レベルで <serviceHostingEnvironment> 芁玠を指定するこずは技術的に正しくがなく、動䜜に䞀貫性がありたせん。

Windows Presentation Foundation (WPF)

アプリケヌション

名前空間: System.Windows、 System.Windows.Controls

アセンブリ:PresentationFramework (PresentationFramework.dll 内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
䟋倖凊理 ゚ラヌを前に怜出できるように、WPF はTargetInvocationExceptionをスロヌし、元の䟋倖をキャッチするのではなく、InnerException、NullReferenceException、OutOfMemoryException、StackOverflowExceptionなどの重芁な䟋倖にSecurityException プロパティを蚭定したす。 なし。
リンクされたリ゜ヌス リンクを容易にするために、プロゞェクトのフォルダヌ構造以倖の堎所にあるリ゜ヌス ファむル (画像など) は、アプリケヌションのビルド時にリ゜ヌス ID ずしおファむル名だけでなく、リ゜ヌス ファむルの完党パスを䜿甚したす。 アプリケヌションは実行時にファむルを芋぀けるこずができたす。 なし。
郚分信頌アプリケヌション セキュリティ䞊の考慮事項ずしお、郚分信頌で実行され、 WebBrowser コントロヌルたたは HTML を含む Frame コントロヌルを含む Windows ベヌスのアプリケヌションは、コントロヌルの䜜成時に SecurityException をスロヌしたす。

ブラりザヌ アプリケヌションは、次のすべおの条件が満たされた堎合に䟋倖をスロヌし、メッセヌゞを衚瀺したす。

* アプリケヌションは Firefox で実行されおいたす。
* アプリケヌションは、信頌されおいないサむトからむンタヌネット ゟヌンで郚分信頌で実行されおいたす。
* アプリケヌションには、 WebBrowser コントロヌルたたは HTML を含む Frame コントロヌルが含たれおいたす。

信頌枈みサむトたたはむントラネット ゟヌンから実行されるアプリケヌションは圱響を受けたせん。
ブラりザヌ アプリケヌションでは、次のいずれかの操䜜を行うこずで、この倉曎を容易にできたす。

* ブラりザヌ アプリケヌションを完党に信頌しお実行したす。
* 顧客にアプリケヌションのサむトを信頌枈みサむト ゟヌンに远加しおもらう。
リ゜ヌス ディクショナリ テヌマ レベルのリ゜ヌス ディクショナリを改善し、倉曎できないようにするために、リ゜ヌス ディクショナリで定矩され、テヌマ レベルのディクショナリにマヌゞされる freezable リ゜ヌスは、垞に固定ずしおマヌクされ、倉曎䞍可になりたした。 これは、freezable リ゜ヌスに察しお想定される動䜜です。 テヌマ レベルのマヌゞされたディクショナリで定矩されおいるリ゜ヌスを倉曎するアプリケヌションは、リ゜ヌスを耇補し、耇補されたコピヌを倉曎する必芁がありたす。 たたは、リ゜ヌスに x:Shared="false" マヌクを付け、リ゜ヌスが照䌚されるたびに ResourceDictionary によっお新しいコピヌが䜜成されるようにするこずもできたす。
Windows 7 Windows 7 で WPF アプリケヌションの動䜜を向䞊させるために、りィンドりの動䜜を修正するために次の機胜匷化が行われたした。

* ドックずゞェスチャの状態が、ナヌザヌの操䜜に基づいお期埅どおりに動䜜するようになりたした。
* タスク バヌ コマンド の [りィンドりのカスケヌド]、[りィンドりの重ね合せの衚瀺]、および [りィンドりを䞊べお衚瀺 ] が正しい動䜜になり、適切なプロパティが曎新されるようになりたした。
* 最倧化たたは最小化されたりィンドりの Top、 Left、 Width、および Height プロパティに、モニタヌに応じお、他の倀ではなく、りィンドりの正しい埩元堎所が含たれるようになりたした。
なし。
Windows のスタむルず透明床 InvalidOperationExceptionがWindowStyleであり、WindowStyleがAllowsTransparencyである堎合に、trueをWindowState以倖の倀に蚭定しようずするずWindowStateがスロヌされたす。 WindowStyleがAllowsTransparencyされおいるずきにtrueを倉曎する必芁がある堎合は、Win32 SetWindowLongPtr関数を呌び出すこずができたす。
XPS ビュヌアヌ WPF には、Microsoft XML Paper Specification Essentials Pack (XPSEP) は含たれおいたせん。 XPSEP は、Windows 7 ず Windows Vista に含たれおいたす。

.NET Framework 3.5 SP1 がむンストヌルされおいない Windows XP を実行しおいるコンピュヌタヌでは、 PrintDialog 以倖の WPF API を䜿甚した印刷は WINSPOOL に䟝存したす。 䞀郚のプリンタヌ機胜は報告されず、䞀郚のプリンタヌ蚭定は印刷䞭に適甚されたせん。
必芁に応じお、Microsoft XML Paper Specification Essentials Pack をむンストヌルしたす。

コントロヌル

名前空間: System.Windows、 System.Windows.Controls、 System.Windows.Data、 System.Windows.Input

アセンブリ: PresentationFramework (PresentationFramework.dll)、PresentationCore (PresentationCore.dll)、WindowsBase (WindowsBase.dll)

特城 3.5 SP1 ずの違い 掚奚される倉曎
ダむアログ ボックス 信頌性を向䞊させるために、 ShowDialog メ゜ッドは、 FileDialog コントロヌルを䜜成したのず同じスレッドで呌び出されたす。 必ず FileDialog コントロヌルを䜜成し、同じスレッドで ShowDialog メ゜ッドを呌び出しおください。
フロヌティング りィンドり フロヌティング りィンドりを誀っお再アクティブ化し続けるフォヌカス埩元ロゞック (モヌダル ダむアログ ボックスのように衚瀺される) を修正するために、候補がりィンドりの子でない堎合、フォヌカスの埩元が犁止されるようになりたした。 なし。
コレクション内の項目 項目が移動されるか基になるコレクションに远加されるず、CollectionViewが䞊べ替えられおいない堎合は、同じ盞察的な䜍眮にCollectionViewずしお衚瀺されたす。 これにより、コレクション内の項目の䜍眮ず、関連付けられた CollectionView内での䜍眮の間の䞀貫性が提䟛されたす。 ContainerFromItemたたはIndexOfメ゜ッドを䜿甚しお、アむテムの固定䜍眮に䟝存するのではなく、CollectionView内の項目の堎所を怜玢したす。
レむアりト 䞍芁な再レむアりトを排陀するために、 ShowsNavigationUI を倉曎しおもレむアりトが無効になったり、別のレむアりト パスが発生したりしなくなりたした。 ShowsNavigationUIを倉曎するず別のレむアりト パスが発生するず予想される堎合は、プロパティを蚭定した埌にInvalidateVisualを呌び出したす。
メニュヌ メニュヌ ポップアップで ClearType テキストを有効にするために、 ControlTemplate クラスず MenuItem コントロヌルおよびその他のコントロヌルに倉曎が加えられたした。 アプリケヌションは、コントロヌル テンプレヌトの芖芚的な構造に䟝存しないでください。 ControlTemplateの名前付き郚分のみがパブリック コントラクトの䞀郚です。 アプリケヌションが ControlTemplate内の特定のオブゞェクトを芋぀ける必芁がある堎合は、ツリヌ内のオブゞェクトの固定䜍眮に䟝存するのではなく、ビゞュアル ツリヌで特定の型を怜玢したす。
移動 Frameが堎所に盎接移動するず、最初のナビゲヌションの埌にIsNavigationInitiator プロパティがtrueされたす。 この倉曎により、スタヌトアップ シナリオ䞭に远加のむベントが発生するのを防ぐこずができたす。 なし。
ポップアップ CustomPopupPlacementCallback デリゲヌトは、1 回だけではなく、レむアりト パス䞭に耇数回呌び出すようになりたした。 CustomPopupPlacementCallbackデリゲヌトが前の䜍眮に基づいおPopupの䜍眮を蚈算する堎合は、popupSize、targetSize、たたはoffsetパラメヌタヌの倀が倉曎された堎合にのみ䜍眮を再蚈算したす。
プロパティ倀 SetCurrentValue メ゜ッドを䜿甚するず、プロパティに有効な倀を蚭定できるようになりたしたが、プロパティに圱響を䞎えるバむンディング、スタむル、トリガヌは匕き続き考慮されたす。 コントロヌルの䜜成者は、プロパティ倀がナヌザヌ操䜜などの他のアクションの副䜜甚ずしお倉曎されるたびに、 SetCurrentValue を䜿甚する必芁がありたす。
テキスト ボックス セキュリティ䞊の考慮事項ずしお、 Copy メ゜ッドず Cut メ゜ッドは、郚分信頌で呌び出されるず自動的に倱敗したす。

さらに、Copyから継承するコントロヌルに察するCutたたはTextBoxBase プロパティのプログラムによる実行は、郚分的な信頌でブロックされたす。 ただし、 Command プロパティがこれらのコマンドのいずれかにバむンドされおいるボタンをクリックするなど、ナヌザヌが開始するコピヌおよび切り取りコマンドは機胜したす。 キヌボヌドショヌトカットおよびコンテキストメニュヌを䜿甚した暙準のコピヌず切り取りは、郚分信頌環境でも以前ず同様に機胜したす。
CopyたたはCutコマンドを、ボタンのクリックなど、ナヌザヌが開始するアクションにバむンドしたす。

グラフィックス

名前空間: System.Windows、 System.Windows.Controls、 System.Windows.Data、 System.Windows.Input、 System.Windows.Media.Effects

アセンブリ: PresentationFramework (PresentationFramework.dll)、PresentationCore (PresentationCore.dll)、WindowsBase (WindowsBase.dll)

特城 3.5 SP1 ずの違い 掚奚される倉曎
ビットマップ効果 パフォヌマンスを向䞊させるために、 BitmapEffect クラスず、 BitmapEffect クラスから継承するクラスは、ただ存圚したすが、無効になりたす。 次の条件に該圓する堎合は、ハヌドりェアアクセラレヌタレンダリングパむプラむンを䜿甚しお効果がレンダリングされたす。

* アプリケヌションは、半埄プロパティが 100 DIU 未満に蚭定されおいる DropShadowBitmapEffect たたは BlurBitmapEffect を䜿甚したす。
* アプリケヌションを実行するコンピュヌタヌ䞊のビデオ カヌドは、ピクセル シェヌダヌ 2.0 をサポヌトしおいたす。

これらの条件が満たされおいない堎合、 BitmapEffect オブゞェクトは無効になりたす。

たた、 BitmapEffect オブゞェクトたたはサブクラスが怜出されるず、Visual Studio によっおコンパむラ譊告が生成されたす。

PushEffectメ゜ッドは叀い圢匏ずしおマヌクされおいたす。
埓来の BitmapEffect クラスず掟生クラスの䜿甚を䞭止し、代わりに Effect から掟生した新しいクラス ( BlurEffect、 DropShadowEffect、 ShaderEffect) を䜿甚したす。

ShaderEffect クラスから継承するこずで、独自の効果を䜜成するこずもできたす。
ビットマップ フレヌム 耇補された BitmapFrame オブゞェクトは、 DownloadProgress、 DownloadCompleted、および DownloadFailed むベントを受け取るようになりたした。 これにより、Web からダりンロヌドされ、Imageを介しおStyle コントロヌルに適甚されたむメヌゞが正しく機胜したす。

次のステヌトメントがすべお圓おはたる堎合にのみ、動䜜の倉曎が衚瀺されたす。

* DownloadProgress、 DownloadCompleted、たたは DownloadFailed むベントをサブスクラむブしたす。
* BitmapFrame の゜ヌスは Web からの゜ヌスです。
* BitmapFrame は、ダりンロヌドの進行䞭に耇補されたす。
むベント ハンドラヌで送信者を確認し、送信者が元の BitmapFrameである堎合にのみアクションを実行したす。
画像のデコヌド IOExceptionがむメヌゞをデコヌドできない堎合に凊理されないようにするために、BitmapSource クラスは、むメヌゞをデコヌドしない堎合にDecodeFailed むベントを発生させたす。 IOExceptionの䟋倖凊理を削陀し、DecodeFailed むベントを䜿甚しおデコヌド゚ラヌを確認したす。

むンプット

名前空間: System.Windows、 System.Windows.Controls、 System.Windows.Data、 System.Windows.Input

アセンブリ: PresentationFramework (PresentationFramework.dll)、PresentationCore (PresentationCore.dll)、WindowsBase (WindowsBase.dll)

特城 3.5 SP1 ずの違い 掚奚される倉曎
コマンドむンスタンスをバむンドする View-Model ベヌスのコマンド むンスタンスをビュヌ ベヌスの入力ゞェスチャにバむンドするメカニズムを提䟛するために、InputBinding クラスはFreezableではなくDependencyObjectから継承するようになりたした。 次のプロパティが䟝存関係プロパティになりたした。

* Command
* CommandParameter
* CommandTarget

この倉曎の結果、次のようになりたす。

* InputBinding オブゞェクトは、倉曎可胜なたたではなく、登録時に固定されるようになりたした。
* InputBinding クラスの制限により、耇数のスレッドからむンスタンス レベルのDependencyObject オブゞェクトにアクセスするこずはできたせん。
* Freezable クラスの制限により、登録埌にクラス レベルの入力バむンドを倉曎するこずはできたせん。
* View-Model で䜜成されたコマンド むンスタンスでは、入力バむンドを指定できたせん。
バむンドを倉曎可胜にする堎合は、 InputBinding クラスのむンスタンスを個別のスレッドに䜜成するか、それ以倖の堎合は固定したす。 登録埌にクラス レベルの静的 InputBinding を倉曎しないでください。
ブラりザヌ アプリケヌション WPF ブラりザヌ アプリケヌション (.XBAP) は、オブゞェクトが正しい順序でルヌティングされたキヌ むベントを受け取るように、スタンドアロンの WPF アプリケヌションず同様にキヌ むベントを凊理するようになりたした。 なし。
デッドキヌコンビネヌション WPF は、非衚瀺の文字を生成しないデッド キヌを難読化したすが、代わりに、キヌを次の文字キヌず組み合わせお 1 ぀の文字を生成するこずを瀺したす。 KeyDownEvent むベントなどのキヌ入力むベントは、Key プロパティを Key 倀に蚭定しお、キヌがデッド キヌの堎合に報告したす。 通垞、これは予期される動䜜です。アプリケヌションは通垞、結合文字を䜜成するキヌボヌド入力に応答する予定がないためです。 結合された文字の䞀郚であるキヌを読み取るこずを想定しおいるアプリケヌションでは、 DeadCharProcessedKey プロパティを䜿甚しお、難読化されたキヌを取埗できたす。
フォヌカス マネヌゞャヌ FocusManager.GetFocusedElement(DependencyObject) メ゜ッドが、isFocusScope 添付プロパティが true に蚭定されおいる芁玠を枡すず、返された芁玠がメ゜ッドに枡される芁玠ず同じPresentationSource オブゞェクトに属しおいる堎合にのみ、そのフォヌカス スコヌプ内の最埌のキヌボヌドフォヌカス芁玠である芁玠が返されたす。 なし。

ナヌザヌむンタヌフェヌス自動化

名前空間: System.Windows、 System.Windows.Automation.Peers、 System.Windows.Automation.Provider、 System.Windows.Controls、 System.Windows.Data、 System.Windows.Input

アセンブリ: PresentationFramework (PresentationFramework.dll)、PresentationCore (PresentationCore.dll)、UIAutomationProvider (UIAutomationProvider.dll)、WindowsBase (WindowsBase.dll内)

特城 3.5 SP1 ずの違い 掚奚される倉曎
ビュヌのクラス階局 TreeViewAutomationPeerクラスずTreeViewItemAutomationPeer クラスは、ItemsControlAutomationPeerではなくFrameworkElementAutomationPeerから継承されたす。 TreeViewItemAutomationPeer クラスから継承し、GetChildrenCore メ゜ッドをオヌバヌラむドする堎合は、新しいTreeViewDataItemAutomationPeer クラスから継承するオブゞェクトを返す方法を怜蚎しおください。
画面倖のコンテナヌ 正しくない戻り倀を修正するために、 IsOffscreenCore メ゜ッドは、ビュヌ倖にスクロヌルされた項目コンテナヌの false を正しく返すようになりたした。 たた、メ゜ッドの倀は、他のりィンドりによるオクルヌゞョンや、芁玠が特定のモニタヌに衚瀺されおいるかどうかの圱響を受けたせん。 なし。
メニュヌず子オブゞェクト MenuItem オブゞェクト以倖の子を含むメニュヌの UI オヌトメヌションを有効にするために、GetChildrenCore メ゜ッドは、AutomationPeer オブゞェクトではなく、子UIElement オブゞェクトのMenuItemAutomationPeer オブゞェクトを返すようになりたした。 なし。
新しいむンタヌフェむスずアセンブリ UI オヌトメヌションの新機胜を有効にするために、次のむンタヌフェむスが远加されたした。

* IItemContainerProvider
* ISynchronizedInputProvider
* IVirtualizedItemProvider
WPF オヌトメヌション ピアをビルドするすべおのプロゞェクトは、UIAutomationProvider.dllぞの明瀺的な参照を远加する必芁がありたす。
Thumbs GetClassNameCore メ゜ッドは、null ではなく倀を返したす。 そのため、GridSplitter クラスから継承するThumbなどのコントロヌルは、UI オヌトメヌションに名前を報告したす。 なし。
仮想化された芁玠 パフォヌマンスを向䞊させるために、 GetChildrenCore メ゜ッドは、仮想化されおいるかどうかに関係なく、すべおの子オブゞェクトではなく、ビゞュアル ツリヌに実際に存圚する子オブゞェクトのみを返したす。 ItemContainerPatternを䜿甚しお、ItemsControlAutomationPeerのすべおの項目を反埩凊理したす。

XAML

名前空間: System.Windows、 System.Windows.Controls、 System.Windows.Data、 System.Windows.Input、 System.Windows.Markup

アセンブリ: PresentationFramework (PresentationFramework.dll)、PresentationCore (PresentationCore.dll)、WindowsBase (WindowsBase.dll)

特城 3.5 SP1 ずの違い 掚奚される倉曎
マヌクアップ拡匵機胜 WPF では、プロパティの蚭定やコレクション内の項目の䜜成にマヌクアップ拡匵を䜿甚する堎合に、ProvideValue オブゞェクトを返す代わりに、MarkupExtension メ゜ッドの倀が垞に正しく䜿甚されるようになりたした。 マヌクアップ拡匵機胜は、堎合によっおはそれ自䜓を返す堎合がありたす。 アプリケヌションが以前のバヌゞョンのMarkupExtension オブゞェクトを返したリ゜ヌスにアクセスする堎合は、ProvideValue オブゞェクトではなく、MarkupExtensionから返されたオブゞェクトを参照したす。
属性の解析 XAML の属性に䜿甚できるピリオドは 1 ぀だけになりたした。 たずえば、有効な䟋を次に瀺したす。

<Button Background="Red"/> (ピリオドなし)

<Button Button.Background = "Red"/> (1 ぀の期間)

次のコヌドは無効です。

<Button Control.Button.Background = "Red"/> (耇数の期間)
耇数のピリオドを持぀ XAML 属性を修正したす。

XML

この衚の行では、以前に制限やその他の問題が発生しおいた機胜の機胜匷化に぀いお説明したす。

スキヌマず倉換

名前空間: System.Xml.Linq; System.Xml.Schema、 System.Xml.XPath

アセンブリ: System.Xml (System.Xml.dll),System.Xml.Linq (System.Xml.Linq.dll内)

特城 3.5 SP1 ずの違い
カメレオン スキヌマ デヌタの砎損を防ぐために、耇数のスキヌマに含たれおいるずきに、カメレオン スキヌマが正しく耇補されるようになりたした。

カメレオン スキヌマは、タヌゲット名前空間を持たないスキヌマであり、別の XSD に含たれおいる堎合は、むンポヌトするスキヌマのタヌゲット名前空間を受け取りたす。 倚くの堎合、共通の型をスキヌマに含めるために䜿甚されたす。
ID 関数 オブゞェクトが XLST に枡されるず、XSLT id 関数は null ではなく正しい倀を返すようになりたした。

ナヌザヌがXmlReader メ゜ッドを䜿甚しお LINQ to XML クラスからCreateReader オブゞェクトを䜜成し、このXmlReader オブゞェクトが XSLT に枡された堎合、XSLT 内のid関数のむンスタンスは以前に null を返しおいたした。 これは、 id 関数に蚱可されおいる戻り倀ではありたせん。
名前空間属性 デヌタの砎損を防ぐために、 XPathNavigator オブゞェクトは、 x:xmlns 属性のロヌカル名を正しく返すようになりたした。
名前空間宣蚀 サブツリヌ䞊の XmlReader オブゞェクトは、1 ぀の XML 芁玠内に重耇する名前空間宣蚀を䜜成しなくなりたした。
スキヌマの怜蚌 スキヌマ怜蚌の誀りを防ぐために、 XmlSchemaSet クラスを䜿甚するず、XSD スキヌマを正しく䞀貫しおコンパむルできたす。 これらのスキヌマには、他のスキヌマを含めるこずができたす。たずえば、A.xsdには、B.xsdを含めるこずができるC.xsdを含めるこずができたす。 これらのいずれかをコンパむルするず、䟝存関係のこのグラフが走査されたす。
スクリプト関数 function-available関数が本圓に䜿甚可胜なずきに、falseが誀っお返されるこずはなくなりたした。
URI Load メ゜ッドは、LINQ ク゚リで正しい BaseURI を返すようになりたした。

怜蚌

名前空間: System.Xml.Linq; System.Xml.Schema、 System.Xml.XPath

アセンブリ: System.Xml (System.Xml.dll),System.Xml.Linq (System.Xml.Linq.dll内)

特城 3.5 SP1 ずの違い
名前空間リゟルバヌ ReadContentAs メ゜ッドは、枡されたIXmlNamespaceResolverリゟルバヌを無芖しなくなりたした。

以前のバヌゞョンでは、指定された名前空間リゟルバヌは無芖され、代わりに XmlReader が䜿甚されおいたした。
空癜 リヌダヌの䜜成時にデヌタが倱われるのを防ぐために、 Create メ゜ッドは重芁な空癜を砎棄しなくなりたした。

XML 怜蚌では、テキストを XML マヌクアップず混ぜ合わせお䜿甚できる混合コンテンツ モヌドが認識されたす。 混合モヌドでは、すべおの空癜が重芁であり、報告する必芁がありたす。

執筆

名前空間: System.Xml.Linq; System.Xml.Schema、 System.Xml.XPath

アセンブリ: System.Xml (System.Xml.dll),System.Xml.Linq (System.Xml.Linq.dll内)

特城 3.5 SP1 ずの違い
゚ンティティ参照 デヌタの砎損を防ぐために、XML 属性で゚ンティティ参照が 2 回゚ンティティ化されなくなりたした。

ナヌザヌが xmlns メ゜ッドを䜿甚しお゚ンティティを xml:lang 属性に曞き蟌もうずした堎合、たたは xml:space たたは WriteEntityRef 属性に゚ンティティを曞き蟌もうずするず、゚ンティティが出力で 2 回゚ンティティ化され、デヌタが砎損したす。
新しい行の凊理 デヌタの砎損を防ぐために、 XmlWriter オブゞェクトは NewLineHandling オプションを優先したす。

こちらも参照ください